rerun 'make idl'
authorStefan Metzmacher <metze@sernet.de>
Wed, 5 Mar 2008 06:12:28 +0000 (07:12 +0100)
committerStefan Metzmacher <metze@sernet.de>
Fri, 2 May 2008 14:13:24 +0000 (16:13 +0200)
metze

source/librpc/gen_ndr/ndr_winbind_protocol.c
source/librpc/gen_ndr/ndr_winbind_protocol.h
source/librpc/gen_ndr/winbind_protocol.h

index a5f228153ea5cbcde27cab81841bde5cf82b8117..29296ce76df46137af7f2146fc5879feb9d34f8e 100644 (file)
@@ -124,6 +124,350 @@ _PUBLIC_ void ndr_print_STRUCT_winbind_header(struct ndr_print *ndr, const char
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_winbind_trust_level(struct ndr_push *ndr, int ndr_flags, enum winbind_trust_level r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_winbind_trust_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_trust_level *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_winbind_trust_level(struct ndr_print *ndr, const char *name, enum winbind_trust_level r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case WINBIND_TRUST_LEVEL_COMPAT_LIST: val = "WINBIND_TRUST_LEVEL_COMPAT_LIST"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_STRUCT_winbind_domain_info_compat(struct ndr_push *ndr, int ndr_flags, const struct winbind_domain_info_compat *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF8)));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF8)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
+               if (r->sid == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_ref_ptr(ndr));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_native_mode));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_active_directory));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_primary));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->dns_name) {
+                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF8)));
+                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF8)));
+                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+               }
+               NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_STRUCT_winbind_domain_info_compat(struct ndr_pull *ndr, int ndr_flags, struct winbind_domain_info_compat *r)
+{
+       uint32_t _ptr_dns_name;
+       TALLOC_CTX *_mem_save_dns_name_0;
+       uint32_t _ptr_sid;
+       TALLOC_CTX *_mem_save_sid_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
+               NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
+               if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
+                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
+               }
+               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint8_t)));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
+               if (_ptr_dns_name) {
+                       NDR_PULL_ALLOC(ndr, r->dns_name);
+               } else {
+                       r->dns_name = NULL;
+               }
+               NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_sid));
+               if (_ptr_sid) {
+                       NDR_PULL_ALLOC(ndr, r->sid);
+               } else {
+                       r->sid = NULL;
+               }
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_native_mode));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_active_directory));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_primary));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->dns_name) {
+                       _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
+                       NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
+                       if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
+                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
+                       }
+                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint8_t)));
+                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint8_t), CH_UTF8));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
+               }
+               _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
+               NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_STRUCT_winbind_domain_info_compat(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat *r)
+{
+       ndr_print_struct(ndr, name, "winbind_domain_info_compat");
+       ndr->depth++;
+       ndr_print_string(ndr, "netbios_name", r->netbios_name);
+       ndr_print_ptr(ndr, "dns_name", r->dns_name);
+       ndr->depth++;
+       if (r->dns_name) {
+               ndr_print_string(ndr, "dns_name", r->dns_name);
+       }
+       ndr->depth--;
+       ndr_print_ptr(ndr, "sid", r->sid);
+       ndr->depth++;
+       ndr_print_dom_sid(ndr, "sid", r->sid);
+       ndr->depth--;
+       ndr_print_uint32(ndr, "is_native_mode", r->is_native_mode);
+       ndr_print_uint32(ndr, "is_active_directory", r->is_active_directory);
+       ndr_print_uint32(ndr, "is_primary", r->is_primary);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_STRUCT_winbind_domain_info_compat_array(struct ndr_push *ndr, int ndr_flags, const struct winbind_domain_info_compat_array *r)
+{
+       uint32_t cntr_domains_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_domains));
+               for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
+                       NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat(ndr, NDR_SCALARS, &r->domains[cntr_domains_0]));
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
+                       NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat(ndr, NDR_BUFFERS, &r->domains[cntr_domains_0]));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_STRUCT_winbind_domain_info_compat_array(struct ndr_pull *ndr, int ndr_flags, struct winbind_domain_info_compat_array *r)
+{
+       uint32_t cntr_domains_0;
+       TALLOC_CTX *_mem_save_domains_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_domains));
+               NDR_PULL_ALLOC_N(ndr, r->domains, r->num_domains);
+               _mem_save_domains_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0);
+               for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
+                       NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat(ndr, NDR_SCALARS, &r->domains[cntr_domains_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domains_0, 0);
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               _mem_save_domains_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0);
+               for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
+                       NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat(ndr, NDR_BUFFERS, &r->domains[cntr_domains_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domains_0, 0);
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_STRUCT_winbind_domain_info_compat_array(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat_array *r)
+{
+       uint32_t cntr_domains_0;
+       ndr_print_struct(ndr, name, "winbind_domain_info_compat_array");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "num_domains", r->num_domains);
+       ndr->print(ndr, "%s: ARRAY(%d)", "domains", r->num_domains);
+       ndr->depth++;
+       for (cntr_domains_0=0;cntr_domains_0<r->num_domains;cntr_domains_0++) {
+               char *idx_0=NULL;
+               if (asprintf(&idx_0, "[%d]", cntr_domains_0) != -1) {
+                       ndr_print_STRUCT_winbind_domain_info_compat(ndr, "domains", &r->domains[cntr_domains_0]);
+                       free(idx_0);
+               }
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_winbind_trust_req(struct ndr_push *ndr, int ndr_flags, const union winbind_trust_req *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               NDR_CHECK(ndr_push_winbind_trust_level(ndr, NDR_SCALARS, level));
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST:
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_winbind_trust_req(struct ndr_pull *ndr, int ndr_flags, union winbind_trust_req *r)
+{
+       int level;
+       uint32_t _level;
+       level = ndr_pull_get_switch_value(ndr, r);
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
+               if (_level != level) {
+                       return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
+               }
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST:
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_winbind_trust_req(struct ndr_print *ndr, const char *name, const union winbind_trust_req *r)
+{
+       int level;
+       level = ndr_print_get_switch_value(ndr, r);
+       ndr_print_union(ndr, name, level, "winbind_trust_req");
+       switch (level) {
+               case WINBIND_TRUST_LEVEL_COMPAT_LIST:
+               break;
+
+               default:
+               break;
+
+       }
+}
+
+static enum ndr_err_code ndr_push_winbind_trust_rep(struct ndr_push *ndr, int ndr_flags, const union winbind_trust_rep *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               NDR_CHECK(ndr_push_winbind_trust_level(ndr, NDR_SCALARS, level));
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
+                               NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat_array(ndr, NDR_SCALARS, &r->compat_trusts));
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST:
+                               NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat_array(ndr, NDR_BUFFERS, &r->compat_trusts));
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_winbind_trust_rep(struct ndr_pull *ndr, int ndr_flags, union winbind_trust_rep *r)
+{
+       int level;
+       uint32_t _level;
+       level = ndr_pull_get_switch_value(ndr, r);
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
+               if (_level != level) {
+                       return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
+               }
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
+                               NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat_array(ndr, NDR_SCALARS, &r->compat_trusts));
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               switch (level) {
+                       case WINBIND_TRUST_LEVEL_COMPAT_LIST:
+                               NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat_array(ndr, NDR_BUFFERS, &r->compat_trusts));
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_winbind_trust_rep(struct ndr_print *ndr, const char *name, const union winbind_trust_rep *r)
+{
+       int level;
+       level = ndr_print_get_switch_value(ndr, r);
+       ndr_print_union(ndr, name, level, "winbind_trust_rep");
+       switch (level) {
+               case WINBIND_TRUST_LEVEL_COMPAT_LIST:
+                       ndr_print_STRUCT_winbind_domain_info_compat_array(ndr, "compat_trusts", &r->compat_trusts);
+               break;
+
+               default:
+               break;
+
+       }
+}
+
 static enum ndr_err_code ndr_push_winbind_lookup_level(struct ndr_push *ndr, int ndr_flags, enum winbind_lookup_level r)
 {
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
@@ -219,8 +563,7 @@ _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_req_rids(struct ndr_print *ndr, co
        ndr->depth++;
        for (cntr_rids_0=0;cntr_rids_0<r->num_rids;cntr_rids_0++) {
                char *idx_0=NULL;
-               asprintf(&idx_0, "[%d]", cntr_rids_0);
-               if (idx_0) {
+               if (asprintf(&idx_0, "[%d]", cntr_rids_0) != -1) {
                        ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_0]);
                        free(idx_0);
                }
@@ -235,23 +578,23 @@ static enum ndr_err_code ndr_push_winbind_lookup_req(struct ndr_push *ndr, int n
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_lookup_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_LOOKUP_LEVEL_SID2NAME:
+                       case WINBIND_LOOKUP_LEVEL_SID2NAME: {
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
-                       break;
+                       break; }
 
-                       case WINBIND_LOOKUP_LEVEL_NAME2SID:
+                       case WINBIND_LOOKUP_LEVEL_NAME2SID: {
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
                                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
-                       break;
+                       break; }
 
-                       case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
+                       case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
                                NDR_CHECK(ndr_push_STRUCT_winbind_lookup_req_rids(ndr, NDR_SCALARS, &r->rids));
-                       break;
+                       break; }
 
-                       default:
-                       break;
+                       default: {
+                       break; }
 
                }
        }
@@ -528,8 +871,7 @@ _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_name_info_array(struct ndr_print *
        ndr->depth++;
        for (cntr_names_0=0;cntr_names_0<r->num_names;cntr_names_0++) {
                char *idx_0=NULL;
-               asprintf(&idx_0, "[%d]", cntr_names_0);
-               if (idx_0) {
+               if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
                        ndr_print_STRUCT_winbind_lookup_name_info(ndr, "names", &r->names[cntr_names_0]);
                        free(idx_0);
                }
@@ -544,20 +886,20 @@ static enum ndr_err_code ndr_push_winbind_lookup_rep(struct ndr_push *ndr, int n
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_lookup_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_LOOKUP_LEVEL_SID2NAME:
+                       case WINBIND_LOOKUP_LEVEL_SID2NAME: {
                                NDR_CHECK(ndr_push_STRUCT_winbind_lookup_name_info(ndr, NDR_SCALARS, &r->name_info));
-                       break;
+                       break; }
 
-                       case WINBIND_LOOKUP_LEVEL_NAME2SID:
+                       case WINBIND_LOOKUP_LEVEL_NAME2SID: {
                                NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info(ndr, NDR_SCALARS, &r->sid_info));
-                       break;
+                       break; }
 
-                       case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
+                       case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
                                NDR_CHECK(ndr_push_STRUCT_winbind_lookup_name_info_array(ndr, NDR_SCALARS, &r->name_array));
-                       break;
+                       break; }
 
-                       default:
-                       break;
+                       default: {
+                       break; }
 
                }
        }
@@ -687,21 +1029,21 @@ static enum ndr_err_code ndr_push_winbind_get_idmap_req(struct ndr_push *ndr, in
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_get_idmap_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_IDMAP_LEVEL_SID_TO_UID:
+                       case WINBIND_IDMAP_LEVEL_SID_TO_UID: {
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
-                       break;
+                       break; }
 
-                       case WINBIND_IDMAP_LEVEL_SID_TO_GID:
+                       case WINBIND_IDMAP_LEVEL_SID_TO_GID: {
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
-                       break;
+                       break; }
 
-                       case WINBIND_IDMAP_LEVEL_UID_TO_SID:
+                       case WINBIND_IDMAP_LEVEL_UID_TO_SID: {
                                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->uid));
-                       break;
+                       break; }
 
-                       case WINBIND_IDMAP_LEVEL_GID_TO_SID:
+                       case WINBIND_IDMAP_LEVEL_GID_TO_SID: {
                                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->gid));
-                       break;
+                       break; }
 
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
@@ -855,21 +1197,21 @@ static enum ndr_err_code ndr_push_winbind_get_idmap_rep(struct ndr_push *ndr, in
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_get_idmap_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_IDMAP_LEVEL_SID_TO_UID:
+                       case WINBIND_IDMAP_LEVEL_SID_TO_UID: {
                                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->uid));
-                       break;
+                       break; }
 
-                       case WINBIND_IDMAP_LEVEL_SID_TO_GID:
+                       case WINBIND_IDMAP_LEVEL_SID_TO_GID: {
                                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->gid));
-                       break;
+                       break; }
 
-                       case WINBIND_IDMAP_LEVEL_UID_TO_SID:
+                       case WINBIND_IDMAP_LEVEL_UID_TO_SID: {
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
-                       break;
+                       break; }
 
-                       case WINBIND_IDMAP_LEVEL_GID_TO_SID:
+                       case WINBIND_IDMAP_LEVEL_GID_TO_SID: {
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
-                       break;
+                       break; }
 
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
@@ -1050,19 +1392,19 @@ static enum ndr_err_code ndr_push_winbind_set_idmap_req(struct ndr_push *ndr, in
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_set_idmap_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
-                       break;
+                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID: {
+                       break; }
 
-                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
-                       break;
+                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID: {
+                       break; }
 
-                       case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
+                       case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING: {
                                NDR_CHECK(ndr_push_id_map(ndr, NDR_SCALARS, &r->mapping));
-                       break;
+                       break; }
 
-                       case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
+                       case WINBIND_SET_IDMAP_LEVEL_SET_HWM: {
                                NDR_CHECK(ndr_push_unixid(ndr, NDR_SCALARS, &r->hwm));
-                       break;
+                       break; }
 
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
@@ -1175,19 +1517,19 @@ static enum ndr_err_code ndr_push_winbind_set_idmap_rep(struct ndr_push *ndr, in
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_set_idmap_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
+                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID: {
                                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->uid));
-                       break;
+                       break; }
 
-                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
+                       case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID: {
                                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->gid));
-                       break;
+                       break; }
 
-                       case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
-                       break;
+                       case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING: {
+                       break; }
 
-                       case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
-                       break;
+                       case WINBIND_SET_IDMAP_LEVEL_SET_HWM: {
+                       break; }
 
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
@@ -1290,106 +1632,6 @@ _PUBLIC_ void ndr_print_winbind_set_idmap_rep(struct ndr_print *ndr, const char
        }
 }
 
-static enum ndr_err_code ndr_push_STRUCT_winbind_domain_info_compat(struct ndr_push *ndr, int ndr_flags, const struct winbind_domain_info_compat *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF8)));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF8)));
-               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
-               NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
-               if (r->sid == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
-               }
-               NDR_CHECK(ndr_push_ref_ptr(ndr));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_native_mode));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_active_directory));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_primary));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               if (r->dns_name) {
-                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF8)));
-                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
-                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF8)));
-                       NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
-               }
-               NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_STRUCT_winbind_domain_info_compat(struct ndr_pull *ndr, int ndr_flags, struct winbind_domain_info_compat *r)
-{
-       uint32_t _ptr_dns_name;
-       TALLOC_CTX *_mem_save_dns_name_0;
-       uint32_t _ptr_sid;
-       TALLOC_CTX *_mem_save_sid_0;
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
-               NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
-               if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
-                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
-               }
-               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint8_t)));
-               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint8_t), CH_UTF8));
-               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
-               if (_ptr_dns_name) {
-                       NDR_PULL_ALLOC(ndr, r->dns_name);
-               } else {
-                       r->dns_name = NULL;
-               }
-               NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_sid));
-               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-                       NDR_PULL_ALLOC(ndr, r->sid);
-               }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_native_mode));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_active_directory));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_primary));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               if (r->dns_name) {
-                       _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
-                       NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
-                       NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
-                       NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
-                       if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
-                               return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
-                       }
-                       NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint8_t)));
-                       NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint8_t), CH_UTF8));
-                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
-               }
-               _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->sid, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_STRUCT_winbind_domain_info_compat(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat *r)
-{
-       ndr_print_struct(ndr, name, "winbind_domain_info_compat");
-       ndr->depth++;
-       ndr_print_string(ndr, "netbios_name", r->netbios_name);
-       ndr_print_ptr(ndr, "dns_name", r->dns_name);
-       ndr->depth++;
-       if (r->dns_name) {
-               ndr_print_string(ndr, "dns_name", r->dns_name);
-       }
-       ndr->depth--;
-       ndr_print_ptr(ndr, "sid", r->sid);
-       ndr->depth++;
-       ndr_print_dom_sid(ndr, "sid", r->sid);
-       ndr->depth--;
-       ndr_print_uint32(ndr, "is_native_mode", r->is_native_mode);
-       ndr_print_uint32(ndr, "is_active_directory", r->is_active_directory);
-       ndr_print_uint32(ndr, "is_primary", r->is_primary);
-       ndr->depth--;
-}
-
 static enum ndr_err_code ndr_push_winbind_domain_info_level(struct ndr_push *ndr, int ndr_flags, enum winbind_domain_info_level r)
 {
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
@@ -1421,13 +1663,13 @@ static enum ndr_err_code ndr_push_winbind_domain_info(struct ndr_push *ndr, int
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_domain_info_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_DOMAIN_INFO_LEVEL_COMPAT:
+                       case WINBIND_DOMAIN_INFO_LEVEL_COMPAT: {
                                NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat(ndr, NDR_SCALARS, &r->compat));
-                       break;
+                       break; }
 
-                       case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM:
+                       case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM: {
                                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->seqnum));
-                       break;
+                       break; }
 
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
@@ -1539,12 +1781,12 @@ static enum ndr_err_code ndr_push_winbind_dc_info_params(struct ndr_push *ndr, i
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_dc_info_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
-                       break;
+                       case WINBIND_DC_INFO_LEVEL_COMPAT_NT4: {
+                       break; }
 
-                       case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
+                       case WINBIND_DC_INFO_LEVEL_COMPAT_DS: {
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
-                       break;
+                       break; }
 
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
@@ -1627,13 +1869,13 @@ static enum ndr_err_code ndr_push_winbind_dc_info(struct ndr_push *ndr, int ndr_
                int level = ndr_push_get_switch_value(ndr, r);
                NDR_CHECK(ndr_push_winbind_dc_info_level(ndr, NDR_SCALARS, level));
                switch (level) {
-                       case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
+                       case WINBIND_DC_INFO_LEVEL_COMPAT_NT4: {
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
-                       break;
+                       break; }
 
-                       case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
+                       case WINBIND_DC_INFO_LEVEL_COMPAT_DS: {
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
-                       break;
+                       break; }
 
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
@@ -2591,41 +2833,86 @@ _PUBLIC_ void ndr_print_winbind_list_groups(struct ndr_print *ndr, const char *n
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_winbind_list_trustdom(struct ndr_push *ndr, int flags, const struct winbind_list_trustdom *r)
+static enum ndr_err_code ndr_push_winbind_trust(struct ndr_push *ndr, int flags, const struct winbind_trust *r)
 {
        if (flags & NDR_IN) {
+               if (r->in.level == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_winbind_trust_level(ndr, NDR_SCALARS, *r->in.level));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, *r->in.level));
+               NDR_CHECK(ndr_push_winbind_trust_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
        }
        if (flags & NDR_OUT) {
+               if (r->out.rep == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.rep, *r->in.level));
+               NDR_CHECK(ndr_push_winbind_trust_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
                NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_winbind_list_trustdom(struct ndr_pull *ndr, int flags, struct winbind_list_trustdom *r)
+static enum ndr_err_code ndr_pull_winbind_trust(struct ndr_pull *ndr, int flags, struct winbind_trust *r)
 {
+       TALLOC_CTX *_mem_save_level_0;
+       TALLOC_CTX *_mem_save_rep_0;
        if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.level);
+               }
+               _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_winbind_trust_level(ndr, NDR_SCALARS, r->in.level));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, *r->in.level));
+               NDR_CHECK(ndr_pull_winbind_trust_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
+               NDR_PULL_ALLOC(ndr, r->out.rep);
+               ZERO_STRUCTP(r->out.rep);
        }
        if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.rep);
+               }
+               _mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.rep, *r->in.level));
+               NDR_CHECK(ndr_pull_winbind_trust_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_winbind_list_trustdom(struct ndr_print *ndr, const char *name, int flags, const struct winbind_list_trustdom *r)
+_PUBLIC_ void ndr_print_winbind_trust(struct ndr_print *ndr, const char *name, int flags, const struct winbind_trust *r)
 {
-       ndr_print_struct(ndr, name, "winbind_list_trustdom");
+       ndr_print_struct(ndr, name, "winbind_trust");
        ndr->depth++;
        if (flags & NDR_SET_VALUES) {
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
        }
        if (flags & NDR_IN) {
-               ndr_print_struct(ndr, "in", "winbind_list_trustdom");
+               ndr_print_struct(ndr, "in", "winbind_trust");
                ndr->depth++;
+               ndr_print_ptr(ndr, "level", r->in.level);
+               ndr->depth++;
+               ndr_print_winbind_trust_level(ndr, "level", *r->in.level);
+               ndr->depth--;
+               ndr_print_set_switch_value(ndr, &r->in.req, *r->in.level);
+               ndr_print_winbind_trust_req(ndr, "req", &r->in.req);
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
-               ndr_print_struct(ndr, "out", "winbind_list_trustdom");
+               ndr_print_struct(ndr, "out", "winbind_trust");
                ndr->depth++;
+               ndr_print_ptr(ndr, "rep", r->out.rep);
+               ndr->depth++;
+               ndr_print_set_switch_value(ndr, r->out.rep, *r->in.level);
+               ndr_print_winbind_trust_rep(ndr, "rep", r->out.rep);
+               ndr->depth--;
                ndr_print_winbind_status(ndr, "result", r->out.result);
                ndr->depth--;
        }
@@ -3835,11 +4122,11 @@ static const struct ndr_interface_call winbind_protocol_calls[] = {
                false,
        },
        {
-               "winbind_list_trustdom",
-               sizeof(struct winbind_list_trustdom),
-               (ndr_push_flags_fn_t) ndr_push_winbind_list_trustdom,
-               (ndr_pull_flags_fn_t) ndr_pull_winbind_list_trustdom,
-               (ndr_print_function_t) ndr_print_winbind_list_trustdom,
+               "winbind_trust",
+               sizeof(struct winbind_trust),
+               (ndr_push_flags_fn_t) ndr_push_winbind_trust,
+               (ndr_pull_flags_fn_t) ndr_pull_winbind_trust,
+               (ndr_print_function_t) ndr_print_winbind_trust,
                false,
        },
        {
index 1c04c4ff71b734790807df5281ba9fe13c9a9a09..30e4bda4004dab066e2fbf6ff587ee63d2e012f7 100644 (file)
@@ -51,7 +51,7 @@ extern const struct ndr_interface_table ndr_table_winbind_protocol;
 
 #define NDR_WINBIND_LIST_GROUPS (0x13)
 
-#define NDR_WINBIND_LIST_TRUSTDOM (0x14)
+#define NDR_WINBIND_TRUST (0x14)
 
 #define NDR_WINBIND_LOOKUP (0x15)
 
@@ -96,6 +96,11 @@ void ndr_print_winbind_header_flags(struct ndr_print *ndr, const char *name, uin
 enum ndr_err_code ndr_push_STRUCT_winbind_header(struct ndr_push *ndr, int ndr_flags, const struct winbind_header *r);
 enum ndr_err_code ndr_pull_STRUCT_winbind_header(struct ndr_pull *ndr, int ndr_flags, struct winbind_header *r);
 void ndr_print_STRUCT_winbind_header(struct ndr_print *ndr, const char *name, const struct winbind_header *r);
+void ndr_print_winbind_trust_level(struct ndr_print *ndr, const char *name, enum winbind_trust_level r);
+void ndr_print_STRUCT_winbind_domain_info_compat(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat *r);
+void ndr_print_STRUCT_winbind_domain_info_compat_array(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat_array *r);
+void ndr_print_winbind_trust_req(struct ndr_print *ndr, const char *name, const union winbind_trust_req *r);
+void ndr_print_winbind_trust_rep(struct ndr_print *ndr, const char *name, const union winbind_trust_rep *r);
 void ndr_print_winbind_lookup_level(struct ndr_print *ndr, const char *name, enum winbind_lookup_level r);
 void ndr_print_STRUCT_winbind_lookup_req_rids(struct ndr_print *ndr, const char *name, const struct winbind_lookup_req_rids *r);
 void ndr_print_winbind_lookup_req(struct ndr_print *ndr, const char *name, const union winbind_lookup_req *r);
@@ -109,7 +114,6 @@ void ndr_print_winbind_get_idmap_rep(struct ndr_print *ndr, const char *name, co
 void ndr_print_winbind_set_idmap_level(struct ndr_print *ndr, const char *name, enum winbind_set_idmap_level r);
 void ndr_print_winbind_set_idmap_req(struct ndr_print *ndr, const char *name, const union winbind_set_idmap_req *r);
 void ndr_print_winbind_set_idmap_rep(struct ndr_print *ndr, const char *name, const union winbind_set_idmap_rep *r);
-void ndr_print_STRUCT_winbind_domain_info_compat(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat *r);
 void ndr_print_winbind_domain_info_level(struct ndr_print *ndr, const char *name, enum winbind_domain_info_level r);
 void ndr_print_winbind_domain_info(struct ndr_print *ndr, const char *name, const union winbind_domain_info *r);
 void ndr_print_winbind_dc_info_level(struct ndr_print *ndr, const char *name, enum winbind_dc_info_level r);
@@ -135,7 +139,7 @@ void ndr_print_winbind_pam_logoff(struct ndr_print *ndr, const char *name, int f
 void ndr_print_winbind_pam_chng_paswd_auth_crap(struct ndr_print *ndr, const char *name, int flags, const struct winbind_pam_chng_paswd_auth_crap *r);
 void ndr_print_winbind_list_users(struct ndr_print *ndr, const char *name, int flags, const struct winbind_list_users *r);
 void ndr_print_winbind_list_groups(struct ndr_print *ndr, const char *name, int flags, const struct winbind_list_groups *r);
-void ndr_print_winbind_list_trustdom(struct ndr_print *ndr, const char *name, int flags, const struct winbind_list_trustdom *r);
+void ndr_print_winbind_trust(struct ndr_print *ndr, const char *name, int flags, const struct winbind_trust *r);
 void ndr_print_winbind_lookup(struct ndr_print *ndr, const char *name, int flags, const struct winbind_lookup *r);
 void ndr_print_winbind_get_idmap(struct ndr_print *ndr, const char *name, int flags, const struct winbind_get_idmap *r);
 void ndr_print_winbind_set_idmap(struct ndr_print *ndr, const char *name, int flags, const struct winbind_set_idmap *r);
index a286940e27c1a751d843b8724bb26ff1f19ba809..c23a8603ad9238cb8ff4e2eedde0a36683fbef13 100644 (file)
@@ -55,6 +55,40 @@ struct winbind_header {
        uint32_t flags;
 }/* [public] */;
 
+enum winbind_trust_level
+#ifndef USE_UINT_ENUMS
+ {
+       WINBIND_TRUST_LEVEL_COMPAT_LIST=1
+}
+#else
+ { __donnot_use_enum_winbind_trust_level=0x7FFFFFFF}
+#define WINBIND_TRUST_LEVEL_COMPAT_LIST ( 1 )
+#endif
+;
+
+struct winbind_domain_info_compat {
+       const char *netbios_name;/* [charset(UTF8)] */
+       const char *dns_name;/* [unique,charset(UTF8)] */
+       struct dom_sid *sid;/* [ref] */
+       uint32_t is_native_mode;
+       uint32_t is_active_directory;
+       uint32_t is_primary;
+};
+
+struct winbind_domain_info_compat_array {
+       uint32_t num_domains;
+       struct winbind_domain_info_compat *domains;
+};
+
+struct winbind_domain_info_compat;
+
+union winbind_trust_req {
+}/* [switch_type(winbind_trust_level)] */;
+
+union winbind_trust_rep {
+       struct winbind_domain_info_compat_array compat_trusts;/* [case(WINBIND_TRUST_LEVEL_COMPAT_LIST)] */
+}/* [switch_type(winbind_trust_level)] */;
+
 enum winbind_lookup_level
 #ifndef USE_UINT_ENUMS
  {
@@ -162,15 +196,6 @@ union winbind_set_idmap_rep {
        uint64_t gid;/* [case(WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID)] */
 }/* [switch_type(winbind_set_idmap_level)] */;
 
-struct winbind_domain_info_compat {
-       const char *netbios_name;/* [charset(UTF8)] */
-       const char *dns_name;/* [unique,charset(UTF8)] */
-       struct dom_sid *sid;/* [ref] */
-       uint32_t is_native_mode;
-       uint32_t is_active_directory;
-       uint32_t is_primary;
-};
-
 enum winbind_domain_info_level
 #ifndef USE_UINT_ENUMS
  {
@@ -371,8 +396,14 @@ struct winbind_list_groups {
 };
 
 
-struct winbind_list_trustdom {
+struct winbind_trust {
+       struct {
+               enum winbind_trust_level *level;/* [ref] */
+               union winbind_trust_req req;/* [switch_is(*level)] */
+       } in;
+
        struct {
+               union winbind_trust_rep *rep;/* [ref,switch_is(*level)] */
                enum winbind_status result;
        } out;