aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src
diff options
context:
space:
mode:
authorDan Gudmundsson <dgud@erlang.org>2010-04-17 08:20:46 +0000
committerErlang/OTP <otp@erlang.org>2010-04-17 08:20:46 +0000
commit8f38e5903f908357a10968f4260162cf4a09bf80 (patch)
tree6c33626fd985c2e94249f7f62f831f1073919563 /lib/ssl/src
parent5eaee4202e77086422317f3c24f719a52491ecc7 (diff)
downloadotp-8f38e5903f908357a10968f4260162cf4a09bf80.tar.gz
otp-8f38e5903f908357a10968f4260162cf4a09bf80.tar.bz2
otp-8f38e5903f908357a10968f4260162cf4a09bf80.zip
Reset inet options
Temporary set the inet options on listen socket before doing accept so that the correct options will be inherited by the accept socket. Reset the options afterwards so that repeated use of listen socket get user set values.
Diffstat (limited to 'lib/ssl/src')
-rw-r--r--lib/ssl/src/ssl.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl
index 0a9e216ca5..3cd4c7fdbd 100644
--- a/lib/ssl/src/ssl.erl
+++ b/lib/ssl/src/ssl.erl
@@ -153,10 +153,11 @@ transport_accept(#sslsocket{pid = {ListenSocket, #config{cb=CbInfo, ssl=SslOpts}
%% and options should be inherited.
EmOptions = emulated_options(),
{ok, InetValues} = inet:getopts(ListenSocket, EmOptions),
- inet:setopts(ListenSocket, internal_inet_values()),
+ ok = inet:setopts(ListenSocket, internal_inet_values()),
{CbModule,_,_} = CbInfo,
case CbModule:accept(ListenSocket, Timeout) of
{ok, Socket} ->
+ ok = inet:setopts(ListenSocket, InetValues),
{ok, Port} = inet:port(Socket),
ConnArgs = [server, "localhost", Port, Socket,
{SslOpts, socket_options(InetValues)}, self(), CbInfo],