svn commit: samba r3302 - in branches/SAMBA_4_0/source: librpc/idl scripting/swig/torture

tpot at samba.org tpot at samba.org
Thu Oct 28 03:40:36 GMT 2004


Author: tpot
Date: 2004-10-28 03:40:35 +0000 (Thu, 28 Oct 2004)
New Revision: 3302

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source&rev=3302&nolog=1

Log:
The security descriptors in spoolss_PrinterInfo2 and spoolss_PrinterInfo3
need to be marked as subcontext(0).

GetPrinter tests now work for all info levels!

Modified:
   branches/SAMBA_4_0/source/librpc/idl/spoolss.idl
   branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/spoolss.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/spoolss.idl	2004-10-27 22:41:14 UTC (rev 3301)
+++ branches/SAMBA_4_0/source/librpc/idl/spoolss.idl	2004-10-28 03:40:35 UTC (rev 3302)
@@ -123,7 +123,7 @@
 		[relative] nstring *printprocessor;
 		[relative] nstring *datatype;
 		[relative] nstring *parameters;
-		[relative] security_descriptor *secdesc;
+		[relative,subcontext(0)] security_descriptor *secdesc;
 		uint32 attributes;
 		uint32 priority;
 		uint32 defaultpriority;
@@ -136,7 +136,7 @@
 
 	typedef struct {
 		uint32 flags;
-		security_descriptor secdesc;
+		[subcontext(0)] security_descriptor secdesc;
 	} spoolss_PrinterInfo3;
 
 	typedef struct {

Modified: branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py	2004-10-27 22:41:14 UTC (rev 3301)
+++ branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py	2004-10-28 03:40:35 UTC (rev 3302)
@@ -6,7 +6,8 @@
     print 'testing spoolss_OpenPrinterEx(%s)' % printer
 
     r = {}
-    r['printername'] = '\\\\win2k3dc\\%s' % printer
+    r['printername'] = '\\\\%s\\%s' % \
+                       (dcerpc.dcerpc_server_name(pipe), printer)
     r['datatype'] = None
     r['devmode_ctr'] = {}
     r['devmode_ctr']['size'] = 0
@@ -41,16 +42,16 @@
     r = {}
     r['handle'] = handle
 
-    for level in [1, 2, 3]:
+    for level in [0, 1, 2, 3, 4, 5, 6, 7]:
 
+        print 'test_GetPrinter(level = %d)' % level
+
         r['level'] = level
         r['buffer'] = None
         r['buf_size'] = 0
 
         result = dcerpc.spoolss_GetPrinter(pipe, r)
 
-        print result
-
         if result['result'] == dcerpc.WERR_INSUFFICIENT_BUFFER:
             r['buffer'] = result['buf_size'] * '\x00'
             r['buf_size'] = result['buf_size']
@@ -59,7 +60,48 @@
 
             print result
 
+def test_EnumForms(pipe, handle):
 
+    print 'testing spoolss_EnumForms'
+
+    r = {}
+    r['handle'] = handle
+    r['level'] = 1
+    r['buffer'] = None
+    r['buf_size'] = 0
+
+    result = dcerpc.spoolss_EnumForms(pipe, r)
+
+    if result['result'] == dcerpc.WERR_INSUFFICIENT_BUFFER:
+        r['buffer'] = result['buf_size'] * '\x00'
+        r['buf_size'] = result['buf_size']
+
+        result = dcerpc.spoolss_EnumForms(pipe, r)
+
+    print result
+           
+
+def test_EnumPorts(pipe, handle):
+
+    print 'testing spoolss_EnumPorts'
+
+    r = {}
+    r['handle'] = handle
+    r['level'] = 1
+    r['buffer'] = None
+    r['buf_size'] = 0
+
+    result = dcerpc.spoolss_EnumPorts(pipe, r)
+
+    if result['result'] == dcerpc.WERR_INSUFFICIENT_BUFFER:
+        r['buffer'] = result['buf_size'] * '\x00'
+        r['buf_size'] = result['buf_size']
+
+        result = dcerpc.spoolss_EnumPorts(pipe, r)
+
+    print result
+           
+
 def test_EnumPrinters(pipe):
 
     print 'testing spoolss_EnumPrinters'
@@ -70,8 +112,10 @@
     r['flags'] = 0x02
     r['server'] = None
 
-    for level in [1, 2, 4, 5]:
+    for level in [0, 1, 4, 5]:
 
+        print 'test_EnumPrinters(level = %d)' % level
+
         r['level'] = level
         r['buf_size'] = 0
         r['buffer'] = None
@@ -87,7 +131,10 @@
         printers = dcerpc.unmarshall_spoolss_PrinterInfo_array(
             result['buffer'], r['level'], result['count'])
 
-        if printer_names is None:
+        from pprint import pprint
+        pprint(printers)
+
+        if level == 1:
             printer_names = map(
                 lambda x: string.split(x['info1']['name'], ',')[0], printers)
 



More information about the samba-cvs mailing list