1 /* Is there a way to get the preprocessor to do this so that this file isn't
4 void ebb_http_field_cb(void *data
, const char *field
, size_t flen
, const char *value
, size_t vlen
)
6 ebb_client
*client
= (ebb_client
*)(data
);
7 ebb_env_pair
*pair
= ebb_env_pair_new(field
, flen
, value
, vlen
);
8 g_queue_push_head(client
->env
, pair
);
11 void ebb_request_method_cb(void *data
, const char *at
, size_t length
)
13 const char *key
= "REQUEST_METHOD";
14 ebb_client
*client
= (ebb_client
*)(data
);
15 ebb_env_pair
*pair
= ebb_env_pair_new(key
, strlen(key
), at
, length
);
16 g_queue_push_head(client
->env
, pair
);
19 void ebb_request_uri_cb(void *data
, const char *at
, size_t length
)
21 const char *key
= "REQUEST_URI";
22 ebb_client
*client
= (ebb_client
*)(data
);
23 ebb_env_pair
*pair
= ebb_env_pair_new(key
, strlen(key
), at
, length
);
24 g_queue_push_head(client
->env
, pair
);
27 void ebb_fragment_cb(void *data
, const char *at
, size_t length
)
29 const char *key
= "FRAGMENT";
30 ebb_client
*client
= (ebb_client
*)(data
);
31 ebb_env_pair
*pair
= ebb_env_pair_new(key
, strlen(key
), at
, length
);
32 g_queue_push_head(client
->env
, pair
);
35 void ebb_request_path_cb(void *data
, const char *at
, size_t length
)
37 const char *key
= "REQUEST_PATH";
38 ebb_client
*client
= (ebb_client
*)(data
);
39 ebb_env_pair
*pair
= ebb_env_pair_new(key
, strlen(key
), at
, length
);
40 g_queue_push_head(client
->env
, pair
);
43 void ebb_query_string_cb(void *data
, const char *at
, size_t length
)
45 const char *key
= "QUERY_STRING";
46 ebb_client
*client
= (ebb_client
*)(data
);
47 ebb_env_pair
*pair
= ebb_env_pair_new(key
, strlen(key
), at
, length
);
48 g_queue_push_head(client
->env
, pair
);
51 void ebb_http_version_cb(void *data
, const char *at
, size_t length
)
53 const char *key
= "HTTP_VERSION";
54 ebb_client
*client
= (ebb_client
*)(data
);
55 ebb_env_pair
*pair
= ebb_env_pair_new(key
, strlen(key
), at
, length
);
56 g_queue_push_head(client
->env
, pair
);
59 /* TODO: this isn't handled correctly. Browser might send
60 * Expect: 100-continue
61 * Should ebb handle that?
63 void ebb_header_done_cb(void *data
, const char *at
, size_t length
)
65 const char *key
= "body";
66 ebb_client
*client
= (ebb_client
*)(data
);
67 ebb_env_pair
*pair
= ebb_env_pair_new(key
, strlen(key
), at
, length
);
68 g_queue_push_head(client
->env
, pair
);