rerun 'make idl'
authorStefan Metzmacher <metze@sernet.de>
Mon, 10 Mar 2008 15:55:50 +0000 (16:55 +0100)
committerStefan Metzmacher <metze@sernet.de>
Fri, 2 May 2008 14:13:28 +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 a0af94577aad3f0cc5975d2884ff566ca62e2569..b2802dc8d2dbd762f6a153088292499e5fdb3db9 100644 (file)
@@ -521,6 +521,7 @@ _PUBLIC_ void ndr_print_winbind_lookup_level(struct ndr_print *ndr, const char *
                case WINBIND_LOOKUP_LEVEL_SID2NAME: val = "WINBIND_LOOKUP_LEVEL_SID2NAME"; break;
                case WINBIND_LOOKUP_LEVEL_NAME2SID: val = "WINBIND_LOOKUP_LEVEL_NAME2SID"; break;
                case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: val = "WINBIND_LOOKUP_LEVEL_RIDS2NAMES"; break;
+               case WINBIND_LOOKUP_LEVEL_SID2USERINFO: val = "WINBIND_LOOKUP_LEVEL_SID2USERINFO"; break;
        }
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
@@ -624,6 +625,10 @@ static enum ndr_err_code ndr_push_winbind_lookup_req(struct ndr_push *ndr, int n
                                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; }
+
                        default: {
                        break; }
 
@@ -645,6 +650,12 @@ static enum ndr_err_code ndr_push_winbind_lookup_req(struct ndr_push *ndr, int n
                                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;
+
                        default:
                        break;
 
@@ -689,6 +700,16 @@ static enum ndr_err_code ndr_pull_winbind_lookup_req(struct ndr_pull *ndr, int n
                                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; }
+
                        default: {
                        break; }
 
@@ -712,6 +733,15 @@ static enum ndr_err_code ndr_pull_winbind_lookup_req(struct ndr_pull *ndr, int n
                                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;
+
                        default:
                        break;
 
@@ -743,6 +773,15 @@ _PUBLIC_ void ndr_print_winbind_lookup_req(struct ndr_print *ndr, const char *na
                        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;
+
                default:
                break;
 
@@ -911,6 +950,87 @@ _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_name_info_array(struct ndr_print *
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_user_info(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_user_info *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 8));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account, CH_UTF8)));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account, CH_UTF8)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account, ndr_charset_length(r->account, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->gecos, CH_UTF8)));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->gecos, CH_UTF8)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->gecos, ndr_charset_length(r->gecos, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->homedir, ndr_charset_length(r->homedir, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->shell, ndr_charset_length(r->shell, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->primary_gid));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_rid));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_STRUCT_winbind_lookup_user_info(struct ndr_pull *ndr, int ndr_flags, struct winbind_lookup_user_info *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 8));
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->account));
+               NDR_CHECK(ndr_pull_array_length(ndr, &r->account));
+               if (ndr_get_array_length(ndr, &r->account) > ndr_get_array_size(ndr, &r->account)) {
+                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account), ndr_get_array_length(ndr, &r->account));
+               }
+               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account), sizeof(uint8_t)));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account, ndr_get_array_length(ndr, &r->account), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->gecos));
+               NDR_CHECK(ndr_pull_array_length(ndr, &r->gecos));
+               if (ndr_get_array_length(ndr, &r->gecos) > ndr_get_array_size(ndr, &r->gecos)) {
+                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->gecos), ndr_get_array_length(ndr, &r->gecos));
+               }
+               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->gecos), sizeof(uint8_t)));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->gecos, ndr_get_array_length(ndr, &r->gecos), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->homedir));
+               NDR_CHECK(ndr_pull_array_length(ndr, &r->homedir));
+               if (ndr_get_array_length(ndr, &r->homedir) > ndr_get_array_size(ndr, &r->homedir)) {
+                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->homedir), ndr_get_array_length(ndr, &r->homedir));
+               }
+               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t)));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->homedir, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->shell));
+               NDR_CHECK(ndr_pull_array_length(ndr, &r->shell));
+               if (ndr_get_array_length(ndr, &r->shell) > ndr_get_array_size(ndr, &r->shell)) {
+                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->shell), ndr_get_array_length(ndr, &r->shell));
+               }
+               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t)));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->shell, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t), CH_UTF8));
+               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->primary_gid));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_rid));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_STRUCT_winbind_lookup_user_info(struct ndr_print *ndr, const char *name, const struct winbind_lookup_user_info *r)
+{
+       ndr_print_struct(ndr, name, "winbind_lookup_user_info");
+       ndr->depth++;
+       ndr_print_string(ndr, "account", r->account);
+       ndr_print_string(ndr, "gecos", r->gecos);
+       ndr_print_string(ndr, "homedir", r->homedir);
+       ndr_print_string(ndr, "shell", r->shell);
+       ndr_print_hyper(ndr, "primary_gid", r->primary_gid);
+       ndr_print_uint32(ndr, "primary_rid", r->primary_rid);
+       ndr->depth--;
+}
+
 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) {
@@ -929,6 +1049,10 @@ static enum ndr_err_code ndr_push_winbind_lookup_rep(struct ndr_push *ndr, int n
                                NDR_CHECK(ndr_push_STRUCT_winbind_lookup_name_info_array(ndr, NDR_SCALARS, &r->name_array));
                        break; }
 
+                       case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
+                               NDR_CHECK(ndr_push_STRUCT_winbind_lookup_user_info(ndr, NDR_SCALARS, &r->user_info));
+                       break; }
+
                        default: {
                        break; }
 
