Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
3206-ftp-Deliver-already-recived-data.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 3206-ftp-Deliver-already-recived-data.patch of Package erlang
From 7662aa4e2ef041f7b2896b8a85cf77c2ad549abd Mon Sep 17 00:00:00 2001 From: Ingela Anderton Andin <ingela@erlang.org> Date: Mon, 19 Oct 2020 12:40:20 +0200 Subject: [PATCH 6/6] ftp: Deliver already recived data --- lib/ftp/src/ftp.erl | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/ftp/src/ftp.erl b/lib/ftp/src/ftp.erl index 3941e695f2..53e9976c96 100644 --- a/lib/ftp/src/ftp.erl +++ b/lib/ftp/src/ftp.erl @@ -1097,7 +1097,6 @@ handle_call({_,{type, Type}}, From, #state{chunk = false} = State0) -> _ -> {reply, {error, etype}, State0} end; - handle_call({_,{recv, RemoteFile, LocalFile}}, From, #state{chunk = false, ldir = LocalDir} = State) -> progress_report({remote_file, RemoteFile}, State), @@ -1112,12 +1111,10 @@ handle_call({_,{recv, RemoteFile, LocalFile}}, From, {error, _What} -> {reply, {error, epath}, State} end; - handle_call({_, {recv_bin, RemoteFile}}, From, #state{chunk = false} = State) -> setup_data_connection(State#state{caller = {recv_bin, RemoteFile}, client = From}); - handle_call({_,{recv_chunk_start, RemoteFile}}, From, #state{chunk = false} = State) -> setup_data_connection(State#state{caller = {start_chunk_transfer, @@ -1126,7 +1123,21 @@ handle_call({_,{recv_chunk_start, RemoteFile}}, From, #state{chunk = false} handle_call({_, recv_chunk}, _, #state{chunk = false} = State) -> {reply, {error, "ftp:recv_chunk_start/2 not called"}, State}; - +handle_call({_, recv_chunk}, _From, #state{chunk = true, + data = Bin, + caller = #recv_chunk_closing{dconn_closed = true, + pos_compl_received = true, + client_called_us = true + } + } = State0) -> + case Bin of + <<>> -> + {reply, ok, State0#state{caller = undefined, + chunk = false, + client = undefined}}; + Data -> + {reply, Data, State0} + end; handle_call({_, recv_chunk}, _From, #state{chunk = true, caller = #recv_chunk_closing{dconn_closed = true, pos_compl_received = true -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor