src/server/daemon/httprequest.c

changeset 121
a881dc866e23
parent 117
a94cf2e94492
child 127
84e206063b64
equal deleted inserted replaced
120:d2eb5fd97df0 121:a881dc866e23
26 * POSSIBILITY OF SUCH DAMAGE. 26 * POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28 28
29 #include <stdio.h> 29 #include <stdio.h>
30 #include <stdlib.h> 30 #include <stdlib.h>
31 #include <limits.h>
31 32
32 #include <arpa/inet.h> 33 #include <arpa/inet.h>
33 34
34 #include "../public/nsapi.h" 35 #include "../public/nsapi.h"
35 #include "../util/pool.h" 36 #include "../util/pool.h"
274 header.name.length, 275 header.name.length,
275 header.value.ptr, 276 header.value.ptr,
276 header.value.length, 277 header.value.length,
277 rq->rq.headers); 278 rq->rq.headers);
278 } 279 }
280
281 // get host and port
282 char *hosthdr = pblock_findkeyval(pb_key_host, rq->rq.headers);
283 if(hosthdr) {
284 char *host = pool_strdup(pool, hosthdr);
285 char *portstr = strchr(host, ':');
286 if(portstr) {
287 *portstr = '\0';
288 }
289 rq->host = host;
290 } else {
291 rq->host = NULL; // TODO: value from listener
292 }
293 rq->port = request->connection->listener->port;
279 294
280 // parse connection header 295 // parse connection header
281 rq->rq.rq_attr.keep_alive = (rq->rq.protv_num >= PROTOCOL_VERSION_HTTP11); 296 rq->rq.rq_attr.keep_alive = (rq->rq.protv_num >= PROTOCOL_VERSION_HTTP11);
282 char *conn_str = pblock_findkeyval(pb_key_connection, rq->rq.headers); 297 char *conn_str = pblock_findkeyval(pb_key_connection, rq->rq.headers);
283 if(conn_str) { 298 if(conn_str) {

mercurial