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

openSUSE Build Service is sponsored by