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