HTTP: really choose the correct server port for tunnels

The very first message after a 200 OK response to a CONNECT request
likely originates from the client. So assume that this destination is
actually the server.

This reduces the probability of address and port collisions. Previously
the proxy port (e.g. 3128) and server port (443) identified each
conversation, now it will use the client and server port instead.

Bug: 15043
Change-Id: Ib73f370334873efd773ac6b49e2db57146bc20b0
Fixes: v2.9.0rc0-1420-g2f126db3fe ("HTTP: set correct server port for tunnels")
Reviewed-on: https://code.wireshark.org/review/29110
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Peter Wu 2018-08-12 17:23:28 +02:00 committed by Anders Broman
parent 4802e3300d
commit 1d4bb22a22
1 changed files with 2 additions and 2 deletions

View File

@ -3509,8 +3509,8 @@ dissect_http_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
conv_data->request_uri) {
if (conv_data->startframe == 0 && !PINFO_FD_VISITED(pinfo)) {
conv_data->startframe = pinfo->num;
copy_address_wmem(wmem_file_scope(), &conv_data->server_addr, &pinfo->src);
conv_data->server_port = pinfo->srcport;
copy_address_wmem(wmem_file_scope(), &conv_data->server_addr, &pinfo->dst);
conv_data->server_port = pinfo->destport;
}
http_payload_subdissector(tvb, tree, pinfo, conv_data, data);