diff options
Diffstat (limited to 'librpc/idl/idmap.idl')
-rw-r--r-- | librpc/idl/idmap.idl | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/librpc/idl/idmap.idl b/librpc/idl/idmap.idl new file mode 100644 index 0000000..e58e392 --- /dev/null +++ b/librpc/idl/idmap.idl @@ -0,0 +1,53 @@ +#include "idl_types.h" + +import "security.idl"; + +[ + pointer_default(unique) +] +interface idmap +{ + typedef [public] enum { + ID_TYPE_NOT_SPECIFIED, + ID_TYPE_UID, + ID_TYPE_GID, + ID_TYPE_BOTH, + /* + * This are internal between winbindd + * parent and child. + * + * It means the idmap backend/child requires a valid type_hint + * for wbint_Sids2UnixIDs(): + * + * - ID_TYPE_UID or ID_TYPE_GID means the user/group exists + * - ID_TYPE_BOTH means that only the domain exist + */ + ID_TYPE_WB_REQUIRE_TYPE + } id_type; + + typedef [public] struct { + uint32 id; + id_type type; + } unixid; + + typedef [public] enum { + ID_UNKNOWN, + ID_MAPPED, + ID_UNMAPPED, + ID_EXPIRED, + /* + * This means the idmap backend requires a valid type_hint + * in order to map a sid to a unix id. + * + * - ID_TYPE_UID or ID_TYPE_GID means the user/group exists + * - ID_TYPE_BOTH means that only the domain exist + */ + ID_REQUIRE_TYPE + } id_mapping; + + typedef [public] struct { + dom_sid *sid; + unixid xid; + id_mapping status; + } id_map; +} |