Commit e9b763ff authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

use the new name and hostname even though an old connection is reused, since

we can re-use a proxy connection that actually has different host names on
the same connection
parent ac0bad24
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -1627,12 +1627,17 @@ static CURLcode Connect(struct UrlData *data,
     * just allocated before we can move along and use the previously
     * existing one.
     */
    char *path = conn->path; /* setup the current path pointer properly */
    if(conn->proxyhost)
      free(conn->proxyhost);
    free(conn);              /* we don't need this new one */
    struct connectdata *old_conn = conn;
    char *path = old_conn->path; /* setup the current path pointer properly */
    if(old_conn->proxyhost)
      free(old_conn->proxyhost);
    conn = conn_temp;        /* use this connection from now on */
    free(conn->path);        /* free the previous path pointer */

    /* we need these pointers if we speak over a proxy */
    conn->name = old_conn->name;
    conn->hostname = old_conn->hostname;

    conn->path = path;       /* use this one */
    conn->ppath = path;      /* set this too */

@@ -1640,6 +1645,8 @@ static CURLcode Connect(struct UrlData *data,
    conn->maxdownload = 0;   /* might have been used previously! */
    conn->bits.reuse = TRUE; /* yes, we're re-using here */

    free(old_conn);          /* we don't need this anymore */

    *in_connect = conn;      /* return this instead! */

    infof(data, "Re-using existing connection! (#%d)\n", conn->connectindex);