Improve free functions

This commit is contained in:
Timo Ley 2022-06-23 14:04:58 +02:00
parent 8b4776dafb
commit 5ed625c69f
2 changed files with 14 additions and 18 deletions

View file

@ -21,6 +21,7 @@ enum req_pos {
void httplib_request_free(http_request * self);
void httplib_response_free(http_response * self);
void httplib_headers_free(http_header * self);
http_header * httplib_header_new(char * key, char * value);
http_request * httplib_request_new();

View file

@ -82,16 +82,8 @@ int httplib_is_valid_header(const char * key, const char * value) {
}
void httplib_request_free(http_request * self) {
if (self == 0) return;
if (self->headers != 0) {
http_header * run = self->headers;
while (run != 0) {
http_header * to_free = run;
run = run->next;
if (to_free->key != 0) free(to_free->key);
if (to_free->value != 0) free(to_free->value);
free(to_free);
}
httplib_headers_free(self->headers);
}
if (self->query != 0) free(self->query);
if (self->body != 0) free(self->body);
@ -100,22 +92,25 @@ void httplib_request_free(http_request * self) {
}
void httplib_response_free(http_response * self) {
if (self == 0) return;
if (self->headers != 0) {
http_header * run = self->headers;
while (run != 0) {
http_header * to_free = run;
run = run->next;
if (to_free->key != 0) free(to_free->key);
if (to_free->value != 0) free(to_free->value);
free(to_free);
}
httplib_headers_free(self->headers);
}
if (self->status_message != 0) free(self->status_message);
if (self->body != 0) free(self->body);
free(self);
}
void httplib_headers_free(http_header * self) {
http_header * run = self;
while (run) {
http_header * to_free = run;
run = run->next;
if (to_free->key != 0) free(to_free->key);
if (to_free->value != 0) free(to_free->value);
free(to_free);
}
}
char * httplib_request_get_query_value(http_request * self, char * key) {
if (self->query == 0) return NULL;
char * tmp = malloc(strlen(self->query)+1);