diff options
author | Ingela Anderton Andin <[email protected]> | 2012-02-07 14:27:52 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2012-02-10 15:34:29 +0100 |
commit | 7e3101ebcf816925e3f6b0d4fdd75b18999b63ad (patch) | |
tree | 3b815f956baee2968e3ec919099e358b5e804d14 | |
parent | c44ad548ebff4b4aaa6c7eafa463a94f638bf9d6 (diff) | |
download | otp-7e3101ebcf816925e3f6b0d4fdd75b18999b63ad.tar.gz otp-7e3101ebcf816925e3f6b0d4fdd75b18999b63ad.tar.bz2 otp-7e3101ebcf816925e3f6b0d4fdd75b18999b63ad.zip |
Correct access flag handling in sftpd
Also Moved app test to ssh_basic_SUITE
There is no reason to have a separate suite for the app test it
increases maintenance costs
-rw-r--r-- | lib/ssh/src/ssh_sftpd.erl | 6 | ||||
-rw-r--r-- | lib/ssh/test/Makefile | 3 | ||||
-rw-r--r-- | lib/ssh/test/ssh_SUITE.erl | 72 | ||||
-rw-r--r-- | lib/ssh/test/ssh_basic_SUITE.erl | 11 | ||||
-rw-r--r-- | lib/ssh/test/ssh_sftpd_SUITE.erl | 2 |
5 files changed, 16 insertions, 78 deletions
diff --git a/lib/ssh/src/ssh_sftpd.erl b/lib/ssh/src/ssh_sftpd.erl index 60b48d622f..8cc414f83a 100644 --- a/lib/ssh/src/ssh_sftpd.erl +++ b/lib/ssh/src/ssh_sftpd.erl @@ -599,6 +599,8 @@ decode_4_access_flag(add_subdirectory) -> [read]; decode_4_access_flag(append_data) -> [append]; +decode_4_access_flag(write_attributes) -> + [write]; decode_4_access_flag(_) -> [read]. @@ -613,7 +615,7 @@ open(Vsn, ReqId, Data, State) when Vsn =< 3 -> <<?UINT32(BLen), BPath:BLen/binary, ?UINT32(PFlags), _Attrs/binary>> = Data, Path = binary_to_list(BPath), - Flags = ssh_xfer:decode_open_flags(Vsn, PFlags) -- [creat, excl, trunc], + Flags = ssh_xfer:decode_open_flags(Vsn, PFlags), do_open(ReqId, State, Path, Flags); open(Vsn, ReqId, Data, State) when Vsn >= 4 -> <<?UINT32(BLen), BPath:BLen/binary, ?UINT32(Access), @@ -635,7 +637,7 @@ open(Vsn, ReqId, Data, State) when Vsn >= 4 -> do_open(ReqId, State0, Path, Flags) -> #state{file_handler = FileMod, file_state = FS0, root = Root} = State0, XF = State0#state.xf, - F = [raw, binary | Flags], + F = [binary | Flags], %% case FileMod:is_dir(Path) of %% This is version 6 we still have 5 %% true -> %% ssh_xfer:xf_send_status(State#state.xf, ReqId, diff --git a/lib/ssh/test/Makefile b/lib/ssh/test/Makefile index 1820924ed6..145d5d2ad6 100644 --- a/lib/ssh/test/Makefile +++ b/lib/ssh/test/Makefile @@ -1,7 +1,7 @@ # # %CopyrightBegin% # -# Copyright Ericsson AB 2004-2011. All Rights Reserved. +# Copyright Ericsson AB 2004-2012. 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 @@ -32,7 +32,6 @@ VSN=$(GS_VSN) MODULES= \ ssh_test_lib \ - ssh_SUITE \ ssh_basic_SUITE \ ssh_to_openssh_SUITE \ ssh_sftp_SUITE \ diff --git a/lib/ssh/test/ssh_SUITE.erl b/lib/ssh/test/ssh_SUITE.erl deleted file mode 100644 index 953c9080f9..0000000000 --- a/lib/ssh/test/ssh_SUITE.erl +++ /dev/null @@ -1,72 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2004-2011. 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% -%% - -%% -%%%---------------------------------------------------------------- -%%% Purpose:ssh application test suite. -%%%----------------------------------------------------------------- --module(ssh_SUITE). --include_lib("common_test/include/ct.hrl"). --include("test_server_line.hrl"). - -% Default timetrap timeout (set in init_per_testcase). --define(default_timeout, ?t:minutes(1)). --define(application, ssh). - -% Test server specific exports --export([all/0,groups/0,init_per_group/2,end_per_group/2]). --export([init_per_testcase/2, end_per_testcase/2]). - -% Test cases must be exported. --export([app_test/1]). --define(cases, [app_test]). - -%% -%% all/1 -%% -all() -> - [app_test]. - -groups() -> - []. - -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. - - -init_per_testcase(_Case, Config) -> - Dog=test_server:timetrap(?default_timeout), - [{watchdog, Dog}|Config]. -end_per_testcase(_Case, Config) -> - Dog=?config(watchdog, Config), - test_server:timetrap_cancel(Dog), - ok. -% -% Test cases starts here. -% -app_test(suite) -> - []; -app_test(doc) -> - ["Application consistency test."]; -app_test(Config) when is_list(Config) -> - ?t:app_test(?application), - ok. diff --git a/lib/ssh/test/ssh_basic_SUITE.erl b/lib/ssh/test/ssh_basic_SUITE.erl index ebbf044a8b..d69c71c842 100644 --- a/lib/ssh/test/ssh_basic_SUITE.erl +++ b/lib/ssh/test/ssh_basic_SUITE.erl @@ -103,7 +103,8 @@ end_per_testcase(_Config) -> %% Description: Returns a list of all test cases in this test suite %%-------------------------------------------------------------------- all() -> - [{group, dsa_key}, + [app_test, + {group, dsa_key}, {group, rsa_key}, daemon_already_started, server_password_option, server_userpassword_option]. @@ -139,6 +140,14 @@ end_per_group(_, Config) -> %% Test cases starts here. %%-------------------------------------------------------------------- +app_test(suite) -> + []; +app_test(doc) -> + ["Application consistency test."]; +app_test(Config) when is_list(Config) -> + ?t:app_test(ssh), + ok. + exec(doc) -> ["Test api function ssh_connection:exec"]; diff --git a/lib/ssh/test/ssh_sftpd_SUITE.erl b/lib/ssh/test/ssh_sftpd_SUITE.erl index 4af4c28ecf..6e4480ee9d 100644 --- a/lib/ssh/test/ssh_sftpd_SUITE.erl +++ b/lib/ssh/test/ssh_sftpd_SUITE.erl @@ -552,7 +552,7 @@ set_attributes(Config) when is_list(Config) -> {ok, FileInfo} = file:read_file_info(FileName), OrigPermissions = FileInfo#file_info.mode, - Permissions = 8#400, %% User read-only + Permissions = 8#600, %% User read-write-only Flags = ?SSH_FILEXFER_ATTR_PERMISSIONS, |