diff options
Diffstat (limited to 'lib/kernel/src/gen_tcp_socket.erl')
-rw-r--r-- | lib/kernel/src/gen_tcp_socket.erl | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/lib/kernel/src/gen_tcp_socket.erl b/lib/kernel/src/gen_tcp_socket.erl index 467041d92d..7f37e8414d 100644 --- a/lib/kernel/src/gen_tcp_socket.erl +++ b/lib/kernel/src/gen_tcp_socket.erl @@ -915,6 +915,12 @@ socket_setopt(Socket, DomainProps, Value) when is_list(DomainProps) -> socket_setopt_value({socket,linger}, {OnOff, Linger}) -> #{onoff => OnOff, linger => Linger}; +socket_setopt_value({socket,bindtodevice}, DeviceBin) + when is_binary(DeviceBin) -> + %% Currently: + %% prim_inet: Require that device is a binary() + %% socket: Require that device is a string() + binary_to_list(DeviceBin); socket_setopt_value(_Opt, Value) -> Value. @@ -1145,7 +1151,7 @@ call(Server, Call) -> end. stop_server(Server) -> - try gen_statem:stop(Server) of + try gen_statem:stop(Server, {shutdown, closed}, infinity) of _ -> ok catch _:_ -> ok @@ -1463,7 +1469,7 @@ handle_event({call, From}, {setopts, Opts}, State, {P, D}) -> %% we are in state 'recv' but are inactive is simply stored in the buffer. %% If activated: active: false -> once | true | N > 0 %% We need to check if there is something in our buffers, and maybe deliver - %% it to its owner. This is what we do here. This should only occure + %% it to its owner. This is what we do here. This should only occur %% if we are in state connected (state 'recv' and in-active when data %% arrives => put data in buffer and then enter state 'connected', since %% we are in-active). @@ -1768,9 +1774,12 @@ handle_shutdown2(Socket, NextState, How) -> handle_unexpected(Type, Content, State, {P, _D}) -> - warning_report([{socket, P#params.socket}, - {unknown_event, {Type, Content}}, - {state, State}]), + warning_msg("Received unexpected event:" + "~n Socket: ~p" + "~n State: ~p" + "~n Event Type: ~p" + "~n Content: ~p", + [P#params.socket, State, Type, Content]), case Type of {call, From} -> {keep_state_and_data, @@ -1785,9 +1794,12 @@ handle_closed(Type, Content, State, {P, _D}) -> {keep_state_and_data, [{reply, From, {error, closed}}]}; _ -> - warning_report([{socket, P#params.socket}, - {unknown_event, {Type, Content}}, - {state, State}]), + warning_msg("Received unexpected event when closed:" + "~n Socket: ~p" + "~n State: ~p" + "~n Event Type: ~p" + "~n Content: ~p", + [P#params.socket, State, Type, Content]), keep_state_and_data end. @@ -2854,8 +2866,8 @@ warning_msg(F, A) -> error_report(Report) -> error_logger:error_report(Report). -warning_report(Report) -> - error_logger:warning_report([{module, ?MODULE}|Report]). +%% warning_report(Report) -> +%% error_logger:warning_report([{module, ?MODULE}|Report]). |