File 3202-ftp-Handle-control-channel-ack-arriving-before-all-d.patch of Package erlang
From 586d671d384675cbaf67c42eab3a16d14a0386b7 Mon Sep 17 00:00:00 2001
From: Ingela Anderton Andin <ingela@erlang.org>
Date: Thu, 8 Oct 2020 09:15:12 +0200
Subject: [PATCH 2/6] ftp: Handle control channel ack arriving before all data
---
lib/ftp/src/ftp.erl | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/ftp/src/ftp.erl b/lib/ftp/src/ftp.erl
index c4d909a1d0..4b15c58b19 100644
--- a/lib/ftp/src/ftp.erl
+++ b/lib/ftp/src/ftp.erl
@@ -1133,11 +1133,17 @@ handle_call({_, recv_chunk}, _From, #state{chunk = true,
}
} = State0) ->
%% The ftp:recv_chunk call was the last event we waited for, finnish and clean up
- ?DBG("recv_chunk_closing ftp:recv_chunk, last event",[]),
+ ?DBG("Data connection closed recv_chunk_closing ftp:recv_chunk, last event",[]),
State = activate_ctrl_connection(State0),
{reply, ok, State#state{caller = undefined,
chunk = false,
client = undefined}};
+handle_call({_, recv_chunk}, From, #state{chunk = true,
+ caller = #recv_chunk_closing{pos_compl_received = true
+ } = R
+ } = State0) ->
+ State = activate_data_connection(State0),
+ {reply, ok, State#state{client = From, caller = R#recv_chunk_closing{client_called_us=true}}};
handle_call({_, recv_chunk}, From, #state{chunk = true,
caller = #recv_chunk_closing{} = R
--
2.26.2