ftp.erl
Martin Bjorklund
mbj@REDACTED
Sun Mar 19 23:38:18 CET 2006
Here's a patch to handle file errors from the FTP server. I don't know
exactly when this happens, but I use the send_chunk* functions.
Without this patch I get:
=ERROR REPORT==== 19-Mar-2006::23:19:30 ===
** Generic server <0.174.0> terminating
** Last message in was {tcp,#Port<0.245>,
<<"553 Permission denied!
">>}
** When Server state == {state,#Port<0.245>,
{lsock,#Port<0.247>},
false,
"/home/mbj/src/tailf-src/trunk",
ftp_server_default,
false,
active,
60000,
<<"">>,
{<<"">>,[],start},
<0.158.0>,
{<0.158.0>,#Ref<0.0.0.858>},
start_chunk_transfer,
false,
ignore}
** Reason for termination ==
** {bad_return_value,{stop,normal,
{error,efnamena},
{state,#Port<0.245>,
{lsock,#Port<0.247>},
false,
"/home/mbj/src/tailf-src/trunk",
ftp_server_default,
false,
active,
60000,
<<"">>,
{<<"">>,[],start},
<0.158.0>,
undefined,
start_chunk_transfer,
false,
ignore}}}
And the simple patch:
nassa ftp> diff -C2 ftp.erl /home/mbj/src/tailf-src/trunk/otp/lib/inets/src/ftp/ftp.erl
*** ftp.erl Wed Oct 12 17:17:36 2005
--- /home/mbj/src/tailf-src/trunk/otp/lib/inets/src/ftp/ftp.erl Sun Mar 19 23:33:58 2006
***************
*** 1224,1228 ****
%Status == etnospc; Status == epnospc; Status == econn ->
gen_server:reply(From, {error, Status}),
! {stop, normal, {error, Status}, State#state{client = undefined}};
ctrl_result_response(_, #state{client = From} = State, ErrorMsg) ->
--- 1224,1228 ----
%Status == etnospc; Status == epnospc; Status == econn ->
gen_server:reply(From, {error, Status}),
! {stop, normal, State#state{client = undefined}};
ctrl_result_response(_, #state{client = From} = State, ErrorMsg) ->
More information about the erlang-patches
mailing list