The branch, master has been updated via ba08ad5 s4:libcli/raw: remove unused smb_len(), _smb_setlen() and _smb2_setlen() macros via 8bf1e4c s4:smb_server/smb2: make use of _smb_setlen_tcp() via 2fbbf75 s4:smb_server/smb: make use of _smb_setlen_nbt() via 8574d50 s4:libcli/smb2: make use of _smb_setlen_tcp() via 8eed525 s4:libcli/raw: make use of _smb_setlen_nbt() via b0480f2 s4:lib/stream: make use of smb_len_tcp() via da32fb6 s3:include: use smb_[set]len_[nbt|tcp]() macros via cd22763 libcli/smb: add smb_[set]len_[nbt|tcp]() macros via 5e6c477 s3: remove duplicate fsctl fn definitions via b711de2 libcli: Move smb2 fsctl fn defs into common code via d5ea379 s3: Remove duplicate fsctl function definitions via 281fc93 libcli: move ioctl function field defs to smb_constants from 43f23b5 s4-s3-upgrade rename samba-tool domain samba3upgrade --libdir to --dbdir for clarity
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit ba08ad5f3942cbb6afb0b411dfd149fabd1954a6 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 14:02:57 2011 +0200 s4:libcli/raw: remove unused smb_len(), _smb_setlen() and _smb2_setlen() macros metze Autobuild-User: Stefan Metzmacher <me...@samba.org> Autobuild-Date: Wed Oct 19 17:15:23 CEST 2011 on sn-devel-104 commit 8bf1e4caae0fcf87aa87bce2eaff2aab7ead8746 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 14:02:30 2011 +0200 s4:smb_server/smb2: make use of _smb_setlen_tcp() metze commit 2fbbf751f5afc5e8ed00c9ecb6ac817982f6362b Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 14:02:09 2011 +0200 s4:smb_server/smb: make use of _smb_setlen_nbt() metze commit 8574d509a94ccf44c129d9c5b2a71f631d4fbfb0 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 14:01:29 2011 +0200 s4:libcli/smb2: make use of _smb_setlen_tcp() metze commit 8eed525e0b2b71f5d39657f9c81ce37f819c4a6a Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 14:01:01 2011 +0200 s4:libcli/raw: make use of _smb_setlen_nbt() metze commit b0480f26ca3823d618f85f381700fcd23d299220 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 14:00:12 2011 +0200 s4:lib/stream: make use of smb_len_tcp() metze commit da32fb6b404a38b2043bfe55bc97e94e6ae68f7f Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 13:48:09 2011 +0200 s3:include: use smb_[set]len_[nbt|tcp]() macros metze commit cd227634408c54a917d7cb5f8877b373a688eb8e Author: Stefan Metzmacher <me...@samba.org> Date: Wed Oct 19 13:48:09 2011 +0200 libcli/smb: add smb_[set]len_[nbt|tcp]() macros metze commit 5e6c477ef8b7f4799e281ed87a3d4c1eda5dc92f Author: David Disseldorp <dd...@suse.de> Date: Tue Oct 18 13:55:22 2011 +0200 s3: remove duplicate fsctl fn definitions Signed-off-by: Stefan Metzmacher <me...@samba.org> commit b711de287f9318b5de1374c72f0194403e845f79 Author: David Disseldorp <dd...@suse.de> Date: Tue Oct 18 13:54:33 2011 +0200 libcli: Move smb2 fsctl fn defs into common code Signed-off-by: Stefan Metzmacher <me...@samba.org> commit d5ea379428bafbe3f0b26b2dc7906fa6379833a9 Author: David Disseldorp <dd...@suse.de> Date: Tue Oct 18 12:23:26 2011 +0200 s3: Remove duplicate fsctl function definitions Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 281fc93c6bc21039ffedcc8d19084df02b087f24 Author: David Disseldorp <dd...@suse.de> Date: Tue Oct 18 11:47:05 2011 +0200 libcli: move ioctl function field defs to smb_constants Currently there are a lot of duplicate ioctl function field definitions between source3 and source4. Signed-off-by: Stefan Metzmacher <me...@samba.org> ----------------------------------------------------------------------- Summary of changes: libcli/smb/smb_constants.h | 59 ++++++++++++++++++++++++++++++++++ source3/include/ntioctl.h | 49 ---------------------------- source3/include/smb_macros.h | 8 ++-- source3/libsmb/clisymlink.c | 1 - source3/smbd/nttrans.c | 1 - source3/torture/test_nttrans_fsctl.c | 1 - source4/lib/stream/packet.c | 8 ++++- source4/libcli/raw/clitransport.c | 2 +- source4/libcli/raw/interfaces.h | 11 ------ source4/libcli/raw/ioctl.h | 59 ---------------------------------- source4/libcli/raw/rawrequest.c | 2 +- source4/libcli/raw/rawshadow.c | 2 +- source4/libcli/raw/smb.h | 6 --- source4/libcli/smb2/transport.c | 4 +- source4/librpc/rpc/dcerpc_smb2.c | 2 +- source4/ntvfs/ipc/vfs_ipc.c | 2 +- source4/ntvfs/posix/pvfs_ioctl.c | 2 +- source4/ntvfs/print/vfs_print.c | 2 +- source4/smb_server/smb/request.c | 2 +- source4/smb_server/smb2/receive.c | 2 +- source4/torture/basic/misc.c | 2 +- source4/torture/raw/ioctl.c | 2 +- source4/torture/smb2/ioctl.c | 4 +- source4/torture/util_smb.c | 2 +- 24 files changed, 86 insertions(+), 149 deletions(-) delete mode 100644 source4/libcli/raw/ioctl.h Changeset truncated at 500 lines: diff --git a/libcli/smb/smb_constants.h b/libcli/smb/smb_constants.h index 54898c9..91330dd 100644 --- a/libcli/smb/smb_constants.h +++ b/libcli/smb/smb_constants.h @@ -32,6 +32,12 @@ #define NBSSretarget 0x84 /* retarget session response */ #define NBSSkeepalive 0x85 /* keepalive */ +#define smb_len_nbt(buf) (RIVAL(buf, 0) & 0x1FFFF) +#define _smb_setlen_nbt(buf,len) RSIVAL(buf, 0, (len) & 0x1FFFF) + +#define smb_len_tcp(buf) (RIVAL(buf, 0) & 0xFFFFFF) +#define _smb_setlen_tcp(buf,len) RSIVAL(buf, 0, (len) & 0xFFFFFF) + /* protocol types. It assumes that higher protocols include lower protocols as subsets. */ enum protocol_types { @@ -103,4 +109,57 @@ enum csc_policy { #define FILE_TYPE_COMM_DEVICE 4 #define FILE_TYPE_UNKNOWN 0xFFFF +/* ioctl codes */ +#define IOCTL_QUERY_JOB_INFO 0x530060 + +/* filesystem control codes */ +#define FSCTL_METHOD_BUFFERED 0x00000000 +#define FSCTL_METHOD_IN_DIRECT 0x00000001 +#define FSCTL_METHOD_OUT_DIRECT 0x00000002 +#define FSCTL_METHOD_NEITHER 0x00000003 + +#define FSCTL_ACCESS_ANY 0x00000000 +#define FSCTL_ACCESS_READ 0x00004000 +#define FSCTL_ACCESS_WRITE 0x00008000 + +#define FSCTL_DFS 0x00060000 +#define FSCTL_DFS_GET_REFERRALS (FSCTL_DFS | FSCTL_ACCESS_ANY | 0x0194 | FSCTL_METHOD_BUFFERED) + +#define FSCTL_FILESYSTEM 0x00090000 +#define FSCTL_REQUEST_OPLOCK_LEVEL_1 (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0000 | FSCTL_METHOD_BUFFERED) +#define FSCTL_REQUEST_OPLOCK_LEVEL_2 (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0004 | FSCTL_METHOD_BUFFERED) +#define FSCTL_REQUEST_BATCH_OPLOCK (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0008 | FSCTL_METHOD_BUFFERED) +#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x000C | FSCTL_METHOD_BUFFERED) +#define FSCTL_OPBATCH_ACK_CLOSE_PENDING (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0010 | FSCTL_METHOD_BUFFERED) +#define FSCTL_OPLOCK_BREAK_NOTIFY (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0014 | FSCTL_METHOD_BUFFERED) +#define FSCTL_FILESYS_GET_STATISTICS (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0060 | FSCTL_METHOD_BUFFERED) +#define FSCTL_GET_NTFS_VOLUME_DATA (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0064 | FSCTL_METHOD_BUFFERED) +#define FSCTL_IS_VOLUME_DIRTY (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0078 | FSCTL_METHOD_BUFFERED) +#define FSCTL_FIND_FILES_BY_SID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x008C | FSCTL_METHOD_NEITHER) +#define FSCTL_SET_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0098 | FSCTL_METHOD_BUFFERED) +#define FSCTL_GET_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x009C | FSCTL_METHOD_BUFFERED) +#define FSCTL_DELETE_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00A0 | FSCTL_METHOD_BUFFERED) +#define FSCTL_SET_REPARSE_POINT (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00A4 | FSCTL_METHOD_BUFFERED) +#define FSCTL_GET_REPARSE_POINT (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00A8 | FSCTL_METHOD_BUFFERED) +#define FSCTL_DELETE_REPARSE_POINT (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00AC | FSCTL_METHOD_BUFFERED) +#define FSCTL_CREATE_OR_GET_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00C0 | FSCTL_METHOD_BUFFERED) +#define FSCTL_SET_SPARSE (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00C4 | FSCTL_METHOD_BUFFERED) +#define FSCTL_QUERY_ALLOCATED_RANGES (FSCTL_FILESYSTEM | FSCTL_ACCESS_READ | 0x00CC | FSCTL_METHOD_NEITHER) + +#define FSCTL_NAMED_PIPE 0x00110000 +#define FSCTL_PIPE_PEEK (FSCTL_NAMED_PIPE | FSCTL_ACCESS_READ | 0x000C | FSCTL_METHOD_BUFFERED) +#define FSCTL_NAMED_PIPE_READ_WRITE (FSCTL_NAMED_PIPE | FSCTL_ACCESS_READ \ + | FSCTL_ACCESS_WRITE | 0x0014 | FSCTL_METHOD_NEITHER) +#define FSCTL_PIPE_TRANSCEIVE FSCTL_NAMED_PIPE_READ_WRITE /* SMB2 function name */ +#define FSCTL_PIPE_WAIT (FSCTL_NAMED_PIPE | FSCTL_ACCESS_ANY | 0x0018 | FSCTL_METHOD_BUFFERED) + +#define FSCTL_NETWORK_FILESYSTEM 0x00140000 +#define FSCTL_GET_SHADOW_COPY_DATA (FSCTL_NETWORK_FILESYSTEM | FSCTL_ACCESS_READ | 0x0064 | FSCTL_METHOD_BUFFERED) +#define FSCTL_SRV_ENUM_SNAPS FSCTL_GET_SHADOW_COPY_DATA /* SMB2 function name */ +#define FSCTL_SRV_REQUEST_RESUME_KEY (FSCTL_NETWORK_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0078 | FSCTL_METHOD_BUFFERED) +#define FSCTL_SRV_COPYCHUNK (FSCTL_NETWORK_FILESYSTEM | FSCTL_ACCESS_READ | 0x00F0 | FSCTL_METHOD_OUT_DIRECT) +#define FSCTL_SRV_COPYCHUNK_WRITE (FSCTL_NETWORK_FILESYSTEM | FSCTL_ACCESS_WRITE | 0x00F0 | FSCTL_METHOD_OUT_DIRECT) +#define FSCTL_SRV_READ_HASH (FSCTL_NETWORK_FILESYSTEM | FSCTL_ACCESS_READ| 0x01B8 | FSCTL_METHOD_NEITHER) +#define FSCTL_LMR_REQ_RESILIENCY (FSCTL_NETWORK_FILESYSTEM | FSCTL_ACCESS_ANY | 0x01D4 | FSCTL_METHOD_BUFFERED) + #endif /* _SMB_CONSTANTS_H */ diff --git a/source3/include/ntioctl.h b/source3/include/ntioctl.h index 706cc16..e09e1c8 100644 --- a/source3/include/ntioctl.h +++ b/source3/include/ntioctl.h @@ -17,58 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* - I'm guessing we will need to support a bunch of these eventually. For now - we only need the sparse flag -*/ - #ifndef _NTIOCTL_H #define _NTIOCTL_H -/* IOCTL information */ -/* List of ioctl function codes that look to be of interest to remote clients like this. */ -/* Need to do some experimentation to make sure they all work remotely. */ -/* Some of the following such as the encryption/compression ones would be */ -/* invoked from tools via a specialized hook into the VFS rather than via the */ -/* standard vfs entry points */ -#define FSCTL_REQUEST_OPLOCK_LEVEL_1 0x00090000 -#define FSCTL_REQUEST_OPLOCK_LEVEL_2 0x00090004 -#define FSCTL_REQUEST_BATCH_OPLOCK 0x00090008 -#define FSCTL_LOCK_VOLUME 0x00090018 -#define FSCTL_UNLOCK_VOLUME 0x0009001C -#define FSCTL_GET_COMPRESSION 0x0009003C -#define FSCTL_SET_COMPRESSION 0x0009C040 -#define FSCTL_IS_VOLUME_DIRTY 0x00090078 -#define FSCTL_REQUEST_FILTER_OPLOCK 0x0009008C -#define FSCTL_FIND_FILES_BY_SID 0x0009008F -#define FSCTL_FILESYS_GET_STATISTICS 0x00090090 -#define FSCTL_SET_OBJECT_ID 0x00090098 -#define FSCTL_GET_OBJECT_ID 0x0009009C -#define FSCTL_SET_REPARSE_POINT 0x000900A4 -#define FSCTL_GET_REPARSE_POINT 0x000900A8 -#define FSCTL_DELETE_REPARSE_POINT 0x000900AC -#define FSCTL_CREATE_OR_GET_OBJECT_ID 0x000900C0 -#define FSCTL_SET_SPARSE 0x000900C4 -#define FSCTL_SET_ZERO_DATA 0x000900C8 -#define FSCTL_SET_ENCRYPTION 0x000900D7 -#define FSCTL_ENCRYPTION_FSCTL_IO 0x000900DB -#define FSCTL_WRITE_RAW_ENCRYPTED 0x000900DF -#define FSCTL_READ_RAW_ENCRYPTED 0x000900E3 -#define FSCTL_SIS_COPYFILE 0x00090100 -#define FSCTL_QUERY_ALLOCATED_RANGES 0x000940CF -#define FSCTL_SIS_LINK_FILES 0x0009C104 - -#define FSCTL_GET_SHADOW_COPY_DATA 0x00144064 /* KJC -- Shadow Copy information */ - -#if 0 -#define FSCTL_SECURITY_ID_CHECK -#define FSCTL_DISMOUNT_VOLUME -#define FSCTL_GET_NTFS_FILE_RECORD -#define FSCTL_ALLOW_EXTENDED_DASD_IO -#define FSCTL_RECALL_FILE - -#endif - #define IO_REPARSE_TAG_SYMLINK 0xA000000C #define SYMLINK_FLAG_RELATIVE 0x00000001 diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h index 3be0224..bed463d 100644 --- a/source3/include/smb_macros.h +++ b/source3/include/smb_macros.h @@ -132,11 +132,11 @@ /* Note that chain_size must be available as an extern int to this macro. */ #define smb_offset(p,buf) (PTR_DIFF(p,buf+4)) -#define smb_len(buf) (RIVAL(buf, 0) & 0x1FFFF) -#define _smb_setlen(buf,len) RSIVAL(buf, 0, (len) & 0x1FFFF) +#define smb_len(buf) smb_len_nbt(buf) +#define _smb_setlen(buf, len) _smb_setlen_nbt(buf, len) -#define smb_len_large(buf) (RIVAL(buf, 0) & 0xFFFFFF) -#define _smb_setlen_large(buf,len) RSIVAL(buf, 0, (len) & 0xFFFFFF) +#define smb_len_large(buf) smb_len_tcp(buf) +#define _smb_setlen_large(buf, len) _smb_setlen_tcp(buf, len) #define ENCRYPTION_REQUIRED(conn) ((conn) ? ((conn)->encrypt_level == Required) : false) #define IS_CONN_ENCRYPTED(conn) ((conn) ? (conn)->encrypted_tid : false) diff --git a/source3/libsmb/clisymlink.c b/source3/libsmb/clisymlink.c index e744a38..fad9826 100644 --- a/source3/libsmb/clisymlink.c +++ b/source3/libsmb/clisymlink.c @@ -24,7 +24,6 @@ #include "async_smb.h" #include "libsmb/clirap.h" #include "trans2.h" -#include "ntioctl.h" #include "libcli/security/secdesc.h" #include "libcli/security/security.h" diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index 8e78d3c..05d42a2 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -27,7 +27,6 @@ #include "../librpc/gen_ndr/ndr_security.h" #include "passdb/lookup_sid.h" #include "auth.h" -#include "ntioctl.h" #include "smbprofile.h" #include "libsmb/libsmb.h" diff --git a/source3/torture/test_nttrans_fsctl.c b/source3/torture/test_nttrans_fsctl.c index e60964e..963b20e 100644 --- a/source3/torture/test_nttrans_fsctl.c +++ b/source3/torture/test_nttrans_fsctl.c @@ -22,7 +22,6 @@ #include "torture/proto.h" #include "libsmb/libsmb.h" #include "libcli/security/security.h" -#include "ntioctl.h" bool run_nttrans_fsctl(int dummy) { diff --git a/source4/lib/stream/packet.c b/source4/lib/stream/packet.c index 545d518..3a7f600 100644 --- a/source4/lib/stream/packet.c +++ b/source4/lib/stream/packet.c @@ -583,7 +583,13 @@ _PUBLIC_ NTSTATUS packet_full_request_nbt(void *private_data, DATA_BLOB blob, si if (blob.length < 4) { return STATUS_MORE_ENTRIES; } - *size = 4 + smb_len(blob.data); + /* + * Note: that we use smb_len_tcp() instead + * of smb_len_nbt() as this function is not + * used for nbt and the source4 copy + * of smb_len() was smb_len_tcp() + */ + *size = 4 + smb_len_tcp(blob.data); if (*size > blob.length) { return STATUS_MORE_ENTRIES; } diff --git a/source4/libcli/raw/clitransport.c b/source4/libcli/raw/clitransport.c index 08e49fd..b8df09e 100644 --- a/source4/libcli/raw/clitransport.c +++ b/source4/libcli/raw/clitransport.c @@ -190,7 +190,7 @@ struct smbcli_request *smbcli_transport_connect_send(struct smbcli_transport *tr memcpy(p, calling_blob.data, calling_blob.length); p += calling_blob.length; - _smb_setlen(req->out.buffer, PTR_DIFF(p, req->out.buffer) - NBT_HDR_SIZE); + _smb_setlen_nbt(req->out.buffer, PTR_DIFF(p, req->out.buffer) - NBT_HDR_SIZE); SCVAL(req->out.buffer,0,0x81); if (!smbcli_request_send(req)) { diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h index 7f42926..7bb5255 100644 --- a/source4/libcli/raw/interfaces.h +++ b/source4/libcli/raw/interfaces.h @@ -2194,17 +2194,6 @@ enum smb_ioctl_level { /* 2.2.31 SMB2 IOCTL Request */ #define SMB2_IOCTL_FLAG_IS_FSCTL 0x00000001 -#define SMB2_FSCTL_DFS_GET_REFERRALS 0x00060194 -#define SMB2_FSCTL_PIPE_PEEK 0x0011400C -#define SMB2_FSCTL_PIPE_WAIT 0x00110018 -#define SMB2_FSCTL_PIPE_TRANSCEIVE 0x0011C017 -#define SMB2_FSCTL_SRV_COPYCHUNK 0x001440F2 -#define SMB2_FSCTL_SRV_ENUM_SNAPS 0x00144064 -#define SMB2_FSCTL_SRV_REQUEST_RESUME_KEY 0x00140078 -#define SMB2_FSCTL_SRV_READ_HASH 0x001441bb -#define SMB2_FSCTL_SRV_COPYCHUNK_WRITE 0x001480F2 -#define SMB2_FSCTL_LMR_REQ_RESILIENCY 0x001401D4 - /* union for ioctl() backend */ diff --git a/source4/libcli/raw/ioctl.h b/source4/libcli/raw/ioctl.h deleted file mode 100644 index a9d3d1b..0000000 --- a/source4/libcli/raw/ioctl.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - Unix SMB/CIFS implementation. - ioctl and fsctl definitions - - Copyright (C) Andrew Tridgell 2003 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - - -/* ioctl codes */ -#define IOCTL_QUERY_JOB_INFO 0x530060 - - -/* filesystem control codes */ -#define FSCTL_METHOD_BUFFERED 0x00000000 -#define FSCTL_METHOD_IN_DIRECT 0x00000001 -#define FSCTL_METHOD_OUT_DIRECT 0x00000002 -#define FSCTL_METHOD_NEITHER 0x00000003 - -#define FSCTL_ACCESS_ANY 0x00000000 -#define FSCTL_ACCESS_READ 0x00004000 -#define FSCTL_ACCESS_WRITE 0x00008000 - -#define FSCTL_FILESYSTEM 0x00090000 -#define FSCTL_REQUEST_OPLOCK_LEVEL_1 (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0000 | FSCTL_METHOD_BUFFERED) -#define FSCTL_REQUEST_OPLOCK_LEVEL_2 (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0004 | FSCTL_METHOD_BUFFERED) -#define FSCTL_REQUEST_BATCH_OPLOCK (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0008 | FSCTL_METHOD_BUFFERED) -#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x000C | FSCTL_METHOD_BUFFERED) -#define FSCTL_OPBATCH_ACK_CLOSE_PENDING (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0010 | FSCTL_METHOD_BUFFERED) -#define FSCTL_OPLOCK_BREAK_NOTIFY (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0014 | FSCTL_METHOD_BUFFERED) -#define FSCTL_FILESYS_GET_STATISTICS (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0060 | FSCTL_METHOD_BUFFERED) -#define FSCTL_GET_NTFS_VOLUME_DATA (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0064 | FSCTL_METHOD_BUFFERED) -#define FSCTL_FIND_FILES_BY_SID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x008C | FSCTL_METHOD_NEITHER) -#define FSCTL_SET_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x0098 | FSCTL_METHOD_BUFFERED) -#define FSCTL_GET_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x009C | FSCTL_METHOD_BUFFERED) -#define FSCTL_DELETE_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00A0 | FSCTL_METHOD_BUFFERED) -#define FSCTL_SET_REPARSE_POINT (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00A4 | FSCTL_METHOD_BUFFERED) -#define FSCTL_GET_REPARSE_POINT (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00A8 | FSCTL_METHOD_BUFFERED) -#define FSCTL_DELETE_REPARSE_POINT (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00AC | FSCTL_METHOD_BUFFERED) -#define FSCTL_CREATE_OR_GET_OBJECT_ID (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00C0 | FSCTL_METHOD_BUFFERED) -#define FSCTL_SET_SPARSE (FSCTL_FILESYSTEM | FSCTL_ACCESS_ANY | 0x00C4 | FSCTL_METHOD_BUFFERED) - -#define FSCTL_NAMED_PIPE 0x00110000 -#define FSCTL_NAMED_PIPE_READ_WRITE (FSCTL_NAMED_PIPE | FSCTL_ACCESS_ANY | 0xC014 | FSCTL_METHOD_NEITHER) - -#define FSCTL_NETWORK_FILESYSTEM 0x00140000 -#define FSCTL_GET_SHADOW_COPY_DATA (FSCTL_NETWORK_FILESYSTEM | FSCTL_ACCESS_READ | 0x0064 | FSCTL_METHOD_BUFFERED) diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c index c9b78d7..3b0cf7c 100644 --- a/source4/libcli/raw/rawrequest.c +++ b/source4/libcli/raw/rawrequest.c @@ -336,7 +336,7 @@ NTSTATUS smbcli_chained_advance(struct smbcli_request *req) bool smbcli_request_send(struct smbcli_request *req) { if (IVAL(req->out.buffer, 0) == 0) { - _smb_setlen(req->out.buffer, req->out.size - NBT_HDR_SIZE); + _smb_setlen_nbt(req->out.buffer, req->out.size - NBT_HDR_SIZE); } smbcli_request_calculate_sign_mac(req); diff --git a/source4/libcli/raw/rawshadow.c b/source4/libcli/raw/rawshadow.c index b318c3e..7e48f26 100644 --- a/source4/libcli/raw/rawshadow.c +++ b/source4/libcli/raw/rawshadow.c @@ -22,7 +22,7 @@ #include "includes.h" #include "libcli/raw/libcliraw.h" #include "libcli/raw/raw_proto.h" -#include "libcli/raw/ioctl.h" +#include "../libcli/smb/smb_constants.h" /* get shadow volume data diff --git a/source4/libcli/raw/smb.h b/source4/libcli/raw/smb.h index fdf3a15..ced7413 100644 --- a/source4/libcli/raw/smb.h +++ b/source4/libcli/raw/smb.h @@ -563,12 +563,6 @@ #define FS_ATTR_ENCRYPTION 0x00020000 #define FS_ATTR_NAMED_STREAMS 0x00040000 -#define smb_len(buf) (PVAL(buf,3)|(PVAL(buf,2)<<8)|(PVAL(buf,1)<<16)) -#define _smb_setlen(buf,len) do {(buf)[0] = 0; (buf)[1] = ((len)&0x10000)>>16; \ - (buf)[2] = ((len)&0xFF00)>>8; (buf)[3] = (len)&0xFF;} while (0) -#define _smb2_setlen(buf,len) do {(buf)[0] = 0; (buf)[1] = ((len)&0xFF0000)>>16; \ - (buf)[2] = ((len)&0xFF00)>>8; (buf)[3] = (len)&0xFF;} while (0) - #include "source4/libcli/raw/trans2.h" #include "libcli/raw/interfaces.h" #include "libcli/smb/smb_common.h" diff --git a/source4/libcli/smb2/transport.c b/source4/libcli/smb2/transport.c index c17bbfd..da0fba8 100644 --- a/source4/libcli/smb2/transport.c +++ b/source4/libcli/smb2/transport.c @@ -382,7 +382,7 @@ static NTSTATUS smb2_transport_finish_recv(void *private_data, DATA_BLOB blob) TALLOC_FREE(state); goto error; } - _smb2_setlen(state->blob.data, state->blob.length - NBT_HDR_SIZE); + _smb_setlen_tcp(state->blob.data, state->blob.length - NBT_HDR_SIZE); memcpy(state->blob.data + NBT_HDR_SIZE, req->in.hdr + next_ofs, req->in.allocated - req->in.size); @@ -456,7 +456,7 @@ static NTSTATUS smb2_transport_raw_send(struct smb2_transport *transport, return NT_STATUS_NET_WRITE_FAULT; } - _smb2_setlen(buffer->buffer, buffer->size - NBT_HDR_SIZE); + _smb_setlen_tcp(buffer->buffer, buffer->size - NBT_HDR_SIZE); blob = data_blob_const(buffer->buffer, buffer->size); status = packet_send(transport->packet, blob); if (!NT_STATUS_IS_OK(status)) { diff --git a/source4/librpc/rpc/dcerpc_smb2.c b/source4/librpc/rpc/dcerpc_smb2.c index 59ee7a8..75fb423 100644 --- a/source4/librpc/rpc/dcerpc_smb2.c +++ b/source4/librpc/rpc/dcerpc_smb2.c @@ -24,7 +24,7 @@ #include "libcli/composite/composite.h" #include "libcli/smb2/smb2.h" #include "libcli/smb2/smb2_calls.h" -#include "libcli/raw/ioctl.h" +#include "../libcli/smb/smb_constants.h" #include "librpc/rpc/dcerpc.h" #include "librpc/rpc/dcerpc_proto.h" #include "librpc/rpc/rpc_common.h" diff --git a/source4/ntvfs/ipc/vfs_ipc.c b/source4/ntvfs/ipc/vfs_ipc.c index fc9ff4f..8097a67 100644 --- a/source4/ntvfs/ipc/vfs_ipc.c +++ b/source4/ntvfs/ipc/vfs_ipc.c @@ -29,7 +29,7 @@ #include "ntvfs/ntvfs.h" #include "../librpc/gen_ndr/rap.h" #include "ntvfs/ipc/proto.h" -#include "libcli/raw/ioctl.h" +#include "../libcli/smb/smb_constants.h" #include "param/param.h" #include "../lib/tsocket/tsocket.h" #include "../libcli/named_pipe_auth/npa_tstream.h" diff --git a/source4/ntvfs/posix/pvfs_ioctl.c b/source4/ntvfs/posix/pvfs_ioctl.c index f263e98..1d5e8fd 100644 --- a/source4/ntvfs/posix/pvfs_ioctl.c +++ b/source4/ntvfs/posix/pvfs_ioctl.c @@ -21,7 +21,7 @@ #include "includes.h" #include "vfs_posix.h" -#include "libcli/raw/ioctl.h" +#include "../libcli/smb/smb_constants.h" /* old ioctl interface diff --git a/source4/ntvfs/print/vfs_print.c b/source4/ntvfs/print/vfs_print.c index 2480463..6019e44 100644 --- a/source4/ntvfs/print/vfs_print.c +++ b/source4/ntvfs/print/vfs_print.c @@ -22,7 +22,7 @@ */ #include "includes.h" -#include "libcli/raw/ioctl.h" +#include "../libcli/smb/smb_constants.h" #include "ntvfs/ntvfs.h" #include "param/param.h" diff --git a/source4/smb_server/smb/request.c b/source4/smb_server/smb/request.c index d478963..41854a1 100644 --- a/source4/smb_server/smb/request.c +++ b/source4/smb_server/smb/request.c @@ -311,7 +311,7 @@ void smbsrv_send_reply_nosign(struct smbsrv_request *req) } if (req->out.size > NBT_HDR_SIZE) { - _smb_setlen(req->out.buffer, req->out.size - NBT_HDR_SIZE); + _smb_setlen_nbt(req->out.buffer, req->out.size - NBT_HDR_SIZE); } blob = data_blob_const(req->out.buffer, req->out.size); diff --git a/source4/smb_server/smb2/receive.c b/source4/smb_server/smb2/receive.c index 40a57b8..b51e2b0 100644 --- a/source4/smb_server/smb2/receive.c +++ b/source4/smb_server/smb2/receive.c @@ -251,7 +251,7 @@ void smb2srv_send_reply(struct smb2srv_request *req) } if (req->out.size > NBT_HDR_SIZE) { - _smb2_setlen(req->out.buffer, req->out.size - NBT_HDR_SIZE); + _smb_setlen_tcp(req->out.buffer, req->out.size - NBT_HDR_SIZE); } /* if signing is active on the session then sign the packet */ diff --git a/source4/torture/basic/misc.c b/source4/torture/basic/misc.c index 0fa9a9e..0515988 100644 --- a/source4/torture/basic/misc.c +++ b/source4/torture/basic/misc.c @@ -24,7 +24,7 @@ #include "system/time.h" #include "system/wait.h" #include "system/filesys.h" -#include "libcli/raw/ioctl.h" +#include "../libcli/smb/smb_constants.h" #include "libcli/libcli.h" #include "lib/events/events.h" #include "libcli/resolve/resolve.h" diff --git a/source4/torture/raw/ioctl.c b/source4/torture/raw/ioctl.c index 80a3db6..a062d0b 100644 --- a/source4/torture/raw/ioctl.c +++ b/source4/torture/raw/ioctl.c @@ -19,7 +19,7 @@ */ #include "includes.h" -#include "libcli/raw/ioctl.h" +#include "../libcli/smb/smb_constants.h" #include "libcli/raw/libcliraw.h" #include "libcli/raw/raw_proto.h" #include "libcli/libcli.h" diff --git a/source4/torture/smb2/ioctl.c b/source4/torture/smb2/ioctl.c index f96893a..169a001 100644 --- a/source4/torture/smb2/ioctl.c +++ b/source4/torture/smb2/ioctl.c @@ -58,13 +58,13 @@ static bool test_ioctl_get_shadow_copy(struct torture_context *torture, ZERO_STRUCT(ioctl); ioctl.smb2.level = RAW_IOCTL_SMB2; ioctl.smb2.in.file.handle = h; - ioctl.smb2.in.function = SMB2_FSCTL_SRV_ENUM_SNAPS; + ioctl.smb2.in.function = FSCTL_SRV_ENUM_SNAPS; ioctl.smb2.in.max_response_size = 16; ioctl.smb2.in.flags = SMB2_IOCTL_FLAG_IS_FSCTL; status = smb2_ioctl(tree, tmp_ctx, &ioctl.smb2); if (!NT_STATUS_IS_OK(status)) { - printf("SMB2_FSCTL_SRV_ENUM_SNAPS failed\n"); + printf("FSCTL_SRV_ENUM_SNAPS failed\n"); return false; -- Samba Shared Repository