Skip to content

Commit 99f943a

Browse files
committed
Handle more "normal" socket errors
1 parent 7cac4fc commit 99f943a

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

lib/ssl/test/inet_epmd_cryptcookie_inet_ktls.erl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,10 @@ stream_recv(InStream = [_ | Socket], Size) ->
179179
[Data | InStream];
180180
{error, timeout} ->
181181
[<<>> | InStream];
182-
{error, closed} ->
182+
{error, Reason}
183+
when Reason =:= closed;
184+
Reason =:= econnreset;
185+
Reason =:= epipe ->
183186
[closed | InStream];
184187
{error, Reason} ->
185188
erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -192,7 +195,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
192195
case ?DRIVER:send(Socket, Data) of
193196
ok ->
194197
OutStream;
195-
{error, closed} ->
198+
{error, Reason}
199+
when Reason =:= closed;
200+
Reason =:= econnreset;
201+
Reason =:= epipe ->
196202
[closed | OutStream];
197203
{error, Reason} ->
198204
erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})

lib/ssl/test/inet_epmd_cryptcookie_socket_ktls.erl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,8 @@ stream_recv(InStream = [_ | Socket], Size) ->
218218
stream_recv_error(InStream, Reason) ->
219219
if
220220
Reason =:= closed;
221-
Reason =:= econnreset ->
221+
Reason =:= econnreset;
222+
Reason =:= epipe ->
222223
[closed | InStream];
223224
true ->
224225
erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -233,7 +234,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
233234
case socket:sendmsg(Socket, #{ iov => Data }) of
234235
ok ->
235236
OutStream;
236-
{error, closed} ->
237+
{error, Reason}
238+
when Reason =:= closed;
239+
Reason =:= econnreset;
240+
Reason =:= epipe ->
237241
[closed | OutStream];
238242
{error, Reason} ->
239243
erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})

lib/ssl/test/inet_epmd_dist_cryptcookie_inet.erl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,10 @@ stream_recv(InStream = [_ | Socket], Size) ->
168168
[Data | InStream];
169169
{error, timeout} ->
170170
[<<>> | InStream];
171-
{error, closed} ->
171+
{error, Reason}
172+
when Reason =:= closed;
173+
Reason =:= econnreset;
174+
Reason =:= epipe ->
172175
[closed | InStream];
173176
{error, Reason} ->
174177
erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -181,7 +184,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
181184
case ?DRIVER:send(Socket, Data) of
182185
ok ->
183186
OutStream;
184-
{error, closed} ->
187+
{error, Reason}
188+
when Reason =:= closed;
189+
Reason =:= econnreset;
190+
Reason =:= epipe ->
185191
[closed | OutStream];
186192
{error, Reason} ->
187193
erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})

lib/ssl/test/inet_epmd_dist_cryptcookie_socket.erl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,8 @@ stream_recv(InStream = [_ | Socket], Size) ->
204204
stream_recv_error(InStream, Reason) ->
205205
if
206206
Reason =:= closed;
207-
Reason =:= econnreset ->
207+
Reason =:= econnreset;
208+
Reason =:= epipe ->
208209
[closed | InStream];
209210
true ->
210211
erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -219,7 +220,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
219220
case socket:sendmsg(Socket, #{ iov => Data }) of
220221
ok ->
221222
OutStream;
222-
{error, closed} ->
223+
{error, Reason}
224+
when Reason =:= closed;
225+
Reason =:= econnreset;
226+
Reason =:= epipe ->
223227
[closed | OutStream];
224228
{error, Reason} ->
225229
erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})

0 commit comments

Comments
 (0)