mirror of
https://github.com/curl/curl.git
synced 2026-08-25 11:33:33 +03:00
lib: introduce Curl_peer
`struct Curl_peer` keeps information about a communication endpoint together. It will replace `conn->host` and `conn->conn_to_host` and proxyinfo host. It will also become part of `struct ssl_peer`. It has a reference counter, so an instance can be shared between connections and filters. Elminiates `conn->host` and `conn->connect_to_host`, used in the proxyinfo structures. Passed to DNS resolution and socks filters, etc. Pass peer to http proxy and socks tunnel filters. Use peer in dns filter and resolving. Make `Curl_peer` a member in the `struct ssl_peer`. Add `docs/internals/PEERS.md` for documentation. Closes #21472
This commit is contained in:
parent
9c9a4f3eab
commit
bc40e09f63
67 changed files with 1902 additions and 1295 deletions
|
|
@ -1438,14 +1438,14 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
|
|||
!strncmp(HTTP_PSEUDO_AUTHORITY, (const char *)name, namelen)) {
|
||||
/* pseudo headers are lower case */
|
||||
int rc = 0;
|
||||
char *check = curl_maprintf("%s:%d", cf->conn->host.name,
|
||||
cf->conn->remote_port);
|
||||
char *check = curl_maprintf("%s:%d", cf->conn->origin->hostname,
|
||||
cf->conn->origin->port);
|
||||
if(!check)
|
||||
/* no memory */
|
||||
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||
if(!curl_strequal(check, (const char *)value) &&
|
||||
((cf->conn->remote_port != cf->conn->given->defport) ||
|
||||
!curl_strequal(cf->conn->host.name, (const char *)value))) {
|
||||
((cf->conn->origin->port != cf->conn->given->defport) ||
|
||||
!curl_strequal(cf->conn->origin->hostname, (const char *)value))) {
|
||||
/* This is push is not for the same authority that was asked for in
|
||||
* the URL. RFC 7540 section 8.2 says: "A client MUST treat a
|
||||
* PUSH_PROMISE for which the server is not authoritative as a stream
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue