TLSProxy/Proxy.pm: switch to dynamic ports and overhaul.
authorAndy Polyakov <appro@openssl.org>
Mon, 2 Apr 2018 21:26:25 +0000 (23:26 +0200)
committerAndy Polyakov <appro@openssl.org>
Wed, 4 Apr 2018 18:24:26 +0000 (20:24 +0200)
commit6228b1dae265bbe6c46457d82b2d14d672af5f46
tree344f6ebd345e4e11498aad6e32017a19fe6f1208
parent5540eb7040839b0075a2b7651b6a95264d025e15
TLSProxy/Proxy.pm: switch to dynamic ports and overhaul.

By asking for port 0, you get a free port dynamically assigned by OS.
TLSProxy::Proxy now asks for 0 and asks s_server to do the same. The
s_server's port is reported in "ACCEPT" line, which TLSProxy::Proxy
parses and uses.

Because the server port is now a random affair in TLSProxy::Proxy,
it's no longer possible to change it with the method 'server_port',
and it has become an accessor only. For the sake of orthogonality, so
has the method 'server_addr'.

Remove all fork calls on Windows, as fork is not to be trusted there.
This naturally minimized amount of fork calls on POSIX systems, to 1.

Sink s_server's output to 'perl -ne print' which ensures that output
is written strictly in lines. This keeps TAP parser happy.

Improve synchronization in -naccept +n cases by establishing next
connection to s_server *after* s_client finishes instead of before it
starts.

Improve error handling and clean up some methods.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5843)
util/perl/TLSProxy/Proxy.pm