Commit 54c60d00 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Stop overloading the conn->protocol field with the PROT_MISSING bit. It

really didn't belong there and had no real point.
parent 91d05903
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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)) {
+0 −1
Original line number Diff line number Diff line
@@ -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)