Print this page
NEX-19665 Several door servers don't properly handle exiting threads
Review by: Gordon Ross <gordon.ross@nexenta.com>
Review by: Evan Layton <evan.layton@nexenta.com>
NEX-2302 Need a way to control the idmap rediscovery interval
NEX-1638 Updated DC Locator
Includes work by: matt.barden@nexenta.com, kevin.crowe@nexenta.com
SMB-56 extended security NTLMSSP, inbound
re #13190 rb4312 idmapd error -9961 (No AD servers)
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/cmd/idmap/idmapd/idmap_config.h
+++ new/usr/src/cmd/idmap/idmapd/idmap_config.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
|
↓ open down ↓ |
12 lines elided |
↑ open up ↑ |
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21 /*
22 22 * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
23 - * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
23 + * Copyright 2018 Nexenta Systems, Inc. All rights reserved.
24 24 */
25 25
26 26 #ifndef _IDMAP_CONFIG_H
27 27 #define _IDMAP_CONFIG_H
28 28
29 29
30 30 #include "idmap.h"
31 31 #include "addisc.h"
32 32 #include <libscf.h>
33 33 #include <synch.h>
34 34 #include <sys/uuid.h>
35 35
36 36 #ifdef __cplusplus
37 37 extern "C" {
38 38 #endif
39 39
40 40 #define MAX_POLICY_SIZE 1023
41 41
42 42 #define DIRECTORY_MAPPING_NONE 0
43 43 #define DIRECTORY_MAPPING_NAME 1
44 44 #define DIRECTORY_MAPPING_IDMU 2
45 45
46 46 struct enum_lookup_map {
47 47 int value;
48 48 char *string;
49 49 };
50 50
51 51 extern struct enum_lookup_map directory_mapping_map[];
52 52 extern const char *enum_lookup(int value, struct enum_lookup_map *map);
53 53
54 54 /* SMF and auto-discovery context handles */
55 55 typedef struct idmap_cfg_handles {
56 56 pthread_mutex_t mutex;
57 57 scf_handle_t *main;
58 58 scf_instance_t *instance;
59 59 scf_service_t *service;
60 60 scf_propertygroup_t *config_pg;
61 61 scf_propertygroup_t *debug_pg;
62 62 ad_disc_t ad_ctx;
63 63 } idmap_cfg_handles_t;
64 64
65 65 /*
66 66 * This structure stores AD and AD-related configuration
67 67 */
|
↓ open down ↓ |
34 lines elided |
↑ open up ↑ |
68 68 typedef struct idmap_trustedforest {
69 69 char *forest_name;
70 70 ad_disc_ds_t *global_catalog; /* global catalog hosts */
71 71 ad_disc_domainsinforest_t
72 72 *domains_in_forest;
73 73 } idmap_trustedforest_t;
74 74
75 75
76 76 typedef struct idmap_pg_config {
77 77 uint64_t list_size_limit;
78 + uint64_t max_threads;
78 79 uint64_t id_cache_timeout;
79 80 uint64_t name_cache_timeout;
80 81 uint64_t rediscovery_interval;
81 82 char *machine_uuid; /* machine uuid */
82 83 char *machine_sid; /* machine sid */
83 84 char *default_domain; /* default domain name */
84 85 char *domain_name; /* AD domain name */
85 86 boolean_t domain_name_auto_disc;
86 87 char *domain_guid; /* GUID (string) */
87 88 boolean_t domain_guid_auto_disc;
88 89 ad_disc_ds_t *domain_controller; /* domain controller hosts */
89 90 boolean_t domain_controller_auto_disc;
90 91 char *forest_name; /* forest name */
91 92 boolean_t forest_name_auto_disc;
92 93 char *site_name; /* site name */
93 94 boolean_t site_name_auto_disc;
94 95 ad_disc_ds_t *global_catalog; /* global catalog hosts */
95 96 boolean_t global_catalog_auto_disc;
96 97 ad_disc_domainsinforest_t
97 98 *domains_in_forest;
98 99 ad_disc_trusteddomains_t
99 100 *trusted_domains; /* Trusted Domains */
100 101 int num_trusted_forests;
101 102 idmap_trustedforest_t
102 103 *trusted_forests; /* Array of trusted forests */
103 104
104 105 ad_disc_ds_t *preferred_dc;
105 106 boolean_t preferred_dc_auto_disc;
106 107
107 108 /*
108 109 * Following properties are associated with directory-based
109 110 * name-mappings.
110 111 */
111 112 char *ad_unixuser_attr;
112 113 char *ad_unixgroup_attr;
113 114 char *nldap_winname_attr;
114 115 int directory_based_mapping; /* enum */
115 116 boolean_t eph_map_unres_sids;
116 117 boolean_t use_ads;
117 118 boolean_t use_lsa;
118 119 boolean_t disable_cross_forest_trusts;
119 120 } idmap_pg_config_t;
120 121
121 122 typedef struct idmap_cfg {
122 123 idmap_pg_config_t pgcfg; /* live AD/ID mapping config */
123 124 idmap_cfg_handles_t handles;
124 125 int initialized;
125 126 } idmap_cfg_t;
126 127
127 128
128 129 extern void idmap_cfg_unload(idmap_pg_config_t *);
129 130 extern int idmap_cfg_load(idmap_cfg_t *, int);
130 131 extern idmap_cfg_t *idmap_cfg_init(void);
131 132 extern int idmap_cfg_fini(idmap_cfg_t *);
132 133 extern int idmap_cfg_upgrade(idmap_cfg_t *);
133 134 extern int idmap_cfg_start_updates(void);
134 135 extern void idmap_cfg_poke_updates(void);
135 136 extern void idmap_cfg_force_rediscovery(void);
136 137 extern void idmap_cfg_hup_handler(int);
137 138
138 139 #define CFG_DISCOVER 0x1 /* Run discovery */
139 140 #define CFG_FORGET_DC 0x2 /* Forget current DC. */
140 141 #define CFG_LOG 0x4
141 142
142 143 #ifdef __cplusplus
143 144 }
144 145 #endif
145 146
146 147 #endif /* _IDMAP_CONFIG_H */
|
↓ open down ↓ |
59 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX