summaryrefslogtreecommitdiff
path: root/source3/librpc/gen_ndr/ndr_lsa.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-03-27 18:48:28 +0100
committerGünther Deschner <gd@samba.org>2008-03-27 21:02:10 +0100
commit3fe908448eff8f85200c075cd2fe389e5b40ba5f (patch)
tree1ce850f8a381b24d2e1719d177b87b09577e0947 /source3/librpc/gen_ndr/ndr_lsa.c
parentfb30efac1577ad6e72800b7b800828640d625210 (diff)
downloadsamba-3fe908448eff8f85200c075cd2fe389e5b40ba5f.tar.gz
samba-3fe908448eff8f85200c075cd2fe389e5b40ba5f.tar.bz2
samba-3fe908448eff8f85200c075cd2fe389e5b40ba5f.zip
re-run make idl.
Guenther (This used to be commit e048780163f95fb7c2d337606794e1aa3c8b4b79)
Diffstat (limited to 'source3/librpc/gen_ndr/ndr_lsa.c')
-rw-r--r--source3/librpc/gen_ndr/ndr_lsa.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/source3/librpc/gen_ndr/ndr_lsa.c b/source3/librpc/gen_ndr/ndr_lsa.c
index 03e1c21e55..d881093272 100644
--- a/source3/librpc/gen_ndr/ndr_lsa.c
+++ b/source3/librpc/gen_ndr/ndr_lsa.c
@@ -374,6 +374,98 @@ _PUBLIC_ void ndr_print_lsa_AsciiStringLarge(struct ndr_print *ndr, const char *
ndr->depth--;
}
+_PUBLIC_ enum ndr_err_code ndr_push_lsa_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct lsa_BinaryString *r)
+{
+ uint32_t cntr_string_1;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
+ NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ if (r->string) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
+ for (cntr_string_1 = 0; cntr_string_1 < r->length / 2; cntr_string_1++) {
+ NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->string[cntr_string_1]));
+ }
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_lsa_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct lsa_BinaryString *r)
+{
+ uint32_t _ptr_string;
+ uint32_t cntr_string_1;
+ TALLOC_CTX *_mem_save_string_0;
+ TALLOC_CTX *_mem_save_string_1;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
+ NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
+ if (_ptr_string) {
+ NDR_PULL_ALLOC(ndr, r->string);
+ } else {
+ r->string = NULL;
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ if (r->string) {
+ _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->string));
+ if (ndr_get_array_length(ndr, &r->string) > ndr_get_array_size(ndr, &r->string)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string), ndr_get_array_length(ndr, &r->string));
+ }
+ NDR_PULL_ALLOC_N(ndr, r->string, ndr_get_array_size(ndr, &r->string));
+ _mem_save_string_1 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
+ for (cntr_string_1 = 0; cntr_string_1 < r->length / 2; cntr_string_1++) {
+ NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->string[cntr_string_1]));
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_1, 0);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
+ }
+ if (r->string) {
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
+ }
+ if (r->string) {
+ NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->string, r->length / 2));
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_BinaryString(struct ndr_print *ndr, const char *name, const struct lsa_BinaryString *r)
+{
+ uint32_t cntr_string_1;
+ ndr_print_struct(ndr, name, "lsa_BinaryString");
+ ndr->depth++;
+ ndr_print_uint16(ndr, "length", r->length);
+ ndr_print_uint16(ndr, "size", r->size);
+ ndr_print_ptr(ndr, "string", r->string);
+ ndr->depth++;
+ if (r->string) {
+ ndr->print(ndr, "%s: ARRAY(%d)", "string", r->length / 2);
+ ndr->depth++;
+ for (cntr_string_1=0;cntr_string_1<r->length / 2;cntr_string_1++) {
+ char *idx_1=NULL;
+ if (asprintf(&idx_1, "[%d]", cntr_string_1) != -1) {
+ ndr_print_uint16(ndr, "string", r->string[cntr_string_1]);
+ free(idx_1);
+ }
+ }
+ ndr->depth--;
+ }
+ ndr->depth--;
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_lsa_LUID(struct ndr_push *ndr, int ndr_flags, const struct lsa_LUID *r)
{
if (ndr_flags & NDR_SCALARS) {