s4-rap: add rap print helpers.
[metze/samba/wip.git] / librpc / ndr / ndr_rap.c
1 /*
2    Unix SMB/CIFS implementation.
3
4    routines for marshalling/unmarshalling special rap types
5
6    Copyright (C) Guenther Deschner 2010
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 3 of the License, or
11    (at your option) any later version.
12
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 */
21
22 #include "includes.h"
23 #include "librpc/gen_ndr/ndr_rap.h"
24
25 _PUBLIC_ void ndr_print_rap_NetPrintQEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQEnum *r)
26 {
27         uint32_t cntr_info_1;
28         ndr_print_struct(ndr, name, "rap_NetPrintQEnum");
29         ndr->depth++;
30         if (flags & NDR_SET_VALUES) {
31                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32         }
33         if (flags & NDR_IN) {
34                 ndr_print_struct(ndr, "in", "rap_NetPrintQEnum");
35                 ndr->depth++;
36                 ndr_print_uint16(ndr, "level", r->in.level);
37                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
38                 ndr->depth--;
39         }
40         if (flags & NDR_OUT) {
41                 ndr_print_struct(ndr, "out", "rap_NetPrintQEnum");
42                 ndr->depth++;
43                 ndr_print_WERROR(ndr, "status", W_ERROR(r->out.status));
44                 ndr_print_uint16(ndr, "convert", r->out.convert);
45                 ndr_print_uint16(ndr, "count", r->out.count);
46                 ndr_print_uint16(ndr, "available", r->out.available);
47                 ndr_print_ptr(ndr, "info", r->out.info);
48                 ndr->depth++;
49                 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
50                 ndr->depth++;
51                 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
52                         char *idx_1=NULL;
53                         if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
54                                 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
55                                 ndr_print_rap_printq_info(ndr, "info", &r->out.info[cntr_info_1]);
56                                 free(idx_1);
57                         }
58                 }
59                 ndr->depth--;
60                 ndr->depth--;
61                 ndr->depth--;
62         }
63         ndr->depth--;
64 }