svn commit: samba r7181 - in branches/SAMBA_4_0/source/librpc/ndr: .

metze at samba.org metze at samba.org
Thu Jun 2 00:18:07 GMT 2005


Author: metze
Date: 2005-06-02 00:18:06 +0000 (Thu, 02 Jun 2005)
New Revision: 7181

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

Log:
add functions to calculate the buffer size needed for array buffer in the spoolss_Enum* functions
they will be later used in the spoolss server code

metze
Modified:
   branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c	2005-06-01 23:41:43 UTC (rev 7180)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c	2005-06-02 00:18:06 UTC (rev 7181)
@@ -111,6 +111,25 @@
 	}\
 } while(0)
 
+#define _NDR_CHECK_UINT32(call) do { NTSTATUS _status; \
+                             _status = call; \
+                             if (!NT_STATUS_IS_OK(_status)) \
+                                return 0; \
+                        } while (0)
+
+#define NDR_SPOOLSS_SIZE_ENUM(fn) do { \
+	struct __##fn __r;\
+	DATA_BLOB _data_blob_info;\
+	struct ndr_push *_ndr_info = ndr_push_init_ctx(mem_ctx);\
+	if (!_ndr_info) return 0;\
+	__r.in.level	= level;\
+	__r.in.count	= count;\
+	__r.out.info	= info;\
+	_NDR_CHECK_UINT32(ndr_push___##fn(_ndr_info, NDR_OUT, &__r)); \
+	_data_blob_info = ndr_push_blob(_ndr_info);\
+	return _data_blob_info.length;\
+} while(0)
+
 /*
   spoolss_EnumPrinters
 */
@@ -138,6 +157,11 @@
 	return NT_STATUS_OK;
 }
 
+uint32_t ndr_size_spoolss_EnumPrinters_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_PrinterInfo *info)
+{
+	NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumPrinters);
+}
+
 /*
   spoolss_EnumJobs
 */
@@ -169,6 +193,11 @@
 	return NT_STATUS_OK;
 }
 
+uint32_t ndr_size_spoolss_EnumJobss_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_JobInfo *info)
+{
+	NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumJobs);
+}
+
 /*
   spoolss_EnumPrinterDrivers
 */
@@ -196,6 +225,11 @@
 	return NT_STATUS_OK;
 }
 
+uint32_t ndr_size_spoolss_EnumPrinterDrivers_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_DriverInfo *info)
+{
+	NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumPrinterDrivers);
+}
+
 /*
   spoolss_EnumForms
 */
@@ -219,6 +253,11 @@
 	return NT_STATUS_OK;
 }
 
+uint32_t ndr_size_spoolss_EnumForms_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_FormInfo *info)
+{
+	NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumForms);
+}
+
 /*
   spoolss_EnumPorts
 */
@@ -242,6 +281,11 @@
 	return NT_STATUS_OK;
 }
 
+uint32_t ndr_size_spoolss_EnumPorts_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_PortInfo *info)
+{
+	NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumPorts);
+}
+
 /*
   spoolss_EnumMonitors
 */
@@ -265,6 +309,11 @@
 	return NT_STATUS_OK;
 }
 
+uint32_t ndr_size_spoolss_EnumMonitors_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_MonitorInfo *info)
+{
+	NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumMonitors);
+}
+
 /*
   spoolss_EnumPrintProcessors
 */
@@ -291,3 +340,8 @@
 	});
 	return NT_STATUS_OK;
 }
+
+uint32_t ndr_size_spoolss_EnumPrinterProcessors_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_PrintProcessorInfo *info)
+{
+	NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumPrintProcessors);
+}



More information about the samba-cvs mailing list