we now can remove headers

This commit is contained in:
overflowerror 2019-03-07 21:54:49 +01:00
parent 5fe0874c5c
commit b06e3a2f45
2 changed files with 15 additions and 0 deletions

View file

@ -26,6 +26,20 @@ const char* headers_get(struct headers* headers, const char* key) {
return headers->headers[tmp].value;
}
int headers_remove(struct headers* headers, const char* key) {
int tmp = headers_find(headers, key);
if (tmp < 0)
return -1;
struct header header = headers->headers[tmp];
memmove(headers->headers + tmp * sizeof(struct header), headers->headers + (tmp + 1) * sizeof(struct header), sizeof(struct header) * (headers->number - tmp - 1));
headers->number--;
free(header.key);
free(header.value);
return 0;
}
int headers_mod(struct headers* headers, const char* _key, const char* _value) {
char* tmp = strclone(_key);
if (tmp == NULL) {

View file

@ -22,6 +22,7 @@ struct headers {
struct headers headers_create();
const char* headers_get(struct headers* headers, const char* key);
int headers_remove(struct headers* headers, const char* key);
int headers_mod(struct headers* headers, const char* key, const char* value);
int headers_parse(struct headers* headers, const char* currentHeader, size_t length);
void headers_free(struct headers* headers);