Author: metze
Date: 2006-05-17 09:52:14 +0000 (Wed, 17 May 2006)
New Revision: 15656

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15656

Log:
for NT IOCTL's we need to control the max_data field for some calls

metze
Modified:
   branches/SAMBA_4_0/source/libcli/raw/interfaces.h
   branches/SAMBA_4_0/source/libcli/raw/rawioctl.c
   branches/SAMBA_4_0/source/smb_server/smb/nttrans.c
   branches/SAMBA_4_0/source/torture/raw/ioctl.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/raw/interfaces.h
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/interfaces.h   2006-05-17 00:51:42 UTC 
(rev 15655)
+++ branches/SAMBA_4_0/source/libcli/raw/interfaces.h   2006-05-17 09:52:14 UTC 
(rev 15656)
@@ -1716,6 +1716,7 @@
                        uint32_t function;
                        BOOL fsctl;
                        uint8_t filter;
+                       uint32_t max_data;
                        DATA_BLOB blob;
                } in;
                struct {

Modified: branches/SAMBA_4_0/source/libcli/raw/rawioctl.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/rawioctl.c     2006-05-17 00:51:42 UTC 
(rev 15655)
+++ branches/SAMBA_4_0/source/libcli/raw/rawioctl.c     2006-05-17 09:52:14 UTC 
(rev 15656)
@@ -77,7 +77,7 @@
 
        nt.in.max_setup = 0;
        nt.in.max_param = 0;
-       nt.in.max_data = 0;
+       nt.in.max_data = parms->ntioctl.in.max_data;
        nt.in.setup_count = 4;
        nt.in.setup = (uint16_t *)setup;
        SIVAL(setup, 0, parms->ntioctl.in.function);

Modified: branches/SAMBA_4_0/source/smb_server/smb/nttrans.c
===================================================================
--- branches/SAMBA_4_0/source/smb_server/smb/nttrans.c  2006-05-17 00:51:42 UTC 
(rev 15655)
+++ branches/SAMBA_4_0/source/smb_server/smb/nttrans.c  2006-05-17 09:52:14 UTC 
(rev 15656)
@@ -324,6 +324,7 @@
        nt->ntioctl.in.function = function;
        nt->ntioctl.in.fsctl = fsctl;
        nt->ntioctl.in.filter = filter;
+       nt->ntioctl.in.max_data = trans->in.max_data;
        nt->ntioctl.in.blob = trans->in.data;
 
        status = nttrans_setup_reply(op, trans, 0, 0, 1);

Modified: branches/SAMBA_4_0/source/torture/raw/ioctl.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/ioctl.c       2006-05-17 00:51:42 UTC 
(rev 15655)
+++ branches/SAMBA_4_0/source/torture/raw/ioctl.c       2006-05-17 09:52:14 UTC 
(rev 15656)
@@ -105,6 +105,7 @@
        nt.ntioctl.in.file.fnum = fnum;
        nt.ntioctl.in.fsctl = True;
        nt.ntioctl.in.filter = 0;
+       nt.ntioctl.in.max_data = 0;
        nt.ntioctl.in.blob = data_blob(NULL, 0);
 
        status = smb_raw_ioctl(cli->tree, mem_ctx, &nt);
@@ -112,10 +113,11 @@
 
        printf("trying batch oplock\n");
        nt.ioctl.level = RAW_IOCTL_NTIOCTL;
-       nt.ntioctl.in.function = (FSCTL_FILESYSTEM | (2<<2));
+       nt.ntioctl.in.function = FSCTL_REQUEST_BATCH_OPLOCK;
        nt.ntioctl.in.file.fnum = fnum;
        nt.ntioctl.in.fsctl = True;
        nt.ntioctl.in.filter = 0;
+       nt.ntioctl.in.max_data = 0;
        nt.ntioctl.in.blob = data_blob(NULL, 0);
 
        status = smb_raw_ioctl(cli->tree, mem_ctx, &nt);

Reply via email to