[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Wed Oct 19 09:16:03 MDT 2011


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 <metze at 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 <metze at samba.org>
    Autobuild-Date: Wed Oct 19 17:15:23 CEST 2011 on sn-devel-104

commit 8bf1e4caae0fcf87aa87bce2eaff2aab7ead8746
Author: Stefan Metzmacher <metze at 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 <metze at 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 <metze at 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 <metze at 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 <metze at 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 <metze at 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 <metze at 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 <ddiss at suse.de>
Date:   Tue Oct 18 13:55:22 2011 +0200

    s3: remove duplicate fsctl fn definitions
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit b711de287f9318b5de1374c72f0194403e845f79
Author: David Disseldorp <ddiss at 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 <metze at samba.org>

commit d5ea379428bafbe3f0b26b2dc7906fa6379833a9
Author: David Disseldorp <ddiss at suse.de>
Date:   Tue Oct 18 12:23:26 2011 +0200

    s3: Remove duplicate fsctl function definitions
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 281fc93c6bc21039ffedcc8d19084df02b087f24
Author: David Disseldorp <ddiss at 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 <metze at 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


More information about the samba-cvs mailing list