diff options
Diffstat (limited to 'source3/libsmb/clirap.c')
-rw-r--r-- | source3/libsmb/clirap.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source3/libsmb/clirap.c b/source3/libsmb/clirap.c index f897df63053..e80dfc92a77 100644 --- a/source3/libsmb/clirap.c +++ b/source3/libsmb/clirap.c @@ -29,6 +29,7 @@ #include "libsmb/clirap.h" #include "trans2.h" #include "../libcli/smb/smbXcli_base.h" +#include "cli_smb2_fnum.h" #define PIPE_LANMAN "\\PIPE\\LANMAN" @@ -751,6 +752,19 @@ NTSTATUS cli_setpathinfo_basic(struct cli_state *cli, const char *fname, data_len = PTR_DIFF(p, data); + if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) { + DATA_BLOB in_data = data_blob_const(data, data_len); + /* + * Split out SMB2 here as we need to select + * the correct info type and level. + */ + return cli_smb2_setpathinfo(cli, + fname, + 1, /* SMB2_SETINFO_FILE */ + SMB_FILE_BASIC_INFORMATION - 1000, + &in_data); + } + return cli_setpathinfo(cli, SMB_FILE_BASIC_INFORMATION, fname, (uint8_t *)data, data_len); } |