-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhttpHeaders.c
More file actions
59 lines (48 loc) · 1.21 KB
/
Copy pathhttpHeaders.c
File metadata and controls
59 lines (48 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <malloc.h>
#include "httpHeaders.h"
struct httpHeader {
string_t key;
string_t val;
struct httpHeader *next;
};
struct httpHeaders {
httpHeader_t headers;
size_t numHeaders;
};
httpHeaders_t createHttpHeaders() {
httpHeaders_t ret = malloc(sizeof(struct httpHeader));
ret->headers = NULL;
ret->numHeaders = 0;
return ret;
}
void httpHeadersAppend(httpHeaders_t self, string_t key, string_t value) {
httpHeader_t header = malloc(sizeof(struct httpHeader));
header->key = key;
header->val = value;
header->next = self->headers;
self->headers = header;
self->numHeaders++;
}
void destroyHttpHeaders(httpHeaders_t self) {
httpHeader_t header = self->headers;
while (header != NULL) {
httpHeader_t next = header->next;
destroyString(header->key);
destroyString(header->val);
free(header);
header = next;
}
free(self);
}
string_t httpHeaderKey(httpHeader_t self) {
return self->key;
}
string_t httpHeaderValue(httpHeader_t self) {
return self->val;
}
httpHeader_t httpHeaderNext(httpHeader_t self) {
return self->next;
}
httpHeader_t httpHeadersFirst(httpHeaders_t self) {
return self->headers;
}