[PATCH] smb2 FSCTL_SRV_COPYCHUNK support

David Disseldorp ddiss at suse.de
Tue Oct 18 08:09:02 MDT 2011


Hi Metze,

On Tue, 11 Oct 2011 16:11:25 +0200
"Stefan (metze) Metzmacher" <metze at samba.org> wrote:

> I'd like to split the subfunctions based on the device id of the
> function code:
> Look for smb2_ioctl_device_vals here:
> http://gitweb.samba.org/?p=metze/wireshark/svnmirror.git;a=blob;f=epan/dissectors/packet-smb2.c#l972
> 
> And I think we should move the splitted functions into a new file per
> device.

I've reworked the existing SMB2 ioctl handler code to use separate
source files per ioctl device type. Please let me know if this is
what you had in mind:

http://git.samba.org/?p=ddiss/samba.git;a=shortlog;h=refs/heads/smb2_ioctl_split_dev_type
The following changes since commit 56328a4d61c8d0a52f6841097bf8fc4ffd46bfb6:

  s3/doc: add man page for aio_fork vfs module (2011-10-18 12:24:35 +0200)

are available in the git repository at:
  git://git.samba.org/ddiss/samba.git smb2_ioctl_split_dev_type

David Disseldorp (6):
      libcli: move ioctl function field defs to smb_constants
      s3: Remove duplicate fsctl function definitions
      libcli: Move smb2 fsctl fn defs into common code
      s3: remove duplicate fsctl fn definitions
      s3-smb2: split ioctl handlers into separate functions
      s3-smb2: split ioctl handler code on device type

 libcli/smb/smb_constants.h           |   55 ++++++
 source3/Makefile.in                  |    4 +
 source3/include/ntioctl.h            |   49 -----
 source3/libsmb/clisymlink.c          |    1 -
 source3/smbd/nttrans.c               |    1 -
 source3/smbd/smb2_ioctl.c            |  352 ++-------------------------------
 source3/smbd/smb2_ioctl_dfs.c        |  119 ++++++++++++
 source3/smbd/smb2_ioctl_filesys.c    |   49 +++++
 source3/smbd/smb2_ioctl_named_pipe.c |  164 ++++++++++++++++
 source3/smbd/smb2_ioctl_network_fs.c |  172 +++++++++++++++++
 source3/torture/test_nttrans_fsctl.c |    1 -
 source3/wscript_build                |    4 +
 source4/libcli/raw/interfaces.h      |   11 -
 source4/libcli/raw/ioctl.h           |   59 ------
 source4/libcli/raw/rawshadow.c       |    2 +-
 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/torture/basic/misc.c         |    2 +-
 source4/torture/raw/ioctl.c          |    2 +-
 source4/torture/smb2/ioctl.c         |    4 +-
 source4/torture/util_smb.c           |    2 +-
 23 files changed, 599 insertions(+), 462 deletions(-)
 create mode 100644 source3/smbd/smb2_ioctl_dfs.c
 create mode 100644 source3/smbd/smb2_ioctl_filesys.c
 create mode 100644 source3/smbd/smb2_ioctl_named_pipe.c
 create mode 100644 source3/smbd/smb2_ioctl_network_fs.c
 delete mode 100644 source4/libcli/raw/ioctl.h

If this gets the green light I'll rebase the copychunk changes atop and
repost.

Cheers, David


More information about the samba-technical mailing list