case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: val = "WINBIND_LOOKUP_LEVEL_RIDS2NAMES"; break;
case WINBIND_LOOKUP_LEVEL_SID2USERINFO: val = "WINBIND_LOOKUP_LEVEL_SID2USERINFO"; break;
case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: val = "WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS"; break;
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: val = "WINBIND_LOOKUP_LEVEL_EXPANDALIASES"; break;
}
ndr_print_enum(ndr, name, "ENUM", val, r);
}
ndr->depth--;
}
-static enum ndr_err_code ndr_push_winbind_lookup_req(struct ndr_push *ndr, int ndr_flags, const union winbind_lookup_req *r)
-{
- if (ndr_flags & NDR_SCALARS) {
- 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: {
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
- break; }
-
- 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; }
-
- case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
- NDR_CHECK(ndr_push_STRUCT_winbind_lookup_req_rids(ndr, NDR_SCALARS, &r->rids));
- break; }
-
- case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
- break; }
-
- case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
- break; }
-
- default: {
- break; }
-
- }
- }
- if (ndr_flags & NDR_BUFFERS) {
- int level = ndr_push_get_switch_value(ndr, r);
- switch (level) {
- case WINBIND_LOOKUP_LEVEL_SID2NAME:
- if (r->sid) {
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
- }
- break;
-
- case WINBIND_LOOKUP_LEVEL_NAME2SID:
- break;
-
- case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
- NDR_CHECK(ndr_push_STRUCT_winbind_lookup_req_rids(ndr, NDR_BUFFERS, &r->rids));
- break;
-
- case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
- if (r->sid) {
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
- }
- break;
-
- case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
- if (r->sid) {
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
- }
- break;
-
- default:
- break;
-
- }
- }
- return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_winbind_lookup_req(struct ndr_pull *ndr, int ndr_flags, union winbind_lookup_req *r)
-{
- int level;
- uint32_t _level;
- TALLOC_CTX *_mem_save_sid_0;
- 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_LOOKUP_LEVEL_SID2NAME: {
- uint32_t _ptr_sid;
- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
- if (_ptr_sid) {
- NDR_PULL_ALLOC(ndr, r->sid);
- } else {
- r->sid = NULL;
- }
- break; }
-
- case WINBIND_LOOKUP_LEVEL_NAME2SID: {
- NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
- NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->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->name), ndr_get_array_length(ndr, &r->name));
- }
- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t)));
- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t), CH_UTF8));
- break; }
-
- case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
- NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_req_rids(ndr, NDR_SCALARS, &r->rids));
- break; }
-
- case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
- uint32_t _ptr_sid;
- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
- if (_ptr_sid) {
- NDR_PULL_ALLOC(ndr, r->sid);
- } else {
- r->sid = NULL;
- }
- break; }
-
- case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
- uint32_t _ptr_sid;
- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
- if (_ptr_sid) {
- NDR_PULL_ALLOC(ndr, r->sid);
- } else {
- r->sid = NULL;
- }
- break; }
-
- default: {
- break; }
-
- }
- }
- if (ndr_flags & NDR_BUFFERS) {
- switch (level) {
- case WINBIND_LOOKUP_LEVEL_SID2NAME:
- if (r->sid) {
- _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);
- }
- break;
-
- case WINBIND_LOOKUP_LEVEL_NAME2SID:
- break;
-
- case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
- NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_req_rids(ndr, NDR_BUFFERS, &r->rids));
- break;
-
- case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
- if (r->sid) {
- _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);
- }
- break;
-
- case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
- if (r->sid) {
- _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);
- }
- break;
-
- default:
- break;
-
- }
- }
- return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_winbind_lookup_req(struct ndr_print *ndr, const char *name, const union winbind_lookup_req *r)
-{
- int level;
- level = ndr_print_get_switch_value(ndr, r);
- ndr_print_union(ndr, name, level, "winbind_lookup_req");
- switch (level) {
- case WINBIND_LOOKUP_LEVEL_SID2NAME:
- ndr_print_ptr(ndr, "sid", r->sid);
- ndr->depth++;
- if (r->sid) {
- ndr_print_dom_sid(ndr, "sid", r->sid);
- }
- ndr->depth--;
- break;
-
- case WINBIND_LOOKUP_LEVEL_NAME2SID:
- ndr_print_string(ndr, "name", r->name);
- break;
-
- case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
- ndr_print_STRUCT_winbind_lookup_req_rids(ndr, "rids", &r->rids);
- break;
-
- case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
- ndr_print_ptr(ndr, "sid", r->sid);
- ndr->depth++;
- if (r->sid) {
- ndr_print_dom_sid(ndr, "sid", r->sid);
- }
- ndr->depth--;
- break;
-
- case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
- ndr_print_ptr(ndr, "sid", r->sid);
- ndr->depth++;
- if (r->sid) {
- ndr_print_dom_sid(ndr, "sid", r->sid);
- }
- ndr->depth--;
- break;
-
- default:
- break;
-
- }
-}
-
static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_name_info(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_name_info *r)
{
if (ndr_flags & NDR_SCALARS) {
ndr->depth--;
}
+static enum ndr_err_code ndr_push_winbind_lookup_req(struct ndr_push *ndr, int ndr_flags, const union winbind_lookup_req *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ 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: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
+ break; }
+
+ 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; }
+
+ case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
+ NDR_CHECK(ndr_push_STRUCT_winbind_lookup_req_rids(ndr, NDR_SCALARS, &r->rids));
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
+ NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
+ break; }
+
+ default: {
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ int level = ndr_push_get_switch_value(ndr, r);
+ switch (level) {
+ case WINBIND_LOOKUP_LEVEL_SID2NAME:
+ if (r->sid) {
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
+ }
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_NAME2SID:
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
+ NDR_CHECK(ndr_push_STRUCT_winbind_lookup_req_rids(ndr, NDR_BUFFERS, &r->rids));
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
+ if (r->sid) {
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
+ }
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
+ if (r->sid) {
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
+ }
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
+ NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
+ break;
+
+ default:
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_winbind_lookup_req(struct ndr_pull *ndr, int ndr_flags, union winbind_lookup_req *r)
+{
+ int level;
+ uint32_t _level;
+ TALLOC_CTX *_mem_save_sid_0;
+ 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_LOOKUP_LEVEL_SID2NAME: {
+ uint32_t _ptr_sid;
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
+ if (_ptr_sid) {
+ NDR_PULL_ALLOC(ndr, r->sid);
+ } else {
+ r->sid = NULL;
+ }
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_NAME2SID: {
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
+ if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->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->name), ndr_get_array_length(ndr, &r->name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t), CH_UTF8));
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
+ NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_req_rids(ndr, NDR_SCALARS, &r->rids));
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
+ uint32_t _ptr_sid;
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
+ if (_ptr_sid) {
+ NDR_PULL_ALLOC(ndr, r->sid);
+ } else {
+ r->sid = NULL;
+ }
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
+ uint32_t _ptr_sid;
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
+ if (_ptr_sid) {
+ NDR_PULL_ALLOC(ndr, r->sid);
+ } else {
+ r->sid = NULL;
+ }
+ break; }
+
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
+ NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
+ break; }
+
+ default: {
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ switch (level) {
+ case WINBIND_LOOKUP_LEVEL_SID2NAME:
+ if (r->sid) {
+ _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);
+ }
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_NAME2SID:
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
+ NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_req_rids(ndr, NDR_BUFFERS, &r->rids));
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
+ if (r->sid) {
+ _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);
+ }
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
+ if (r->sid) {
+ _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);
+ }
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
+ NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
+ break;
+
+ default:
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_winbind_lookup_req(struct ndr_print *ndr, const char *name, const union winbind_lookup_req *r)
+{
+ int level;
+ level = ndr_print_get_switch_value(ndr, r);
+ ndr_print_union(ndr, name, level, "winbind_lookup_req");
+ switch (level) {
+ case WINBIND_LOOKUP_LEVEL_SID2NAME:
+ ndr_print_ptr(ndr, "sid", r->sid);
+ ndr->depth++;
+ if (r->sid) {
+ ndr_print_dom_sid(ndr, "sid", r->sid);
+ }
+ ndr->depth--;
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_NAME2SID:
+ ndr_print_string(ndr, "name", r->name);
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
+ ndr_print_STRUCT_winbind_lookup_req_rids(ndr, "rids", &r->rids);
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
+ ndr_print_ptr(ndr, "sid", r->sid);
+ ndr->depth++;
+ if (r->sid) {
+ ndr_print_dom_sid(ndr, "sid", r->sid);
+ }
+ ndr->depth--;
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
+ ndr_print_ptr(ndr, "sid", r->sid);
+ ndr->depth++;
+ if (r->sid) {
+ ndr_print_dom_sid(ndr, "sid", r->sid);
+ }
+ ndr->depth--;
+ break;
+
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
+ ndr_print_STRUCT_winbind_lookup_sid_info_array(ndr, "sid_array", &r->sid_array);
+ break;
+
+ default:
+ break;
+
+ }
+}
+
static enum ndr_err_code ndr_push_winbind_lookup_rep(struct ndr_push *ndr, int ndr_flags, const union winbind_lookup_rep *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
break; }
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
+ NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
+ break; }
+
default: {
break; }
NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
break;
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
+ NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
+ break;
+
default:
break;
NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
break; }
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
+ NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
+ break; }
+
default: {
break; }
NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
break;
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
+ NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
+ break;
+
default:
break;
ndr_print_STRUCT_winbind_lookup_sid_info_array(ndr, "sid_array", &r->sid_array);
break;
+ case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
+ ndr_print_STRUCT_winbind_lookup_sid_info_array(ndr, "sid_array", &r->sid_array);
+ break;
+
default:
break;