Unverified Commit 81377cac authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

vtls: set conn->data when closing TLS

Follow-up to 1b76c389. The VTLS backends that close down the TLS
layer for a connection still needs a Curl_easy handle for the session_id
cache etc.

Fixes #2764
Closes #2771
parent 6d13432b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -314,7 +314,6 @@ void Curl_conncache_remove_conn(struct connectdata *conn, bool lock)
    if(lock) {
      CONN_LOCK(data);
    }
    conn->data = NULL; /* detach */
    bundle_remove_conn(bundle, conn);
    if(bundle->num_connections == 0)
      conncache_remove_bundle(connc, bundle);
+4 −0
Original line number Diff line number Diff line
@@ -788,6 +788,9 @@ CURLcode Curl_disconnect(struct Curl_easy *data,
  free_fixed_hostname(&conn->http_proxy.host);
  free_fixed_hostname(&conn->socks_proxy.host);

  DEBUGASSERT(conn->data == data);
  /* this assumes that the pointer is still there after the connection was
     detected from the cache */
  Curl_ssl_close(conn, FIRSTSOCKET);

  conn_free(conn);
@@ -969,6 +972,7 @@ static bool extract_if_dead(struct connectdata *conn,
    if(dead) {
      infof(data, "Connection %ld seems to be dead!\n", conn->connection_id);
      Curl_conncache_remove_conn(conn, FALSE);
      conn->data = NULL; /* detach */
      return TRUE;
    }
  }