diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-07-03 13:44:58 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-07-03 13:44:58 +0300 |
commit | 295bec85517a6ae44fdd3ad9fe7e00516fd92a23 (patch) | |
tree | 6600bc6a63c21b85c0ca6598337a4717de828b67 /src/mod_proxy65_stream.erl | |
parent | Increase default buffer size for mod_proxy65 (diff) |
Don't ignore send() result
Diffstat (limited to 'src/mod_proxy65_stream.erl')
-rw-r--r-- | src/mod_proxy65_stream.erl | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/mod_proxy65_stream.erl b/src/mod_proxy65_stream.erl index 4ef6e41fd..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. %%%------------------------ |