aboutsummaryrefslogtreecommitdiff
path: root/src/mod_proxy65_stream.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_proxy65_stream.erl')
-rw-r--r--src/mod_proxy65_stream.erl25
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}].