diff options
Diffstat (limited to 'src/mod_proxy65_stream.erl')
-rw-r--r-- | src/mod_proxy65_stream.erl | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/mod_proxy65_stream.erl b/src/mod_proxy65_stream.erl index df6bc4776..418e4588f 100644 --- a/src/mod_proxy65_stream.erl +++ b/src/mod_proxy65_stream.erl @@ -245,14 +245,19 @@ handle_sync_event(_Event, _From, StateName, %%%------------------------------------------------- relay(MySocket, PeerSocket, Shaper) -> case gen_tcp:recv(MySocket, 0) of - {ok, Data} -> - gen_tcp:send(PeerSocket, Data), - {NewShaper, Pause} = shaper:update(Shaper, byte_size(Data)), - if Pause > 0 -> timer:sleep(Pause); - true -> pass - end, - relay(MySocket, PeerSocket, NewShaper); - _ -> stopped + {ok, Data} -> + case gen_tcp:send(PeerSocket, Data) of + ok -> + {NewShaper, Pause} = shaper:update(Shaper, byte_size(Data)), + if Pause > 0 -> timer:sleep(Pause); + true -> pass + end, + relay(MySocket, PeerSocket, NewShaper); + {error, _} = Err -> + Err + end; + {error, _} = Err -> + Err end. %%%------------------------ @@ -299,7 +304,7 @@ listen_opt_type(accept_interval) -> listen_options() -> [{auth_type, anonymous}, - {recbuf, 8192}, - {sndbuf, 8192}, + {recbuf, 65536}, + {sndbuf, 65536}, {accept_interval, 0}, {shaper, none}]. |