From 6a13c028a94772b66788f2a213e8c09707ee6596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Deschner?= Date: Fri, 30 Apr 2010 01:11:44 +0200 Subject: rap: let the rap print function be autogenerated again. Guenther --- librpc/gen_ndr/ndr_rap.c | 82 ++++++++++++++++++++++++++++++++++++++---------- librpc/gen_ndr/rap.h | 2 +- 2 files changed, 67 insertions(+), 17 deletions(-) (limited to 'librpc/gen_ndr') diff --git a/librpc/gen_ndr/ndr_rap.c b/librpc/gen_ndr/ndr_rap.c index 5a454319602..6d975184c1a 100644 --- a/librpc/gen_ndr/ndr_rap.c +++ b/librpc/gen_ndr/ndr_rap.c @@ -2257,6 +2257,7 @@ _PUBLIC_ void ndr_print_rap_NetShareEnum(struct ndr_print *ndr, const char *name _PUBLIC_ enum ndr_err_code ndr_push_rap_NetServerEnum2(struct ndr_push *ndr, int flags, const struct rap_NetServerEnum2 *r) { + uint32_t cntr_info_0; if (flags & NDR_IN) { NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize)); @@ -2276,17 +2277,20 @@ _PUBLIC_ enum ndr_err_code ndr_push_rap_NetServerEnum2(struct ndr_push *ndr, int NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available)); - if (r->out.info == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + for (cntr_info_0 = 0; cntr_info_0 < r->out.count; cntr_info_0++) { + NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level)); + NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS, &r->out.info[cntr_info_0])); + } + for (cntr_info_0 = 0; cntr_info_0 < r->out.count; cntr_info_0++) { + NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0])); } - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); } return NDR_ERR_SUCCESS; } _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetServerEnum2(struct ndr_pull *ndr, int flags, struct rap_NetServerEnum2 *r) { + uint32_t cntr_info_0; TALLOC_CTX *_mem_save_info_0; if (flags & NDR_IN) { ZERO_STRUCT(r->out); @@ -2300,28 +2304,30 @@ _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetServerEnum2(struct ndr_pull *ndr, int NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->in.domain)); ndr->flags = _flags_save_string; } - NDR_PULL_ALLOC(ndr, r->out.info); - ZERO_STRUCTP(r->out.info); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status)); NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert)); NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count)); NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.info); - } + NDR_PULL_ALLOC_N(ndr, r->out.info, r->out.count); _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0); + for (cntr_info_0 = 0; cntr_info_0 < r->out.count; cntr_info_0++) { + NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level)); + NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS, &r->out.info[cntr_info_0])); + } + for (cntr_info_0 = 0; cntr_info_0 < r->out.count; cntr_info_0++) { + NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0); } return NDR_ERR_SUCCESS; } _PUBLIC_ void ndr_print_rap_NetServerEnum2(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetServerEnum2 *r) { + uint32_t cntr_info_0; ndr_print_struct(ndr, name, "rap_NetServerEnum2"); ndr->depth++; if (flags & NDR_SET_VALUES) { @@ -2346,10 +2352,16 @@ _PUBLIC_ void ndr_print_rap_NetServerEnum2(struct ndr_print *ndr, const char *na ndr_print_uint16(ndr, "convert", r->out.convert); ndr_print_uint16(ndr, "count", r->out.count); ndr_print_uint16(ndr, "available", r->out.available); - ndr_print_ptr(ndr, "info", r->out.info); + ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count); ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.info, r->in.level); - ndr_print_rap_server_info(ndr, "info", r->out.info); + for (cntr_info_0=0;cntr_info_0out.count;cntr_info_0++) { + char *idx_0=NULL; + if (asprintf(&idx_0, "[%d]", cntr_info_0) != -1) { + ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level); + ndr_print_rap_server_info(ndr, "info", &r->out.info[cntr_info_0]); + free(idx_0); + } + } ndr->depth--; ndr->depth--; } @@ -2470,6 +2482,44 @@ _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQEnum(struct ndr_pull *ndr, int return NDR_ERR_SUCCESS; } +_PUBLIC_ void ndr_print_rap_NetPrintQEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQEnum *r) +{ + uint32_t cntr_info_0; + ndr_print_struct(ndr, name, "rap_NetPrintQEnum"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "rap_NetPrintQEnum"); + ndr->depth++; + ndr_print_uint16(ndr, "level", r->in.level); + ndr_print_uint16(ndr, "bufsize", r->in.bufsize); + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "rap_NetPrintQEnum"); + ndr->depth++; + ndr_print_uint16(ndr, "status", r->out.status); + ndr_print_uint16(ndr, "convert", r->out.convert); + ndr_print_uint16(ndr, "count", r->out.count); + ndr_print_uint16(ndr, "available", r->out.available); + ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count); + ndr->depth++; + for (cntr_info_0=0;cntr_info_0out.count;cntr_info_0++) { + char *idx_0=NULL; + if (asprintf(&idx_0, "[%d]", cntr_info_0) != -1) { + ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level); + ndr_print_rap_printq_info(ndr, "info", &r->out.info[cntr_info_0]); + free(idx_0); + } + } + ndr->depth--; + ndr->depth--; + } + ndr->depth--; +} + _PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintQGetInfo(struct ndr_push *ndr, int flags, const struct rap_NetPrintQGetInfo *r) { if (flags & NDR_IN) { diff --git a/librpc/gen_ndr/rap.h b/librpc/gen_ndr/rap.h index 15538a886f8..4a6a11fee5d 100644 --- a/librpc/gen_ndr/rap.h +++ b/librpc/gen_ndr/rap.h @@ -623,7 +623,7 @@ struct rap_NetServerEnum2 { uint16_t convert; uint16_t count; uint16_t available; - union rap_server_info *info;/* [ref,switch_is(level)] */ + union rap_server_info *info;/* [switch_is(level)] */ } out; }; -- cgit v1.2.1