diff --git a/lib/connect.c b/lib/connect.c index a6a0627185..d61b0374e3 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -751,10 +751,9 @@ void Curl_updateconninfo(struct Curl_easy *data, struct connectdata *conn, int local_port = -1; if(conn->transport == TRNSPRT_TCP) { - if(!conn->bits.reuse && !conn->bits.tcp_fastopen) { + if(!conn->bits.reuse && !conn->bits.tcp_fastopen) Curl_conninfo_remote(data, conn, sockfd); - Curl_conninfo_local(data, sockfd, local_ip, &local_port); - } + Curl_conninfo_local(data, sockfd, local_ip, &local_port); } /* end of TCP-only section */ /* persist connection info in session handle */ diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 1aff37d246..4fd9b6fe02 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -67,7 +67,7 @@ test392 test393 test394 test395 test396 test397 \ test400 test401 test402 test403 test404 test405 test406 test407 test408 \ test409 test410 \ \ -test430 test431 test432 test433 test434 \ +test430 test431 test432 test433 test434 test435 \ \ test490 test491 test492 test493 test494 \ \ diff --git a/tests/data/test435 b/tests/data/test435 new file mode 100644 index 0000000000..eed9e29819 --- /dev/null +++ b/tests/data/test435 @@ -0,0 +1,71 @@ + + + +HTTP +HTTP GET + + + +# +# Server-side + + +HTTP/1.1 200 OK +Content-Length: 0 + + + + +# +# Client-side + + +http + + +verify -w local/remote port+ip after connecton re-use + + +http://%HOSTIP:%HTTPPORT/%TESTNUMBER http://%HOSTIP:%HTTPPORT/%TESTNUMBER -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n' + + + +# +# Verify data after the test has been "shot" + + +GET /%TESTNUMBER HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +User-Agent: curl/%VERSION +Accept: */* + +GET /%TESTNUMBER HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +User-Agent: curl/%VERSION +Accept: */* + + + +# replace the number with a fixed string since the port number is not +# known to the test script but it should always be a decimal number + +s/local port == (\d+)/local port == [digits]/ + + +HTTP/1.1 200 OK +Content-Length: 0 + +local port == [digits] +local ip == 127.0.0.1 +remote_ip == %HOSTIP +remote_port == %HTTPPORT +HTTP/1.1 200 OK +Content-Length: 0 + +local port == [digits] +local ip == 127.0.0.1 +remote_ip == %HOSTIP +remote_port == %HTTPPORT + + +