spoolss: add ndr_size_spoolss_EnumPrinterDataEx_info in spoolss helper.
authorGünther Deschner <gd@samba.org>
Wed, 18 Mar 2009 10:11:05 +0000 (11:11 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 18 Mar 2009 10:57:10 +0000 (11:57 +0100)
Guenther
(cherry picked from commit 2687d29f7c4dbb2bbb88a85558cae43c2ce8e7f8)

librpc/ndr/ndr_spoolss_buf.c
librpc/ndr/ndr_spoolss_buf.h

index 5e749dff5f483ac4f77afe8d434754140143c97b..f30c17b5697a67cb1b03db8fcbf2a3cd4e8ebab5 100644 (file)
        return _data_blob_info.length;\
 } while(0)
 
+/* TODO: set _ndr_info->flags correct */
+#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, iconv_convenience);\
+       if (!_ndr_info) return 0;\
+       _ndr_info->flags|=0;\
+       __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
 */
@@ -531,6 +546,12 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int f
        return NDR_ERR_SUCCESS;
 }
 
+uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+                                                uint32_t count, struct spoolss_PrinterEnumValues *info)
+{
+       NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumPrinterDataEx);
+}
+
 /*
   spoolss_GetPrinterData
 */
index ae3bf868f55e58b9262c6edcf81fab068082a2b3..842d8c4d095950336fd2eba2078f1ad882b7b900 100644 (file)
@@ -40,6 +40,8 @@ uint32_t ndr_size_spoolss_EnumPrintProcDataTypes_info(TALLOC_CTX *mem_ctx, struc
                                                      uint32_t level, uint32_t count, union spoolss_PrintProcDataTypesInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r);
 enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r);
+uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+                                                uint32_t count, struct spoolss_PrinterEnumValues *info);
 enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r);
 enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r);
 enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r);