aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/src/ssh_sftpd.erl
diff options
context:
space:
mode:
authorNiclas Eklund <[email protected]>2010-05-28 12:00:00 +0200
committerBjörn Gustavsson <[email protected]>2010-08-20 08:55:16 +0200
commitd5fa5e53b882cd9849034399ac769d2b7e7d3179 (patch)
tree9df0a6c0b516b182112aa1d4dcf466617060e19e /lib/ssh/src/ssh_sftpd.erl
parent8c78ac1382f089167afbf8d794cb9eff834577bd (diff)
downloadotp-d5fa5e53b882cd9849034399ac769d2b7e7d3179.tar.gz
otp-d5fa5e53b882cd9849034399ac769d2b7e7d3179.tar.bz2
otp-d5fa5e53b882cd9849034399ac769d2b7e7d3179.zip
ssh: Patch 1119
OTP-8550 The function ssh:connect/4 was not exported. OTP-8644 Aligned error message with used version (SSH_FX_FAILURE vs SSH_FX_NOT_A_DIRECTORY, the latter introduced in version 6). OTP-8645 Resolved race condition when another connection is started before a channel is opened in the first connection. OTP-8535 The configuration parameter ip_v6_disabled is now available, which makes it possible for the user to alter the IP version SSH shall use. OTP-8534 The ssh_connection:send operation now accepts infinity as timeout. OTP-8524 The connection handler now include stack traces when a channel message is not handled correctly.
Diffstat (limited to 'lib/ssh/src/ssh_sftpd.erl')
-rw-r--r--lib/ssh/src/ssh_sftpd.erl19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/ssh/src/ssh_sftpd.erl b/lib/ssh/src/ssh_sftpd.erl
index 10b8ede1e4..da91817fd7 100644
--- a/lib/ssh/src/ssh_sftpd.erl
+++ b/lib/ssh/src/ssh_sftpd.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2005-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -242,7 +242,8 @@ handle_op(?SSH_FXP_REALPATH, ReqId,
end;
handle_op(?SSH_FXP_OPENDIR, ReqId,
<<?UINT32(RLen), RPath:RLen/binary>>,
- State0 = #state{file_handler = FileMod, file_state = FS0}) ->
+ State0 = #state{xf = #ssh_xfer{vsn = Vsn},
+ file_handler = FileMod, file_state = FS0}) ->
RelPath = binary_to_list(RPath),
AbsPath = relate_file_name(RelPath, State0),
@@ -250,10 +251,14 @@ handle_op(?SSH_FXP_OPENDIR, ReqId,
{IsDir, FS1} = FileMod:is_dir(AbsPath, FS0),
State1 = State0#state{file_state = FS1},
case IsDir of
- false ->
+ false when Vsn > 5 ->
ssh_xfer:xf_send_status(XF, ReqId, ?SSH_FX_NOT_A_DIRECTORY,
"Not a directory"),
State1;
+ false ->
+ ssh_xfer:xf_send_status(XF, ReqId, ?SSH_FX_FAILURE,
+ "Not a directory"),
+ State1;
true ->
add_handle(State1, XF, ReqId, directory, {RelPath,unread})
end;