diff options
author | Niclas Eklund <[email protected]> | 2010-05-28 12:00:00 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-08-20 08:55:16 +0200 |
commit | d5fa5e53b882cd9849034399ac769d2b7e7d3179 (patch) | |
tree | 9df0a6c0b516b182112aa1d4dcf466617060e19e /lib/ssh/src/ssh_sftpd.erl | |
parent | 8c78ac1382f089167afbf8d794cb9eff834577bd (diff) | |
download | otp-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.erl | 19 |
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; |