/* * Please do not edit this file. * It was generated using rpcgen. */ #include "../../../uts/common/rpcsvc/idmap_prot.h" #ifndef _KERNEL #include #endif /* !_KERNEL */ #if defined(_KERNEL) #include #else #include #endif #if !defined(_KERNEL) #include #include #endif bool_t xdr_nvlist_t_ptr(XDR *xdrs, nvlist_t_ptr *n) { char *buf; u_int len; bool_t ret; int err; size_t sz; bool_t present; switch (xdrs->x_op) { case XDR_DECODE: if (!xdr_bool(xdrs, &present)) return (FALSE); if (!present) { *n = NULL; return (TRUE); } buf = NULL; if (!xdr_bytes(xdrs, &buf, &len, ~0)) return (FALSE); err = nvlist_unpack(buf, (size_t)len, n, 0); #if defined(_KERNEL) kmem_free(buf, len); #else free(buf); #endif if (err != 0) { #if !defined(_KERNEL) fprintf(stderr, "xdr_nvlist_t unpack: %s\n", strerror(err)); #endif return (FALSE); } return (TRUE); case XDR_ENCODE: present = (*n != NULL); if (!xdr_bool(xdrs, &present)) return (FALSE); if (!present) return (TRUE); buf = NULL; err = nvlist_pack(*n, &buf, &sz, NV_ENCODE_XDR, 0); if (err != 0) { #if !defined(_KERNEL) fprintf(stderr, "xdr_nvlist_t pack: %s\n", strerror(err)); #endif return (FALSE); } /* nvlist_pack() and xdr_bytes() want different types */ len = (u_int) sz; ret = xdr_bytes(xdrs, &buf, &len, ~0); #if defined(_KERNEL) kmem_free(buf, len); #else free(buf); #endif return (ret); case XDR_FREE: if (*n != NULL) { nvlist_free(*n); *n = NULL; } return (TRUE); default: return (FALSE); } } bool_t xdr_idmap_utf8str(XDR *xdrs, idmap_utf8str *objp) { rpc_inline_t *buf; if (!xdr_string(xdrs, objp, ~0)) return (FALSE); return (TRUE); } bool_t xdr_idmap_utf8str_list(XDR *xdrs, idmap_utf8str_list *objp) { rpc_inline_t *buf; if (!xdr_array(xdrs, (char **)&objp->idmap_utf8str_list_val, (u_int *) &objp->idmap_utf8str_list_len, ~0, sizeof (idmap_utf8str), (xdrproc_t)xdr_idmap_utf8str)) return (FALSE); return (TRUE); } bool_t xdr_idmap_retcode(XDR *xdrs, idmap_retcode *objp) { rpc_inline_t *buf; if (!xdr_int(xdrs, objp)) return (FALSE); return (TRUE); } bool_t xdr_idmap_id_type(XDR *xdrs, idmap_id_type *objp) { rpc_inline_t *buf; if (!xdr_enum(xdrs, (enum_t *)objp)) return (FALSE); return (TRUE); } bool_t xdr_idmap_map_type(XDR *xdrs, idmap_map_type *objp) { rpc_inline_t *buf; if (!xdr_enum(xdrs, (enum_t *)objp)) return (FALSE); return (TRUE); } bool_t xdr_idmap_map_src(XDR *xdrs, idmap_map_src *objp) { rpc_inline_t *buf; if (!xdr_enum(xdrs, (enum_t *)objp)) return (FALSE); return (TRUE); } bool_t xdr_idmap_sid(XDR *xdrs, idmap_sid *objp) { rpc_inline_t *buf; if (!xdr_string(xdrs, &objp->prefix, ~0)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->rid)) return (FALSE); return (TRUE); } bool_t xdr_idmap_id(XDR *xdrs, idmap_id *objp) { rpc_inline_t *buf; if (!xdr_idmap_id_type(xdrs, &objp->idtype)) return (FALSE); switch (objp->idtype) { case IDMAP_UID: if (!xdr_uint32_t(xdrs, &objp->idmap_id_u.uid)) return (FALSE); break; case IDMAP_GID: if (!xdr_uint32_t(xdrs, &objp->idmap_id_u.gid)) return (FALSE); break; case IDMAP_SID: if (!xdr_idmap_sid(xdrs, &objp->idmap_id_u.sid)) return (FALSE); break; case IDMAP_USID: if (!xdr_idmap_sid(xdrs, &objp->idmap_id_u.usid)) return (FALSE); break; case IDMAP_GSID: if (!xdr_idmap_sid(xdrs, &objp->idmap_id_u.gsid)) return (FALSE); break; case IDMAP_NONE: break; case IDMAP_POSIXID: break; default: return (FALSE); } return (TRUE); } bool_t xdr_idmap_namerule(XDR *xdrs, idmap_namerule *objp) { rpc_inline_t *buf; if (!xdr_bool(xdrs, &objp->is_user)) return (FALSE); if (!xdr_bool(xdrs, &objp->is_wuser)) return (FALSE); if (!xdr_int(xdrs, &objp->direction)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->windomain)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->winname)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->unixname)) return (FALSE); if (!xdr_bool(xdrs, &objp->is_nt4)) return (FALSE); return (TRUE); } bool_t xdr_idmap_namerules_res(XDR *xdrs, idmap_namerules_res *objp) { rpc_inline_t *buf; if (!xdr_idmap_retcode(xdrs, &objp->retcode)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->lastrowid)) return (FALSE); if (!xdr_array(xdrs, (char **)&objp->rules.rules_val, (u_int *) &objp->rules.rules_len, ~0, sizeof (idmap_namerule), (xdrproc_t)xdr_idmap_namerule)) return (FALSE); return (TRUE); } bool_t xdr_idmap_how_ds_based(XDR *xdrs, idmap_how_ds_based *objp) { rpc_inline_t *buf; if (!xdr_idmap_utf8str(xdrs, &objp->dn)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->attr)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->value)) return (FALSE); return (TRUE); } bool_t xdr_idmap_how(XDR *xdrs, idmap_how *objp) { rpc_inline_t *buf; if (!xdr_idmap_map_type(xdrs, &objp->map_type)) return (FALSE); switch (objp->map_type) { case IDMAP_MAP_TYPE_UNKNOWN: break; case IDMAP_MAP_TYPE_DS_AD: if (!xdr_idmap_how_ds_based(xdrs, &objp->idmap_how_u.ad)) return (FALSE); break; case IDMAP_MAP_TYPE_DS_NLDAP: if (!xdr_idmap_how_ds_based(xdrs, &objp->idmap_how_u.nldap)) return (FALSE); break; case IDMAP_MAP_TYPE_RULE_BASED: if (!xdr_idmap_namerule(xdrs, &objp->idmap_how_u.rule)) return (FALSE); break; case IDMAP_MAP_TYPE_EPHEMERAL: break; case IDMAP_MAP_TYPE_LOCAL_SID: break; case IDMAP_MAP_TYPE_KNOWN_SID: break; case IDMAP_MAP_TYPE_IDMU: if (!xdr_idmap_how_ds_based(xdrs, &objp->idmap_how_u.idmu)) return (FALSE); break; default: return (FALSE); } return (TRUE); } bool_t xdr_idmap_info(XDR *xdrs, idmap_info *objp) { rpc_inline_t *buf; if (!xdr_idmap_map_src(xdrs, &objp->src)) return (FALSE); if (!xdr_idmap_how(xdrs, &objp->how)) return (FALSE); if (!xdr_nvlist_t_ptr(xdrs, &objp->trace)) return (FALSE); return (TRUE); } bool_t xdr_idmap_id_res(XDR *xdrs, idmap_id_res *objp) { rpc_inline_t *buf; if (!xdr_idmap_retcode(xdrs, &objp->retcode)) return (FALSE); if (!xdr_idmap_id(xdrs, &objp->id)) return (FALSE); if (!xdr_int(xdrs, &objp->direction)) return (FALSE); if (!xdr_idmap_info(xdrs, &objp->info)) return (FALSE); return (TRUE); } bool_t xdr_idmap_ids_res(XDR *xdrs, idmap_ids_res *objp) { rpc_inline_t *buf; if (!xdr_idmap_retcode(xdrs, &objp->retcode)) return (FALSE); if (!xdr_array(xdrs, (char **)&objp->ids.ids_val, (u_int *) &objp->ids.ids_len, ~0, sizeof (idmap_id_res), (xdrproc_t)xdr_idmap_id_res)) return (FALSE); return (TRUE); } bool_t xdr_idmap_mapping(XDR *xdrs, idmap_mapping *objp) { rpc_inline_t *buf; if (!xdr_int32_t(xdrs, &objp->flag)) return (FALSE); if (!xdr_int(xdrs, &objp->direction)) return (FALSE); if (!xdr_idmap_id(xdrs, &objp->id1)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->id1domain)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->id1name)) return (FALSE); if (!xdr_idmap_id(xdrs, &objp->id2)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->id2domain)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->id2name)) return (FALSE); if (!xdr_idmap_info(xdrs, &objp->info)) return (FALSE); return (TRUE); } bool_t xdr_idmap_mapping_batch(XDR *xdrs, idmap_mapping_batch *objp) { rpc_inline_t *buf; if (!xdr_array(xdrs, (char **)&objp->idmap_mapping_batch_val, (u_int *) &objp->idmap_mapping_batch_len, ~0, sizeof (idmap_mapping), (xdrproc_t)xdr_idmap_mapping)) return (FALSE); return (TRUE); } bool_t xdr_idmap_mappings_res(XDR *xdrs, idmap_mappings_res *objp) { rpc_inline_t *buf; if (!xdr_idmap_retcode(xdrs, &objp->retcode)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->lastrowid)) return (FALSE); if (!xdr_array(xdrs, (char **)&objp->mappings.mappings_val, (u_int *) &objp->mappings.mappings_len, ~0, sizeof (idmap_mapping), (xdrproc_t)xdr_idmap_mapping)) return (FALSE); return (TRUE); } bool_t xdr_idmap_update_res(XDR *xdrs, idmap_update_res *objp) { rpc_inline_t *buf; if (!xdr_idmap_retcode(xdrs, &objp->retcode)) return (FALSE); if (!xdr_int64_t(xdrs, &objp->error_index)) return (FALSE); if (!xdr_idmap_namerule(xdrs, &objp->error_rule)) return (FALSE); if (!xdr_idmap_namerule(xdrs, &objp->conflict_rule)) return (FALSE); return (TRUE); } bool_t xdr_idmap_opnum(XDR *xdrs, idmap_opnum *objp) { rpc_inline_t *buf; if (!xdr_enum(xdrs, (enum_t *)objp)) return (FALSE); return (TRUE); } bool_t xdr_idmap_update_op(XDR *xdrs, idmap_update_op *objp) { rpc_inline_t *buf; if (!xdr_idmap_opnum(xdrs, &objp->opnum)) return (FALSE); switch (objp->opnum) { case OP_ADD_NAMERULE: case OP_RM_NAMERULE: if (!xdr_idmap_namerule(xdrs, &objp->idmap_update_op_u.rule)) return (FALSE); break; } return (TRUE); } bool_t xdr_idmap_update_batch(XDR *xdrs, idmap_update_batch *objp) { rpc_inline_t *buf; if (!xdr_array(xdrs, (char **)&objp->idmap_update_batch_val, (u_int *) &objp->idmap_update_batch_len, ~0, sizeof (idmap_update_op), (xdrproc_t)xdr_idmap_update_op)) return (FALSE); return (TRUE); } bool_t xdr_idmap_ad_disc_ds_t(XDR *xdrs, idmap_ad_disc_ds_t *objp) { rpc_inline_t *buf; if (!xdr_int(xdrs, &objp->port)) return (FALSE); if (!xdr_int(xdrs, &objp->priority)) return (FALSE); if (!xdr_int(xdrs, &objp->weight)) return (FALSE); if (!xdr_vector(xdrs, (char *)objp->host, AD_DISC_MAXHOSTNAME, sizeof (char), (xdrproc_t)xdr_char)) return (FALSE); return (TRUE); } bool_t xdr_idmap_prop_type(XDR *xdrs, idmap_prop_type *objp) { rpc_inline_t *buf; if (!xdr_enum(xdrs, (enum_t *)objp)) return (FALSE); return (TRUE); } bool_t xdr_idmap_prop_val(XDR *xdrs, idmap_prop_val *objp) { rpc_inline_t *buf; if (!xdr_idmap_prop_type(xdrs, &objp->prop)) return (FALSE); switch (objp->prop) { case PROP_LIST_SIZE_LIMIT: if (!xdr_uint64_t(xdrs, &objp->idmap_prop_val_u.intval)) return (FALSE); break; 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: case PROP_DIRECTORY_BASED_MAPPING: if (!xdr_idmap_utf8str(xdrs, &objp->idmap_prop_val_u.utf8val)) return (FALSE); break; case PROP_DOMAIN_CONTROLLER: case PROP_GLOBAL_CATALOG: if (!xdr_idmap_ad_disc_ds_t(xdrs, &objp->idmap_prop_val_u.dsval)) return (FALSE); break; } return (TRUE); } bool_t xdr_idmap_prop_res(XDR *xdrs, idmap_prop_res *objp) { rpc_inline_t *buf; if (!xdr_idmap_retcode(xdrs, &objp->retcode)) return (FALSE); if (!xdr_idmap_prop_val(xdrs, &objp->value)) return (FALSE); if (!xdr_bool(xdrs, &objp->auto_discovered)) return (FALSE); return (TRUE); } bool_t xdr_idmap_flush_op(XDR *xdrs, idmap_flush_op *objp) { rpc_inline_t *buf; if (!xdr_enum(xdrs, (enum_t *)objp)) return (FALSE); return (TRUE); } bool_t xdr_directory_error_rpc(XDR *xdrs, directory_error_rpc *objp) { rpc_inline_t *buf; if (!xdr_idmap_utf8str(xdrs, &objp->code)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->fmt)) return (FALSE); if (!xdr_array(xdrs, (char **)&objp->params.params_val, (u_int *) &objp->params.params_len, ~0, sizeof (idmap_utf8str), (xdrproc_t)xdr_idmap_utf8str)) return (FALSE); return (TRUE); } bool_t xdr_directory_value_rpc(XDR *xdrs, directory_value_rpc *objp) { rpc_inline_t *buf; if (!xdr_bytes(xdrs, (char **)&objp->directory_value_rpc_val, (u_int *) &objp->directory_value_rpc_len, ~0)) return (FALSE); return (TRUE); } bool_t xdr_directory_values_rpc(XDR *xdrs, directory_values_rpc *objp) { rpc_inline_t *buf; if (!xdr_bool(xdrs, &objp->found)) return (FALSE); switch (objp->found) { case TRUE: if (!xdr_array(xdrs, (char **)&objp->directory_values_rpc_u.values.values_val, (u_int *) &objp->directory_values_rpc_u.values.values_len, ~0, sizeof (directory_value_rpc), (xdrproc_t)xdr_directory_value_rpc)) return (FALSE); break; case FALSE: break; default: return (FALSE); } return (TRUE); } bool_t xdr_directory_lookup_status_rpc(XDR *xdrs, directory_lookup_status_rpc *objp) { rpc_inline_t *buf; if (!xdr_enum(xdrs, (enum_t *)objp)) return (FALSE); return (TRUE); } bool_t xdr_directory_entry_rpc(XDR *xdrs, directory_entry_rpc *objp) { rpc_inline_t *buf; if (!xdr_directory_lookup_status_rpc(xdrs, &objp->status)) return (FALSE); switch (objp->status) { case DIRECTORY_NOT_FOUND: break; case DIRECTORY_FOUND: if (!xdr_array(xdrs, (char **)&objp->directory_entry_rpc_u.attrs.attrs_val, (u_int *) &objp->directory_entry_rpc_u.attrs.attrs_len, ~0, sizeof (directory_values_rpc), (xdrproc_t)xdr_directory_values_rpc)) return (FALSE); break; case DIRECTORY_ERROR: if (!xdr_directory_error_rpc(xdrs, &objp->directory_entry_rpc_u.err)) return (FALSE); break; default: return (FALSE); } return (TRUE); } bool_t xdr_directory_results_rpc(XDR *xdrs, directory_results_rpc *objp) { rpc_inline_t *buf; if (!xdr_bool(xdrs, &objp->failed)) return (FALSE); switch (objp->failed) { case TRUE: if (!xdr_directory_error_rpc(xdrs, &objp->directory_results_rpc_u.err)) return (FALSE); break; case FALSE: if (!xdr_array(xdrs, (char **)&objp->directory_results_rpc_u.entries.entries_val, (u_int *) &objp->directory_results_rpc_u.entries.entries_len, ~0, sizeof (directory_entry_rpc), (xdrproc_t)xdr_directory_entry_rpc)) return (FALSE); break; default: return (FALSE); } return (TRUE); } bool_t xdr_idmap_list_mappings_1_argument(XDR *xdrs, idmap_list_mappings_1_argument *objp) { if (!xdr_int64_t(xdrs, &objp->lastrowid)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->limit)) return (FALSE); if (!xdr_int32_t(xdrs, &objp->flag)) return (FALSE); return (TRUE); } bool_t xdr_idmap_list_namerules_1_argument(XDR *xdrs, idmap_list_namerules_1_argument *objp) { if (!xdr_idmap_namerule(xdrs, &objp->rule)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->lastrowid)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->limit)) return (FALSE); return (TRUE); } bool_t xdr_directory_get_common_1_argument(XDR *xdrs, directory_get_common_1_argument *objp) { if (!xdr_idmap_utf8str_list(xdrs, &objp->ids)) return (FALSE); if (!xdr_idmap_utf8str(xdrs, &objp->types)) return (FALSE); if (!xdr_idmap_utf8str_list(xdrs, &objp->attrs)) return (FALSE); return (TRUE); }