diff options
author | Hans Nilsson <[email protected]> | 2017-03-14 18:40:04 +0100 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2017-03-15 15:03:25 +0100 |
commit | 27d732c99fec7c29ecdf2a626adf3016776f5c79 (patch) | |
tree | 48cec53b9c5cb9b4b4d499aa950fb9de931e426b /lib/inets/src/ftp/ftp.erl | |
parent | 68238bedcffbb29a219d23d8399c21dd06e1d6e3 (diff) | |
download | otp-27d732c99fec7c29ecdf2a626adf3016776f5c79.tar.gz otp-27d732c99fec7c29ecdf2a626adf3016776f5c79.tar.bz2 otp-27d732c99fec7c29ecdf2a626adf3016776f5c79.zip |
inets/ftp: Fixed fault with operations after recv_chunks.
Diffstat (limited to 'lib/inets/src/ftp/ftp.erl')
-rw-r--r-- | lib/inets/src/ftp/ftp.erl | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/inets/src/ftp/ftp.erl b/lib/inets/src/ftp/ftp.erl index 9d0c59eda8..42d17bb932 100644 --- a/lib/inets/src/ftp/ftp.erl +++ b/lib/inets/src/ftp/ftp.erl @@ -1482,13 +1482,13 @@ handle_info({Cls, Socket}, #state{dsock = {Trpt,Socket}, activate_ctrl_connection(State), {noreply, State#state{dsock = undefined, data = <<>>}}; -handle_info({Cls, Socket}, #state{dsock = {Trpt,Socket}, client = From, +handle_info({Cls, Socket}, #state{dsock = {Trpt,Socket}, caller = recv_chunk} = State) when {Cls,Trpt}=={tcp_closed,tcp} ; {Cls,Trpt}=={ssl_closed,ssl} -> - gen_server:reply(From, ok), - {noreply, State#state{dsock = undefined, client = undefined, - data = <<>>, caller = undefined, - chunk = false}}; + activate_ctrl_connection(State), + {noreply, State#state{dsock = undefined, data = <<>>, + caller = recv_chunk_closed + }}; handle_info({Cls, Socket}, #state{dsock = {Trpt,Socket}, caller = recv_bin, data = Data} = State) @@ -2046,6 +2046,16 @@ handle_ctrl_result({pos_prel, _}, #state{client = From, end; %%-------------------------------------------------------------------------- +%% File handling - chunk_transfer complete +handle_ctrl_result({pos_compl, _}, #state{client = From, + caller = recv_chunk_closed} + = State0) -> + gen_server:reply(From, ok), + {noreply, State0#state{caller = undefined, + chunk = false, + client = undefined}}; + +%%-------------------------------------------------------------------------- %% File handling - recv_file handle_ctrl_result({pos_prel, _}, #state{caller = {recv_file, _}} = State0) -> case accept_data_connection(State0) of |