From 9b2059140a3f2fe8ac58e2c08a693fc934ccb21f Mon Sep 17 00:00:00 2001 From: joe Date: Fri, 12 Oct 2018 09:42:34 +0000 Subject: * src/ne_request.c (initial_request_headers): Renamed from add_fixed_headers; return a buffer object. (ne_request_create): Adjust use accordingly. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@2031 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845 --- src/ne_request.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/ne_request.c b/src/ne_request.c index 66991c6..6812090 100644 --- a/src/ne_request.c +++ b/src/ne_request.c @@ -456,14 +456,14 @@ static int send_request_body(ne_request *req, int retry) return NE_OK; } -/* Lob the User-Agent, connection and host headers in to the request - * headers */ -static void add_fixed_headers(ne_request *req) +/* Set up buffer for initial request headers. */ +static ne_buffer *initial_request_headers(ne_request *req) { ne_session *const sess = req->session; + ne_buffer *hdrs = ne_buffer_create(); if (sess->user_agent) { - ne_buffer_zappend(req->headers, sess->user_agent); + ne_buffer_zappend(hdrs, sess->user_agent); } /* If persistent connections are disabled, just send Connection: @@ -471,25 +471,27 @@ static void add_fixed_headers(ne_request *req) * servers to try harder to get a persistent connection, except if * using a proxy as per 2068ยง19.7.1. Always add TE: trailers. */ if (!sess->flags[NE_SESSFLAG_PERSIST]) { - ne_buffer_czappend(req->headers, "Connection: TE, close" EOL); + ne_buffer_czappend(hdrs, "Connection: TE, close" EOL); } else if (!sess->is_http11 && !sess->any_proxy_http) { - ne_buffer_czappend(req->headers, + ne_buffer_czappend(hdrs, "Keep-Alive: " EOL "Connection: TE, Keep-Alive" EOL); } else if (!req->session->is_http11 && !sess->any_proxy_http) { - ne_buffer_czappend(req->headers, + ne_buffer_czappend(hdrs, "Keep-Alive: " EOL "Proxy-Connection: Keep-Alive" EOL "Connection: TE" EOL); } else { - ne_buffer_czappend(req->headers, "Connection: TE" EOL); + ne_buffer_czappend(hdrs, "Connection: TE" EOL); } - ne_buffer_concat(req->headers, "TE: trailers" EOL "Host: ", + ne_buffer_concat(hdrs, "TE: trailers" EOL "Host: ", req->session->server.hostport, EOL, NULL); + + return hdrs; } int ne_accept_always(void *userdata, ne_request *req, const ne_status *st) @@ -508,7 +510,6 @@ ne_request *ne_request_create(ne_session *sess, ne_request *req = ne_calloc(sizeof *req); req->session = sess; - req->headers = ne_buffer_create(); /* Presume the method is idempotent by default. */ req->flags[NE_REQFLAG_IDEMPOTENT] = 1; @@ -516,7 +517,7 @@ ne_request *ne_request_create(ne_session *sess, req->flags[NE_REQFLAG_EXPECT100] = sess->flags[NE_SESSFLAG_EXPECT100]; /* Add in the fixed headers */ - add_fixed_headers(req); + req->headers = initial_request_headers(req); /* Set the standard stuff */ req->method = ne_strdup(method); -- cgit v1.2.1