wb-ndr: add WINBIND_GET_IDMAP function (TODO!)
authorStefan Metzmacher <metze@sernet.de>
Thu, 13 Dec 2007 09:49:03 +0000 (10:49 +0100)
committerStefan Metzmacher <metze@sernet.de>
Fri, 2 May 2008 14:12:34 +0000 (16:12 +0200)
add todo's to make dom_sid *sid a [ref] pointers...

metze

source/librpc/idl/winbind_protocol.idl

index 78702a18d67337c309d730848a95657aa8aabf54..382ba98193595dc7990914d4176fec26c23509f1 100644 (file)
@@ -109,21 +109,46 @@ import "security.idl";
        /*
         * SID conversion
         */
-
-       winbind_status winbind_sid_to_uid(/*TODO*/);
-       winbind_status winbind_sid_to_gid(/*TODO*/);
-       winbind_status winbind_uid_to_sid(/*TODO*/);
-       winbind_status winbind_gid_to_sid(/*TODO*/);
+       typedef [v1_enum] enum {
+               WINBIND_IDMAP_LEVEL_SID_TO_UID          = 1,
+               WINBIND_IDMAP_LEVEL_SID_TO_GID          = 2,
+               WINBIND_IDMAP_LEVEL_UID_TO_SID          = 3,
+               WINBIND_IDMAP_LEVEL_GID_TO_SID          = 4
+       } winbind_get_idmap_level;
+
+       typedef [switch_type(winbind_get_idmap_level)] union {
+       [case(WINBIND_IDMAP_LEVEL_SID_TO_UID)]
+/*TODO         [ref]*/ dom_sid *sid;
+       [case(WINBIND_IDMAP_LEVEL_SID_TO_GID)]
+/*TODO         [ref]*/ dom_sid *sid;
+       [case(WINBIND_IDMAP_LEVEL_UID_TO_SID)]
+               hyper uid;
+       [case(WINBIND_IDMAP_LEVEL_GID_TO_SID)]
+               hyper gid;
+       } winbind_get_idmap_req;
+
+       typedef [switch_type(winbind_get_idmap_level)] union {
+       [case(WINBIND_IDMAP_LEVEL_SID_TO_UID)]
+               hyper uid;
+       [case(WINBIND_IDMAP_LEVEL_SID_TO_GID)]
+               hyper gid;
+       [case(WINBIND_IDMAP_LEVEL_UID_TO_SID)]
+/*TODO         [ref]*/ dom_sid *sid;
+       [case(WINBIND_IDMAP_LEVEL_GID_TO_SID)]
+/*TODO         [ref]*/ dom_sid *sid;
+       } winbind_get_idmap_rep;
+
+       winbind_status winbind_get_idmap(
+               [in,out] winbind_get_idmap_level *level,
+               [in,switch_is(*level)] winbind_get_idmap_req req,
+               [out,switch_is(*level)] winbind_get_idmap_rep *rep
+       );
 
        winbind_status winbind_allocate_uid(/*TODO*/);
        winbind_status winbind_allocate_gid(/*TODO*/);
        winbind_status winbind_set_mapping(/*TODO*/);
        winbind_status winbind_set_hwm(/*TODO*/);
 
-       /*
-        * Miscellaneous other stuff
-        */
-
        /* Check machine account pw works */
        winbind_status winbind_check_machcc(/*TODO*/);
        /* Various bit of info.  Currently just tidbits */
@@ -210,10 +235,6 @@ import "security.idl";
         * Blocking calls that are not allowed on the main winbind pipe, only
         * between parent and children
         */
-       winbind_status winbind_dual_sid2gid(/*TODO*/);
-       winbind_status winbind_dual_sid2uid(/*TODO*/);
-       winbind_status winbind_dual_uid2sid(/*TODO*/);
-       winbind_status winbind_dual_gid2sid(/*TODO*/);
        winbind_status winbind_dual_set_mapping(/*TODO*/);
        winbind_status winbind_dual_set_hwm(/*TODO*/);