summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2018-10-12 09:42:34 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2018-10-12 09:42:34 +0000
commit9b2059140a3f2fe8ac58e2c08a693fc934ccb21f (patch)
tree1a8b76f36ba674d69cf48b7cc2a1fb263952befc
parent2764ed20ea27240912841a1991bb136d00c60e52 (diff)
downloadneon-9b2059140a3f2fe8ac58e2c08a693fc934ccb21f.tar.gz
* 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
-rw-r--r--src/ne_request.c23
1 files 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);