cf-socket: keep sockaddr local in the socket filters

- copy `struct Curl_addrinfo` on filter setup into context
- remove `struct Curl_addrinfoi *` with `struct Curl_sockaddr_ex *` in
  connectdata that is set and NULLed by the socket filter
- this means we have no reference to the resolver info in connectdata or
  its filters
- trigger the CF_CTRL_CONN_INFO_UPDATE event when the complete filter
  chain reaches connected status
- update easy handle connection information on CF_CTRL_DATA_SETUP event.

Closes #10213
This commit is contained in:
Stefan Eissing 2023-01-03 13:13:37 +01:00 committed by Daniel Stenberg
parent 436d63fbb1
commit 6a8d7ef981
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 174 additions and 140 deletions

View file

@ -3381,9 +3381,6 @@ static void reuse_conn(struct Curl_easy *data,
existing->hostname_resolve = temp->hostname_resolve;
temp->hostname_resolve = NULL;
/* persist existing connection info in data */
Curl_conn_ev_update_info(data, existing);
conn_reset_all_postponed_data(temp); /* free buffers */
/* re-use init */