summaryrefslogtreecommitdiff
path: root/usr/src/head/rpcsvc
diff options
context:
space:
mode:
authorJordan Brown <Jordan.Brown@Sun.COM>2009-05-07 12:31:08 -0700
committerJordan Brown <Jordan.Brown@Sun.COM>2009-05-07 12:31:08 -0700
commit9b214d32697277d03ed2e5d98c4a7bfef16dcf4d (patch)
tree315ba80f8a638a5b410a6a05f1da4660290babf2 /usr/src/head/rpcsvc
parent60b94cc3efcf739e06affc192a2cda29466e0891 (diff)
downloadillumos-joyent-9b214d32697277d03ed2e5d98c4a7bfef16dcf4d.tar.gz
6835279 multiple races building idmap_prot.h
--HG-- rename : usr/src/head/rpcsvc/idmap_prot.x => usr/src/uts/common/rpcsvc/idmap_prot.x
Diffstat (limited to 'usr/src/head/rpcsvc')
-rw-r--r--usr/src/head/rpcsvc/idmap_prot.x307
1 files changed, 0 insertions, 307 deletions
diff --git a/usr/src/head/rpcsvc/idmap_prot.x b/usr/src/head/rpcsvc/idmap_prot.x
deleted file mode 100644
index 84893f290b..0000000000
--- a/usr/src/head/rpcsvc/idmap_prot.x
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-
-/* opaque type to support non-ASCII strings */
-typedef string idmap_utf8str<>;
-
-/* Return status */
-typedef int idmap_retcode;
-
-/* Identity types */
-enum idmap_id_type {
- IDMAP_NONE = 0,
- IDMAP_UID = 1,
- IDMAP_GID,
- IDMAP_SID,
- IDMAP_USID,
- IDMAP_GSID,
- IDMAP_POSIXID
-};
-
-/* The type of ID mapping */
-enum idmap_map_type {
- IDMAP_MAP_TYPE_UNKNOWN = 0,
- IDMAP_MAP_TYPE_DS_AD,
- IDMAP_MAP_TYPE_DS_NLDAP,
- IDMAP_MAP_TYPE_RULE_BASED,
- IDMAP_MAP_TYPE_EPHEMERAL,
- IDMAP_MAP_TYPE_LOCAL_SID,
- IDMAP_MAP_TYPE_KNOWN_SID
-};
-
-
-/* Source of ID mapping */
-enum idmap_map_src {
- IDMAP_MAP_SRC_UNKNOWN = 0,
- IDMAP_MAP_SRC_NEW,
- IDMAP_MAP_SRC_CACHE,
- IDMAP_MAP_SRC_HARD_CODED,
- IDMAP_MAP_SRC_ALGORITHMIC
-};
-
-
-/* SID */
-struct idmap_sid {
- string prefix<>;
- uint32_t rid;
-};
-
-/* Identity (sid-posix) */
-union idmap_id switch(idmap_id_type idtype) {
- case IDMAP_UID: uint32_t uid;
- case IDMAP_GID: uint32_t gid;
- case IDMAP_SID: idmap_sid sid;
- case IDMAP_USID: idmap_sid usid;
- case IDMAP_GSID: idmap_sid gsid;
- case IDMAP_NONE: void;
- case IDMAP_POSIXID: void;
-};
-
-
-/* Name-based mapping rules */
-struct idmap_namerule {
- bool is_user;
- bool is_wuser;
- int direction;
- idmap_utf8str windomain;
- idmap_utf8str winname;
- idmap_utf8str unixname;
- bool is_nt4;
-};
-struct idmap_namerules_res {
- idmap_retcode retcode;
- uint64_t lastrowid;
- idmap_namerule rules<>;
-};
-
-/* How ID is mapped */
-struct idmap_how_ds_based {
- idmap_utf8str dn;
- idmap_utf8str attr;
- idmap_utf8str value;
-};
-
-union idmap_how switch(idmap_map_type map_type) {
- case IDMAP_MAP_TYPE_UNKNOWN: void;
- case IDMAP_MAP_TYPE_DS_AD: idmap_how_ds_based ad;
- case IDMAP_MAP_TYPE_DS_NLDAP: idmap_how_ds_based nldap;
- case IDMAP_MAP_TYPE_RULE_BASED: idmap_namerule rule;
- case IDMAP_MAP_TYPE_EPHEMERAL: void;
- case IDMAP_MAP_TYPE_LOCAL_SID: void;
- case IDMAP_MAP_TYPE_KNOWN_SID: void;
-};
-
-struct idmap_info {
- idmap_map_src src;
- idmap_how how;
-};
-
-
-/* Id result */
-struct idmap_id_res {
- idmap_retcode retcode;
- idmap_id id;
- int direction;
- idmap_info info;
-};
-struct idmap_ids_res {
- idmap_retcode retcode;
- idmap_id_res ids<>;
-};
-
-
-/*
- * Flag supported by mapping requests
- */
-
-/* Don't allocate a new value for the mapping */
-const IDMAP_REQ_FLG_NO_NEW_ID_ALLOC = 0x00000001;
-
-/* Validate the given identity before mapping */
-const IDMAP_REQ_FLG_VALIDATE = 0x00000002;
-
-/* Avoid name service lookups to prevent looping */
-const IDMAP_REQ_FLG_NO_NAMESERVICE = 0x00000004;
-
-/* Request how a mapping was formed */
-const IDMAP_REQ_FLG_MAPPING_INFO = 0x00000008;
-
-/*
- * This libidmap only flag is defined in idmap.h
- * It enables use of the libidmap cache
- * const IDMAP_REQ_FLG_USE_CACHE = 0x00000010;
- */
-
-/* Request mapping for well-known or local SIDs only */
-const IDMAP_REQ_FLG_WK_OR_LOCAL_SIDS_ONLY = 0x00000020;
-
-
-/*
- * Mapping direction definitions
- */
-const IDMAP_DIRECTION_UNDEF = -1; /* not defined */
-const IDMAP_DIRECTION_BI = 0; /* bi-directional */
-const IDMAP_DIRECTION_W2U = 1; /* windows to unix only */
-const IDMAP_DIRECTION_U2W = 2; /* unix to windows only */
-
-
-/* Identity mappings (sid-posix) */
-struct idmap_mapping {
- int32_t flag;
- int direction;
- idmap_id id1;
- idmap_utf8str id1domain;
- idmap_utf8str id1name;
- idmap_id id2;
- idmap_utf8str id2domain;
- idmap_utf8str id2name;
- idmap_info info;
-};
-
-typedef idmap_mapping idmap_mapping_batch<>;
-
-struct idmap_mappings_res {
- idmap_retcode retcode;
- uint64_t lastrowid;
- idmap_mapping mappings<>;
-};
-
-
-/* Update result */
-struct idmap_update_res {
- idmap_retcode retcode;
- int64_t error_index;
- idmap_namerule error_rule;
- idmap_namerule conflict_rule;
-};
-
-/* Update requests */
-enum idmap_opnum {
- OP_NONE = 0,
- OP_ADD_NAMERULE = 1,
- OP_RM_NAMERULE = 2,
- OP_FLUSH_NAMERULES = 3
-};
-union idmap_update_op switch(idmap_opnum opnum) {
- case OP_ADD_NAMERULE:
- case OP_RM_NAMERULE:
- idmap_namerule rule;
- default:
- void;
-};
-typedef idmap_update_op idmap_update_batch<>;
-
-const AD_DISC_MAXHOSTNAME = 256;
-
-#ifndef _KERNEL
-struct idmap_ad_disc_ds_t {
- int port;
- int priority;
- int weight;
- char host[AD_DISC_MAXHOSTNAME];
-};
-
-
-/* get-prop, set-prop */
-enum idmap_prop_type {
- PROP_UNKNOWN = 0,
- PROP_LIST_SIZE_LIMIT = 1,
- PROP_DEFAULT_DOMAIN = 2, /* default domain name */
- PROP_DOMAIN_NAME = 3, /* AD domain name */
- PROP_MACHINE_SID = 4, /* machine sid */
- PROP_DOMAIN_CONTROLLER = 5, /* domain controller hosts */
- PROP_FOREST_NAME = 6, /* forest name */
- PROP_SITE_NAME = 7, /* site name */
- PROP_GLOBAL_CATALOG = 8, /* global catalog hosts */
- PROP_AD_UNIXUSER_ATTR = 9,
- PROP_AD_UNIXGROUP_ATTR = 10,
- PROP_NLDAP_WINNAME_ATTR = 11,
- PROP_DS_NAME_MAPPING_ENABLED = 12
-};
-
-union idmap_prop_val switch(idmap_prop_type prop) {
- case PROP_LIST_SIZE_LIMIT:
- uint64_t intval;
- case PROP_DEFAULT_DOMAIN:
- case PROP_DOMAIN_NAME:
- case PROP_MACHINE_SID:
- case PROP_FOREST_NAME:
- case PROP_SITE_NAME:
- case PROP_AD_UNIXUSER_ATTR:
- case PROP_AD_UNIXGROUP_ATTR:
- case PROP_NLDAP_WINNAME_ATTR:
- idmap_utf8str utf8val;
- case PROP_DS_NAME_MAPPING_ENABLED:
- bool boolval;
- case PROP_DOMAIN_CONTROLLER:
- case PROP_GLOBAL_CATALOG:
- idmap_ad_disc_ds_t dsval;
- default:
- void;
-};
-
-struct idmap_prop_res {
- idmap_retcode retcode;
- idmap_prop_val value;
- bool auto_discovered;
-};
-#endif
-
-program IDMAP_PROG {
- version IDMAP_V1 {
- void
- IDMAP_NULL(void) = 0;
-
- /* Batch of requests to get mapped identities */
- idmap_ids_res
- IDMAP_GET_MAPPED_IDS(idmap_mapping_batch batch) = 1;
-
- /* List all identity mappings */
- idmap_mappings_res
- IDMAP_LIST_MAPPINGS(int64_t lastrowid,
- uint64_t limit, int32_t flag) = 2;
-
- /* List all name-based mapping rules */
- idmap_namerules_res
- IDMAP_LIST_NAMERULES(idmap_namerule rule,
- uint64_t lastrowid, uint64_t limit) = 3;
-
- /* Batch of update requests */
- idmap_update_res
- IDMAP_UPDATE(idmap_update_batch batch) = 4;
-
- /* Get mapped identity by name */
- idmap_mappings_res
- IDMAP_GET_MAPPED_ID_BY_NAME(idmap_mapping request) = 5;
-
-#ifndef _KERNEL
- /* Get configuration property */
- idmap_prop_res
- IDMAP_GET_PROP(idmap_prop_type) = 6;
-#endif
-
- } = 1;
-} = 100172;