]> granicus.if.org Git - curl/commitdiff
Stop overloading the conn->protocol field with the PROT_MISSING bit. It
authorDaniel Stenberg <daniel@haxx.se>
Thu, 17 Dec 2009 16:03:39 +0000 (16:03 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 17 Dec 2009 16:03:39 +0000 (16:03 +0000)
really didn't belong there and had no real point.

lib/url.c
lib/urldata.h

index b85129a62025c3ae003d976421e70cdc34405b08..c16c203ba46ff72bd13ffe2e63f9f50df7f92cbf 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -3302,7 +3302,8 @@ static CURLcode findprotocol(struct SessionHandle *data,
  * Parse URL and fill in the relevant members of the connection struct.
  */
 static CURLcode parseurlandfillconn(struct SessionHandle *data,
-                                    struct connectdata *conn)
+                                    struct connectdata *conn,
+                                    bool *prot_missing)
 {
   char *at;
   char *tmp;
@@ -3311,6 +3312,8 @@ static CURLcode parseurlandfillconn(struct SessionHandle *data,
   char protobuf[16];
   const char *protop;
 
+  prot_missing = FALSE;
+
   /*************************************************************
    * Parse the URL.
    *
@@ -3418,7 +3421,7 @@ static CURLcode parseurlandfillconn(struct SessionHandle *data,
         protop = "http";
       }
 
-      conn->protocol |= PROT_MISSING; /* not given in URL */
+      *prot_missing = TRUE; /* not given in URL */
     }
     else
       protop = protobuf;
@@ -4341,6 +4344,7 @@ static CURLcode create_conn(struct SessionHandle *data,
   char passwd[MAX_CURL_PASSWORD_LENGTH];
   bool reuse;
   char *proxy = NULL;
+  bool prot_missing = FALSE;
 
   *async = FALSE;
 
@@ -4447,7 +4451,7 @@ static CURLcode create_conn(struct SessionHandle *data,
   conn->host.name = conn->host.rawalloc;
   conn->host.name[0] = 0;
 
-  result = parseurlandfillconn(data, conn);
+  result = parseurlandfillconn(data, conn, &prot_missing);
   if(result != CURLE_OK) {
       return result;
   }
@@ -4455,7 +4459,7 @@ static CURLcode create_conn(struct SessionHandle *data,
   /*************************************************************
    * No protocol part in URL was used, add it!
    *************************************************************/
-  if(conn->protocol&PROT_MISSING) {
+  if(prot_missing) {
     /* We're guessing prefixes here and if we're told to use a proxy or if
        we're gonna follow a Location: later or... then we need the protocol
        part added so that we have a valid URL. */
@@ -4470,7 +4474,6 @@ static CURLcode create_conn(struct SessionHandle *data,
 
     data->change.url = reurl;
     data->change.url_alloc = TRUE; /* free this later */
-    conn->protocol &= ~PROT_MISSING; /* switch that one off again */
   }
 
   /*************************************************************
@@ -4519,7 +4522,7 @@ static CURLcode create_conn(struct SessionHandle *data,
   }
   /* proxy must be freed later unless NULL */
   if(proxy && *proxy) {
-    long bits = conn->protocol & (PROT_HTTPS|PROT_SSL|PROT_MISSING);
+    long bits = conn->protocol & (PROT_HTTPS|PROT_SSL);
 
     if((conn->proxytype == CURLPROXY_HTTP) ||
        (conn->proxytype == CURLPROXY_HTTP_1_0)) {
index 8107a9e8fe75be700b4babeee6910fe42cf5dda4..6c852e8ad005396058472fc0cd8636ba33590f57 100644 (file)
@@ -679,7 +679,6 @@ struct connectdata {
 #define PROT_EXTMASK 0xfffff
 
 #define PROT_SSL     (1<<25) /* protocol requires SSL */
-#define PROT_MISSING (1<<26)
 
 /* these ones need action before socket close */
 #define PROT_CLOSEACTION (PROT_FTP | PROT_TFTP | PROT_IMAP | PROT_POP3)