Просмотр исходного кода

Properly handle Ctrl+D in examples

Loïc Hoguin 8 лет назад
Родитель
Сommit
cf85152fff

+ 1 - 1
examples/tcp_echo/src/echo_protocol.erl

@@ -16,7 +16,7 @@ init(Ref, Socket, Transport, _Opts = []) ->
 
 loop(Socket, Transport) ->
 	case Transport:recv(Socket, 0, 5000) of
-		{ok, Data} ->
+		{ok, Data} when Data =/= <<4>> ->
 			Transport:send(Socket, Data),
 			loop(Socket, Transport);
 		_ ->

+ 2 - 1
examples/tcp_reverse/src/reverse_protocol.erl

@@ -38,7 +38,8 @@ init({Ref, Socket, Transport, _Opts = []}) ->
 		?TIMEOUT).
 
 handle_info({tcp, Socket, Data}, State=#state{
-		socket=Socket, transport=Transport}) ->
+		socket=Socket, transport=Transport})
+		when byte_size(Data) > 1 ->
 	Transport:setopts(Socket, [{active, once}]),
 	Transport:send(Socket, reverse_binary(Data)),
 	{noreply, State, ?TIMEOUT};