251 |
* @param value Header key value |
* @param value Header key value |
252 |
*/ |
*/ |
253 |
void set_header(HttpResponse res, const char *name, const char *value) { |
void set_header(HttpResponse res, const char *name, const char *value) { |
254 |
HttpHeader h; |
HttpHeader h= NULL; |
255 |
|
|
256 |
ASSERT(res); |
ASSERT(res); |
257 |
ASSERT(name); |
ASSERT(name); |
258 |
|
|
259 |
NEW(h); |
NEW(h); |
260 |
h->name= xstrdup(name); |
h->name= xstrdup(name); |
261 |
h->value= xstrdup(value); |
h->value= xstrdup(value); |
536 |
* Returns a new HttpRequest object wrapping the client request |
* Returns a new HttpRequest object wrapping the client request |
537 |
*/ |
*/ |
538 |
static HttpRequest create_HttpRequest(Socket_T S) { |
static HttpRequest create_HttpRequest(Socket_T S) { |
539 |
HttpRequest req; |
HttpRequest req= NULL; |
540 |
char url[REQ_STRLEN]; |
char url[REQ_STRLEN]; |
541 |
char line[REQ_STRLEN]; |
char line[REQ_STRLEN]; |
542 |
char protocol[STRLEN]; |
char protocol[STRLEN]; |
576 |
* the set_XXX methods to change the object. |
* the set_XXX methods to change the object. |
577 |
*/ |
*/ |
578 |
static HttpResponse create_HttpResponse(Socket_T S) { |
static HttpResponse create_HttpResponse(Socket_T S) { |
579 |
HttpResponse res; |
HttpResponse res= NULL; |
580 |
|
|
581 |
NEW(res); |
NEW(res); |
582 |
res->S= S; |
res->S= S; |
597 |
static void create_headers(HttpRequest req) { |
static void create_headers(HttpRequest req) { |
598 |
Socket_T S; |
Socket_T S; |
599 |
char *value; |
char *value; |
600 |
HttpHeader header; |
HttpHeader header= NULL; |
601 |
char line[REQ_STRLEN]; |
char line[REQ_STRLEN]; |
602 |
|
|
603 |
S= req->S; |
S= req->S; |
848 |
if(token==KEY) |
if(token==KEY) |
849 |
key= value; |
key= value; |
850 |
else if(token==VALUE) { |
else if(token==VALUE) { |
851 |
HttpParameter p; |
HttpParameter p= NULL; |
852 |
if(!key) goto error; |
if(!key) goto error; |
853 |
NEW(p); |
NEW(p); |
854 |
p->name= key; |
p->name= key; |