@@ -947,6 +1071,9 @@ static enum ndr_err_code ndr_push_winbind_lookup_rep(struct ndr_push *ndr, int n
                        case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
                        break;
 
+                       case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
+                       break;
+
                        default:
                        break;
 
@@ -978,6 +1105,10 @@ static enum ndr_err_code ndr_pull_winbind_lookup_rep(struct ndr_pull *ndr, int n
                                NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_name_info_array(ndr, NDR_SCALARS, &r->name_array));
                        break; }
 
+                       case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
+                               NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_user_info(ndr, NDR_SCALARS, &r->user_info));
+                       break; }
+
                        default: {
                        break; }
 
@@ -995,6 +1126,9 @@ static enum ndr_err_code ndr_pull_winbind_lookup_rep(struct ndr_pull *ndr, int n
                        case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
                        break;
 
+                       case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
+                       break;
+
                        default:
                        break;
 
@@ -1021,6 +1155,10 @@ _PUBLIC_ void ndr_print_winbind_lookup_rep(struct ndr_print *ndr, const char *na
                        ndr_print_STRUCT_winbind_lookup_name_info_array(ndr, "name_array", &r->name_array);
                break;
 
+               case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
+                       ndr_print_STRUCT_winbind_lookup_user_info(ndr, "user_info", &r->user_info);
+               break;
+
                default:
                break;
 
index 9f5c52442e9fb666b6e6ad63777581f8f11f0c0d..87809497dd10052be351f4f05f3add96c7ce5202 100644 (file)
@@ -105,6 +105,7 @@ void ndr_print_winbind_lookup_req(struct ndr_print *ndr, const char *name, const
 void ndr_print_STRUCT_winbind_lookup_name_info(struct ndr_print *ndr, const char *name, const struct winbind_lookup_name_info *r);
 void ndr_print_STRUCT_winbind_lookup_sid_info(struct ndr_print *ndr, const char *name, const struct winbind_lookup_sid_info *r);
 void ndr_print_STRUCT_winbind_lookup_name_info_array(struct ndr_print *ndr, const char *name, const struct winbind_lookup_name_info_array *r);
+void ndr_print_STRUCT_winbind_lookup_user_info(struct ndr_print *ndr, const char *name, const struct winbind_lookup_user_info *r);
 void ndr_print_winbind_lookup_rep(struct ndr_print *ndr, const char *name, const union winbind_lookup_rep *r);
 void ndr_print_winbind_get_idmap_level(struct ndr_print *ndr, const char *name, enum winbind_get_idmap_level r);
 void ndr_print_winbind_get_idmap_req(struct ndr_print *ndr, const char *name, const union winbind_get_idmap_req *r);
index 4b4caeea6b3379d46c32d26d49a03e6fad17cd01..3cf8887af7db14878e36bced67ea0fd459448ac9 100644 (file)
@@ -96,13 +96,15 @@ enum winbind_lookup_level
  {
        WINBIND_LOOKUP_LEVEL_SID2NAME=1,
        WINBIND_LOOKUP_LEVEL_NAME2SID=2,
-       WINBIND_LOOKUP_LEVEL_RIDS2NAMES=3
+       WINBIND_LOOKUP_LEVEL_RIDS2NAMES=3,
+       WINBIND_LOOKUP_LEVEL_SID2USERINFO=4
 }
 #else
  { __donnot_use_enum_winbind_lookup_level=0x7FFFFFFF}
 #define WINBIND_LOOKUP_LEVEL_SID2NAME ( 1 )
 #define WINBIND_LOOKUP_LEVEL_NAME2SID ( 2 )
 #define WINBIND_LOOKUP_LEVEL_RIDS2NAMES ( 3 )
+#define WINBIND_LOOKUP_LEVEL_SID2USERINFO ( 4 )
 #endif
 ;
 
@@ -136,10 +138,20 @@ struct winbind_lookup_name_info_array {
 
 struct winbind_lookup_name_info;
 
+struct winbind_lookup_user_info {
+       const char *account;/* [charset(UTF8)] */
+       const char *gecos;/* [charset(UTF8)] */
+       const char *homedir;/* [charset(UTF8)] */
+       const char *shell;/* [charset(UTF8)] */
+       uint64_t primary_gid;
+       uint32_t primary_rid;
+};
+
 union winbind_lookup_rep {
        struct winbind_lookup_name_info name_info;/* [case(WINBIND_LOOKUP_LEVEL_SID2NAME)] */
        struct winbind_lookup_sid_info sid_info;/* [case(WINBIND_LOOKUP_LEVEL_NAME2SID)] */
        struct winbind_lookup_name_info_array name_array;/* [case(WINBIND_LOOKUP_LEVEL_RIDS2NAMES)] */
+       struct winbind_lookup_user_info user_info;/* [case(WINBIND_LOOKUP_LEVEL_SID2USERINFO)] */
 }/* [switch_type(winbind_lookup_level)] */;
 
 enum winbind_get_idmap_level