gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 38/125: CONNECT: keep close connection flag in http


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 38/125: CONNECT: keep close connection flag in http_connect_state struct
Date: Sun, 21 Jan 2018 23:41:33 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit 55e609890f4b1eb6e909a46f1b56b61e91727fa4
Author: Zachary Seguin <address@hidden>
AuthorDate: Tue Dec 5 22:15:31 2017 -0500

    CONNECT: keep close connection flag in http_connect_state struct
    
    Fixes #2088
    Closes #2157
---
 lib/http_proxy.c | 12 ++++++------
 lib/urldata.h    |  1 +
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/lib/http_proxy.c b/lib/http_proxy.c
index 0283c1f3f..7f5040543 100644
--- a/lib/http_proxy.c
+++ b/lib/http_proxy.c
@@ -167,6 +167,7 @@ static CURLcode connect_init(struct connectdata *conn, bool 
reinit)
   s->line_start = s->connect_buffer;
   s->ptr = s->line_start;
   s->cl = 0;
+  s->close_connection = FALSE;
   return CURLE_OK;
 }
 
@@ -187,7 +188,6 @@ static CURLcode CONNECT(struct connectdata *conn,
   struct SingleRequest *k = &data->req;
   CURLcode result;
   curl_socket_t tunnelsocket = conn->sock[sockindex];
-  bool closeConnection = FALSE;
   timediff_t check;
   struct http_connect_state *s = conn->connect_state;
 
@@ -529,7 +529,7 @@ static CURLcode CONNECT(struct connectdata *conn,
           }
         }
         else if(Curl_compareheader(s->line_start, "Connection:", "close"))
-          closeConnection = TRUE;
+          s->close_connection = TRUE;
         else if(checkprefix("Transfer-Encoding:", s->line_start)) {
           if(k->httpcode/100 == 2) {
             /* A client MUST ignore any Content-Length or Transfer-Encoding
@@ -548,7 +548,7 @@ static CURLcode CONNECT(struct connectdata *conn,
         }
         else if(Curl_compareheader(s->line_start,
                                    "Proxy-Connection:", "close"))
-          closeConnection = TRUE;
+          s->close_connection = TRUE;
         else if(2 == sscanf(s->line_start, "HTTP/1.%d %d",
                             &subversion,
                             &k->httpcode)) {
@@ -578,10 +578,10 @@ static CURLcode CONNECT(struct connectdata *conn,
           /* the connection has been marked for closure, most likely in the
              Curl_http_auth_act() function and thus we can kill it at once
              below */
-          closeConnection = TRUE;
+          s->close_connection = TRUE;
       }
 
-      if(closeConnection && data->req.newurl) {
+      if(s->close_connection && data->req.newurl) {
         /* Connection closed by server. Don't use it anymore */
         Curl_closesocket(conn, conn->sock[sockindex]);
         conn->sock[sockindex] = CURL_SOCKET_BAD;
@@ -599,7 +599,7 @@ static CURLcode CONNECT(struct connectdata *conn,
   } while(data->req.newurl);
 
   if(data->info.httpproxycode/100 != 2) {
-    if(closeConnection && data->req.newurl) {
+    if(s->close_connection && data->req.newurl) {
       conn->bits.proxy_connect_closed = TRUE;
       infof(data, "Connect me again please\n");
       connect_done(conn);
diff --git a/lib/urldata.h b/lib/urldata.h
index 3152a11d9..85a03c72b 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -755,6 +755,7 @@ struct http_connect_state {
     TUNNEL_CONNECT, /* CONNECT has been sent off */
     TUNNEL_COMPLETE /* CONNECT response received completely */
   } tunnel_state;
+  bool close_connection;
 };
 
 /*

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]