4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
25 #ifndef _NSCD_CFGDEF_H
26 #define _NSCD_CFGDEF_H
34 #include <nss_dbdefs.h>
35 #include "nscd_config.h"
40 * structure used for preliminary checking of an integer
46 } nscd_cfg_int_check_t
;
49 * structure used for preliminary checking of a bitmap
53 nscd_cfg_bitmap_t valid_bits
;
54 } nscd_cfg_bitmap_check_t
;
57 * structure used for preliminary checking of a string
61 nscd_bool_t must_not_null
;
63 } nscd_cfg_str_check_t
;
66 * Per nsswitch database config data
69 nscd_cfg_frontend_t fe
;
71 nscd_cfg_cache_t cache
;
72 } nscd_cfg_nsw_db_data_t
;
75 * Per nsswitch database statistics data
78 nscd_cfg_stat_switch_t sw
;
79 nscd_cfg_stat_cache_t cache
;
80 } nscd_cfg_stat_nsw_db_data_t
;
83 * global statistics data
86 nscd_cfg_stat_global_log_t log
;
87 nscd_cfg_stat_global_switch_t sw
;
88 nscd_cfg_stat_cache_t cache
;
89 } nscd_cfg_stat_global_data_t
;
95 nscd_cfg_global_log_t log
;
96 nscd_cfg_global_frontend_t fe
;
97 nscd_cfg_global_selfcred_t sc
;
98 nscd_cfg_global_switch_t sw
;
99 nscd_cfg_global_cache_t cache
;
100 } nscd_cfg_global_data_t
;
103 * structure for handling the switch database specific group
104 * or parameter default
106 typedef struct nscd_cfg_nsw_spc_default
{
110 void *data
; /* pointer or link to data */
112 } nscd_cfg_nsw_spc_default_t
;
115 * name service switch source (repository) table
117 nscd_cfg_id_t _nscd_cfg_nsw_src
[] = {
130 * name service related smf service table
131 * (the order of the services should match the order of the source
132 * listed above, 0: files, 1: ldap, 2: nis, 3: mdns.
135 nscd_cfg_id_t _nscd_cfg_smf_services
[] = {
136 { 0, "svc:/system/name-service-cache:default"},
137 { 1, "svc:/network/ldap/client:default" },
138 { 2, "svc:/network/nis/client:default" },
139 { 3, "svc:/network/dns/multicast:default" },
144 * default version for supported sources/backends
146 void *_nscd_be_version
= NULL
;
149 * name service database table
151 nscd_cfg_id_t _nscd_cfg_nsw_db
[] = {
152 { 0, NSS_DBNAM_PASSWD
},
153 { 1, NSS_DBNAM_GROUP
},
154 { 2, NSS_DBNAM_HOSTS
},
155 { 3, NSS_DBNAM_IPNODES
},
156 { 4, NSS_DBNAM_EXECATTR
},
157 { 5, NSS_DBNAM_PROFATTR
},
158 { 6, NSS_DBNAM_USERATTR
},
159 { 7, NSS_DBNAM_NETWORKS
},
160 { 8, NSS_DBNAM_PROTOCOLS
},
161 { 9, NSS_DBNAM_RPC
},
162 { 10, NSS_DBNAM_ETHERS
},
163 { 11, NSS_DBNAM_NETMASKS
},
164 { 12, NSS_DBNAM_BOOTPARAMS
},
165 { 13, NSS_DBNAM_PUBLICKEY
},
166 { 14, NSS_DBNAM_NETGROUP
},
167 { 15, NSS_DBNAM_SERVICES
},
168 { 16, NSS_DBNAM_PRINTERS
},
169 { 17, NSS_DBNAM_AUTHATTR
},
170 { 18, NSS_DBNAM_PROJECT
},
171 { 19, NSS_DBNAM_SHADOW
},
172 { 20, NSS_DBNAM_AUDITUSER
},
173 /* pseudo-databases for the compat backend */
174 { 23, NSS_DBNAM_PASSWD_COMPAT
},
175 { 24, NSS_DBNAM_GROUP_COMPAT
},
176 #define NSS_DBNAM_COMPAT_NUM_DB 5
178 * pseudo-databases that use the switch policy that is
179 * configured for NSS_DBNAM_PASSWD_COMPAT
181 { 25, NSS_DBNAM_PASSWD
},
182 { 26, NSS_DBNAM_SHADOW
},
183 { 27, NSS_DBNAM_AUDITUSER
},
184 { 28, NSS_DBNAM_USERATTR
},
186 * pseudo-database that uses the switch policy that is
187 * configured for NSS_DBNAM_GROUP_COMPAT
189 { 29, NSS_DBNAM_GROUP
},
194 * A special way to indicate all switch databases
196 static nscd_cfg_id_t _nscd_cfg_nsw_alldb
= {
197 NSCD_CFG_NSW_ALLDB_INDEX
,
202 * data for preliminary checking of the log configuration
204 static nscd_cfg_str_check_t NSCD_CFG_LOGFILE_PCHECK
=
205 {nscd_false
, PATH_MAX
};
206 static nscd_cfg_bitmap_check_t NSCD_CFG_LOGCOMP_PCHECK
=
208 static nscd_cfg_bitmap_check_t NSCD_CFG_LOGLEVEL_PCHECK
=
209 {NSCD_LOG_LEVEL_ALL
};
211 /* data for preliminary checking of the switch configuration */
212 static nscd_cfg_str_check_t NSCD_CFG_NSWCFGSTR_PCHECK
=
216 * macros for defining the static param table
218 #define NSCD_CFG_PGROUP_DESC(pn, type, pflag, gf, g_in_t, pcheck_p,\
219 nfunc_name, vfunc_name) \
221 {-1, pn}, type, (NSCD_CFG_PFLAG_GROUP | pflag), \
223 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
224 pcheck_p, nfunc_name, vfunc_name \
227 #define NSCD_CFG_PARAM_DESC(pn, type, pflag, pf, p_in_t, \
228 gf, g_in_t, pcheck_p, nfunc_name, vfunc_name) \
230 {-1, pn}, type, pflag, \
231 NSCD_SIZEOF(p_in_t, pf), offsetof(p_in_t, pf), -1, \
232 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
233 pcheck_p, nfunc_name, vfunc_name \
236 #define NSCD_CFG_PGROUP_DESC_NULL \
238 {-1, NULL}, -1, NSCD_CFG_PFLAG_GROUP, \
244 /* nscd internal cfg_*_notify() cfg_*_verify() and cfg_*_get_stat() */
245 extern nscd_rc_t
_nscd_cfg_log_notify();
246 extern nscd_rc_t
_nscd_cfg_log_verify();
247 extern nscd_rc_t
_nscd_cfg_frontend_notify();
248 extern nscd_rc_t
_nscd_cfg_frontend_verify();
249 extern nscd_rc_t
_nscd_cfg_selfcred_notify();
250 extern nscd_rc_t
_nscd_cfg_selfcred_verify();
251 extern nscd_rc_t
_nscd_cfg_switch_notify();
252 extern nscd_rc_t
_nscd_cfg_switch_verify();
253 extern nscd_rc_t
_nscd_cfg_cache_notify();
254 extern nscd_rc_t
_nscd_cfg_cache_verify();
255 extern nscd_rc_t
_nscd_cfg_log_get_stat();
256 extern nscd_rc_t
_nscd_cfg_switch_get_stat();
257 extern nscd_rc_t
_nscd_cfg_cache_get_stat();
260 * the following macros are used to indicate a parameter's
261 * notify/verify/get_stat functions are the same as those
264 #define NSCD_CFG_FUNC_NOTIFY_AS_GROUP ((nscd_cfg_func_notify_t)-1)
265 #define NSCD_CFG_FUNC_VERIFY_AS_GROUP ((nscd_cfg_func_verify_t)-1)
266 #define NSCD_CFG_FUNC_GET_STAT_AS_GROUP ((nscd_cfg_func_get_stat_t)-1)
269 * the static config parameter description table
271 static nscd_cfg_param_desc_t _nscd_cfg_param_desc
[] = {
273 NSCD_CFG_PGROUP_DESC(
274 "param-group-global-log",
276 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
|
277 NSCD_CFG_PFLAG_GLOBAL
,
279 nscd_cfg_global_data_t
,
281 _nscd_cfg_log_notify
,
282 _nscd_cfg_log_verify
),
286 NSCD_CFG_DATA_STRING
,
287 NSCD_CFG_PFLAG_GLOBAL
|
288 NSCD_CFG_PFLAG_VLEN_DATA
,
290 nscd_cfg_global_log_t
,
292 nscd_cfg_global_data_t
,
293 &NSCD_CFG_LOGFILE_PCHECK
,
294 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
295 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
299 NSCD_CFG_DATA_BITMAP
,
300 NSCD_CFG_PFLAG_GLOBAL
,
302 nscd_cfg_global_log_t
,
304 nscd_cfg_global_data_t
,
305 &NSCD_CFG_LOGLEVEL_PCHECK
,
306 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
307 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
311 NSCD_CFG_DATA_BITMAP
,
312 NSCD_CFG_PFLAG_GLOBAL
,
314 nscd_cfg_global_log_t
,
316 nscd_cfg_global_data_t
,
317 &NSCD_CFG_LOGCOMP_PCHECK
,
318 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
319 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
321 NSCD_CFG_PGROUP_DESC(
322 "param-group-global-frontend",
324 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
|
325 NSCD_CFG_PFLAG_GLOBAL
,
327 nscd_cfg_global_data_t
,
329 _nscd_cfg_frontend_notify
,
330 _nscd_cfg_frontend_verify
),
333 "common-worker-threads",
334 NSCD_CFG_DATA_INTEGER
,
335 NSCD_CFG_PFLAG_SEND_BIT_SELECTED
|
336 NSCD_CFG_PFLAG_GLOBAL
,
337 common_worker_threads
,
338 nscd_cfg_global_frontend_t
,
340 nscd_cfg_global_data_t
,
342 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
343 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
347 NSCD_CFG_DATA_INTEGER
,
348 NSCD_CFG_PFLAG_SEND_BIT_SELECTED
|
349 NSCD_CFG_PFLAG_GLOBAL
,
351 nscd_cfg_global_frontend_t
,
353 nscd_cfg_global_data_t
,
355 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
356 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
358 NSCD_CFG_PGROUP_DESC(
359 "param-group-global-selfcred",
361 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
|
362 NSCD_CFG_PFLAG_GLOBAL
,
364 nscd_cfg_global_data_t
,
366 _nscd_cfg_selfcred_notify
,
367 _nscd_cfg_selfcred_verify
),
371 NSCD_CFG_DATA_BOOLEAN
,
372 NSCD_CFG_PFLAG_GLOBAL
,
374 nscd_cfg_global_selfcred_t
,
376 nscd_cfg_global_data_t
,
378 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
379 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
383 NSCD_CFG_DATA_INTEGER
,
384 NSCD_CFG_PFLAG_GLOBAL
,
386 nscd_cfg_global_selfcred_t
,
388 nscd_cfg_global_data_t
,
390 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
391 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
393 NSCD_CFG_PGROUP_DESC(
394 "param-group-global-switch",
396 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
|
397 NSCD_CFG_PFLAG_GLOBAL
,
399 nscd_cfg_global_data_t
,
401 _nscd_cfg_switch_notify
,
402 _nscd_cfg_switch_verify
),
405 "global-enable-lookup",
406 NSCD_CFG_DATA_BOOLEAN
,
407 NSCD_CFG_PFLAG_GLOBAL
,
409 nscd_cfg_global_switch_t
,
411 nscd_cfg_global_data_t
,
413 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
414 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
417 "global-enable-loopback-checking",
418 NSCD_CFG_DATA_BOOLEAN
,
419 NSCD_CFG_PFLAG_GLOBAL
,
420 enable_loopback_checking_g
,
421 nscd_cfg_global_switch_t
,
423 nscd_cfg_global_data_t
,
425 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
426 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
429 "global-check-smf-state-interval",
430 NSCD_CFG_DATA_INTEGER
,
431 NSCD_CFG_PFLAG_GLOBAL
,
432 check_smf_state_interval_g
,
433 nscd_cfg_global_switch_t
,
435 nscd_cfg_global_data_t
,
437 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
438 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
440 NSCD_CFG_PGROUP_DESC(
441 "param-group-global-cache",
443 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
|
444 NSCD_CFG_PFLAG_INIT_SET_ALL_DB
|
445 NSCD_CFG_PFLAG_GLOBAL
,
447 nscd_cfg_global_data_t
,
449 _nscd_cfg_cache_notify
,
450 _nscd_cfg_cache_verify
),
453 "global-enable-cache",
454 NSCD_CFG_DATA_BOOLEAN
,
455 NSCD_CFG_PFLAG_GLOBAL
,
457 nscd_cfg_global_cache_t
,
459 nscd_cfg_global_data_t
,
461 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
462 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
464 /* non-global config param from this point on */
466 NSCD_CFG_PGROUP_DESC(
467 "param-group-frontend",
469 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
,
471 nscd_cfg_nsw_db_data_t
,
473 _nscd_cfg_frontend_notify
,
474 _nscd_cfg_frontend_verify
),
477 "worker-thread-per-nsw-db",
478 NSCD_CFG_DATA_INTEGER
,
480 worker_thread_per_nsw_db
,
483 nscd_cfg_nsw_db_data_t
,
485 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
486 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
488 NSCD_CFG_PGROUP_DESC(
489 "param-group-switch",
491 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
|
494 nscd_cfg_nsw_db_data_t
,
496 _nscd_cfg_switch_notify
,
497 _nscd_cfg_switch_verify
),
501 NSCD_CFG_DATA_STRING
,
502 NSCD_CFG_PFLAG_VLEN_DATA
|
503 NSCD_CFG_PFLAG_LINKED
,
507 nscd_cfg_nsw_db_data_t
,
508 &NSCD_CFG_NSWCFGSTR_PCHECK
,
509 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
510 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
513 "nsw-config-database",
514 NSCD_CFG_DATA_STRING
,
515 NSCD_CFG_PFLAG_VLEN_DATA
|
516 NSCD_CFG_PFLAG_HIDDEN
,
520 nscd_cfg_nsw_db_data_t
,
521 &NSCD_CFG_NSWCFGSTR_PCHECK
,
522 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
523 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
527 NSCD_CFG_DATA_BOOLEAN
,
532 nscd_cfg_nsw_db_data_t
,
534 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
535 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
538 "enable-loopback-checking",
539 NSCD_CFG_DATA_BOOLEAN
,
541 enable_loopback_checking
,
544 nscd_cfg_nsw_db_data_t
,
546 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
547 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
550 "max-nsw-state-per-db",
551 NSCD_CFG_DATA_INTEGER
,
553 max_nsw_state_per_db
,
556 nscd_cfg_nsw_db_data_t
,
558 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
559 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
562 "max-nsw-state-per-thread",
563 NSCD_CFG_DATA_INTEGER
,
565 max_nsw_state_per_thread
,
568 nscd_cfg_nsw_db_data_t
,
570 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
571 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
574 "max-getent-ctx-per-db",
575 NSCD_CFG_DATA_INTEGER
,
577 max_getent_ctx_per_db
,
580 nscd_cfg_nsw_db_data_t
,
582 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
583 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
585 NSCD_CFG_PGROUP_DESC(
588 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP
,
590 nscd_cfg_nsw_db_data_t
,
592 _nscd_cfg_cache_notify
,
593 _nscd_cfg_cache_verify
),
597 NSCD_CFG_DATA_BOOLEAN
,
602 nscd_cfg_nsw_db_data_t
,
604 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
605 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
608 "enable-per-user-cache",
609 NSCD_CFG_DATA_BOOLEAN
,
614 nscd_cfg_nsw_db_data_t
,
616 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
617 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
621 NSCD_CFG_DATA_BOOLEAN
,
626 nscd_cfg_nsw_db_data_t
,
628 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
629 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
633 NSCD_CFG_DATA_BOOLEAN
,
638 nscd_cfg_nsw_db_data_t
,
640 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
641 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
644 "check-file-interval",
645 NSCD_CFG_DATA_INTEGER
,
650 nscd_cfg_nsw_db_data_t
,
652 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
653 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
656 "positive-time-to-live",
657 NSCD_CFG_DATA_INTEGER
,
662 nscd_cfg_nsw_db_data_t
,
664 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
665 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
668 "negative-time-to-live",
669 NSCD_CFG_DATA_INTEGER
,
674 nscd_cfg_nsw_db_data_t
,
676 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
677 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
681 NSCD_CFG_DATA_INTEGER
,
686 nscd_cfg_nsw_db_data_t
,
688 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
689 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
693 NSCD_CFG_DATA_INTEGER
,
698 nscd_cfg_nsw_db_data_t
,
700 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
701 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
704 "maximum-entries-allowed",
705 NSCD_CFG_DATA_INTEGER
,
710 nscd_cfg_nsw_db_data_t
,
712 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
713 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
717 NSCD_CFG_DATA_INTEGER
,
718 NSCD_CFG_PFLAG_OBSOLETE
,
722 nscd_cfg_nsw_db_data_t
,
724 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
725 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
729 NSCD_CFG_DATA_BOOLEAN
,
730 NSCD_CFG_PFLAG_OBSOLETE
,
734 nscd_cfg_nsw_db_data_t
,
736 NSCD_CFG_FUNC_NOTIFY_AS_GROUP
,
737 NSCD_CFG_FUNC_VERIFY_AS_GROUP
),
739 NSCD_CFG_PGROUP_DESC_NULL
743 * defaults for the global configuration
745 static nscd_cfg_global_data_t nscd_cfg_global_default
= {
748 * nscd_cfg_global_log_t
752 NSCD_CFG_GROUP_INFO_GLOBAL_LOG
,
754 NSCD_LOG_LEVEL_NONE
, /* debug_level */
755 NSCD_LOG_CACHE
, /* debug_comp */
760 * nscd_cfg_global_frontend_t
764 NSCD_CFG_GROUP_INFO_GLOBAL_FRONTEND
,
765 100, /* common_worker_threads */
766 100, /* cache_hit_threads */
771 * nscd_cfg_global_selfcred_t
775 NSCD_CFG_GROUP_INFO_GLOBAL_SELFCRED
,
776 nscd_true
, /* enable_selfcred */
777 120, /* per_user_nscd_ttl: 120 seconds */
782 * nscd_cfg_global_switch_t
786 NSCD_CFG_GROUP_INFO_GLOBAL_SWITCH
,
787 nscd_true
, /* enable_lookup_g */
788 nscd_false
, /* enable_loopback_checking_g */
789 120, /* check_smf_state_interval_g */
794 * nscd_cfg_global_cache_t
796 NSCD_CFG_GLOBAL_CACHE_DEFAULTS
800 * defaults for the per switch database configuration
802 static nscd_cfg_nsw_db_data_t nscd_cfg_nsw_db_data_default
= {
805 * nscd_cfg_frontend_t
809 NSCD_CFG_GROUP_INFO_FRONTEND
,
810 50, /* worker_thread_per_nsw_db */
819 NSCD_CFG_GROUP_INFO_SWITCH
,
820 "nis files", /* nsw_config_string */
821 NULL
, /* nsw_config_db */
822 nscd_true
, /* enable_lookup */
823 nscd_false
, /* enable_loopback_checking */
824 288, /* max_nsw_state_per_db */
825 32, /* max_nsw_state_per_thread */
826 256, /* max_getent_ctx_per_db */
833 NSCD_CFG_CACHE_DEFAULTS
837 * macros for defining the database specific defaults
839 #define NSCD_CFG_DB_DEFAULT_PARAM(db, gf, pf, gt, defaddr, deflen) \
841 db, offsetof(nscd_cfg_nsw_db_data_t, gf), \
842 offsetof(gt, pf), defaddr, deflen \
845 #define NSCD_CFG_DB_DEFAULT_GROUP(db, gf, defaddr, deflen) \
847 db, offsetof(nscd_cfg_nsw_db_data_t, gf), \
851 #define NSCD_CFG_DB_DEFAULT_NULL \
853 NULL, 0, 0, NULL, 0 \
857 * shadow, and user_attr use the same switch policy
858 * as that of passwd. exec_attr use that of prof_attr.
860 static char *nscd_cfg_shadow_cfg_db
= NSS_DBNAM_PASSWD
;
861 static char *nscd_cfg_userattr_cfg_db
= NSS_DBNAM_PASSWD
;
862 static char *nscd_cfg_execattr_cfg_db
= NSS_DBNAM_PROFATTR
;
865 * default switch policy for pseudo-databases passwd_compat and
866 * and group_compa is "nis"
868 static char *nscd_cfg_def_passwd_compat
= NSS_DEFCONF_PASSWD_COMPAT
;
869 static char *nscd_cfg_def_group_compat
= NSS_DEFCONF_GROUP_COMPAT
;
871 static nscd_cfg_nsw_spc_default_t nscd_cfg_passwd_cfg_link
=
872 NSCD_CFG_DB_DEFAULT_PARAM(
878 NSCD_SIZEOF(nscd_cfg_switch_t
, nsw_config_string
));
880 static nscd_cfg_nsw_spc_default_t nscd_cfg_profattr_cfg_link
=
881 NSCD_CFG_DB_DEFAULT_PARAM(
887 NSCD_SIZEOF(nscd_cfg_switch_t
, nsw_config_string
));
891 * switch database specific defaults
893 nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_spc_default
[] = {
895 NSCD_CFG_DB_DEFAULT_PARAM(
900 &nscd_cfg_shadow_cfg_db
,
901 sizeof (nscd_cfg_shadow_cfg_db
)),
903 NSCD_CFG_DB_DEFAULT_PARAM(
908 &nscd_cfg_userattr_cfg_db
,
909 sizeof (nscd_cfg_userattr_cfg_db
)),
911 NSCD_CFG_DB_DEFAULT_PARAM(
916 &nscd_cfg_execattr_cfg_db
,
917 sizeof (nscd_cfg_execattr_cfg_db
)),
919 NSCD_CFG_DB_DEFAULT_PARAM(
920 NSS_DBNAM_PASSWD_COMPAT
,
924 &nscd_cfg_def_passwd_compat
,
925 sizeof (nscd_cfg_def_passwd_compat
)),
927 NSCD_CFG_DB_DEFAULT_PARAM(
928 NSS_DBNAM_GROUP_COMPAT
,
932 &nscd_cfg_def_group_compat
,
933 sizeof (nscd_cfg_def_group_compat
)),
935 NSCD_CFG_DB_DEFAULT_NULL
939 * switch database specific defaults that are linked to
940 * those of other databases
942 nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_link_default
[] = {
944 NSCD_CFG_DB_DEFAULT_PARAM(
949 &nscd_cfg_passwd_cfg_link
,
952 NSCD_CFG_DB_DEFAULT_PARAM(
957 &nscd_cfg_passwd_cfg_link
,
960 NSCD_CFG_DB_DEFAULT_PARAM(
965 &nscd_cfg_passwd_cfg_link
,
968 NSCD_CFG_DB_DEFAULT_PARAM(
973 &nscd_cfg_profattr_cfg_link
,
976 NSCD_CFG_DB_DEFAULT_NULL
980 * macros for defining the static stats table
982 #define NSCD_CFG_SGROUP_DESC(sn, type, sflag, gi, \
983 gf, g_in_t, gsfunc_name) \
985 {-1, sn}, type, NSCD_CFG_SFLAG_GROUP | sflag, gi, \
987 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
991 #define NSCD_CFG_STAT_DESC(sn, type, sflag, sf, s_in_t, \
992 gf, g_in_t, gsfunc_name) \
994 {-1, sn}, type, sflag, NSCD_CFG_GROUP_INFO_NULL, \
995 NSCD_SIZEOF(s_in_t, sf), offsetof(s_in_t, sf), -1, \
996 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
1000 #define NSCD_CFG_SGROUP_DESC_NULL \
1002 {-1, NULL}, -1, NSCD_CFG_SFLAG_GROUP, 0, \
1009 * the static statistics description table
1011 static nscd_cfg_stat_desc_t _nscd_cfg_stat_desc
[] = {
1013 NSCD_CFG_SGROUP_DESC(
1014 "stat-group-global-log",
1016 NSCD_CFG_SFLAG_GLOBAL
,
1017 NSCD_CFG_STAT_GROUP_INFO_GLOBAL_LOG
,
1019 nscd_cfg_stat_global_data_t
,
1020 _nscd_cfg_log_get_stat
),
1024 NSCD_CFG_DATA_INTEGER
,
1025 NSCD_CFG_SFLAG_GLOBAL
,
1027 nscd_cfg_stat_global_log_t
,
1029 nscd_cfg_stat_global_data_t
,
1030 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1032 NSCD_CFG_SGROUP_DESC(
1033 "stat-group-global-switch",
1035 NSCD_CFG_SFLAG_GLOBAL
,
1036 NSCD_CFG_STAT_GROUP_INFO_GLOBAL_SWITCH
,
1038 nscd_cfg_stat_global_data_t
,
1039 _nscd_cfg_switch_get_stat
),
1042 "global-lookup-request-received",
1043 NSCD_CFG_DATA_INTEGER
,
1044 NSCD_CFG_SFLAG_GLOBAL
,
1045 lookup_request_received_g
,
1046 nscd_cfg_stat_global_switch_t
,
1048 nscd_cfg_stat_global_data_t
,
1049 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1052 "global-lookup-request-queued",
1053 NSCD_CFG_DATA_INTEGER
,
1054 NSCD_CFG_SFLAG_GLOBAL
,
1055 lookup_request_queued_g
,
1056 nscd_cfg_stat_global_switch_t
,
1058 nscd_cfg_stat_global_data_t
,
1059 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1062 "global-lookup-request-in-progress",
1063 NSCD_CFG_DATA_INTEGER
,
1064 NSCD_CFG_SFLAG_GLOBAL
,
1065 lookup_request_in_progress_g
,
1066 nscd_cfg_stat_global_switch_t
,
1068 nscd_cfg_stat_global_data_t
,
1069 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1072 "global-lookup-request-succeeded",
1073 NSCD_CFG_DATA_INTEGER
,
1074 NSCD_CFG_SFLAG_GLOBAL
,
1075 lookup_request_succeeded_g
,
1076 nscd_cfg_stat_global_switch_t
,
1078 nscd_cfg_stat_global_data_t
,
1079 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1082 "global-lookup-request-failed",
1083 NSCD_CFG_DATA_INTEGER
,
1084 NSCD_CFG_SFLAG_GLOBAL
,
1085 lookup_request_failed_g
,
1086 nscd_cfg_stat_global_switch_t
,
1088 nscd_cfg_stat_global_data_t
,
1089 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1092 "global-loopback-nsw-db-skipped",
1093 NSCD_CFG_DATA_INTEGER
,
1094 NSCD_CFG_SFLAG_GLOBAL
,
1095 loopback_nsw_db_skipped_g
,
1096 nscd_cfg_stat_global_switch_t
,
1098 nscd_cfg_stat_global_data_t
,
1099 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1101 NSCD_CFG_SGROUP_DESC(
1102 "stat-group-global-cache",
1104 NSCD_CFG_SFLAG_GLOBAL
,
1105 NSCD_CFG_STAT_GROUP_INFO_CACHE
,
1107 nscd_cfg_stat_global_data_t
,
1108 _nscd_cfg_cache_get_stat
),
1111 "global-cache-hits-on-positive",
1112 NSCD_CFG_DATA_INTEGER
,
1113 NSCD_CFG_SFLAG_GLOBAL
,
1115 nscd_cfg_stat_cache_t
,
1117 nscd_cfg_stat_global_data_t
,
1118 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1121 "global-cache-hits-on-negative",
1122 NSCD_CFG_DATA_INTEGER
,
1123 NSCD_CFG_SFLAG_GLOBAL
,
1125 nscd_cfg_stat_cache_t
,
1127 nscd_cfg_stat_global_data_t
,
1128 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1131 "global-cache-misses-on-positive",
1132 NSCD_CFG_DATA_INTEGER
,
1133 NSCD_CFG_SFLAG_GLOBAL
,
1135 nscd_cfg_stat_cache_t
,
1137 nscd_cfg_stat_global_data_t
,
1138 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1141 "global-cache-misses-on-negative",
1142 NSCD_CFG_DATA_INTEGER
,
1143 NSCD_CFG_SFLAG_GLOBAL
,
1145 nscd_cfg_stat_cache_t
,
1147 nscd_cfg_stat_global_data_t
,
1148 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1151 "global-cache-queries-queued",
1152 NSCD_CFG_DATA_INTEGER
,
1153 NSCD_CFG_SFLAG_GLOBAL
,
1155 nscd_cfg_stat_cache_t
,
1157 nscd_cfg_stat_global_data_t
,
1158 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1161 "global-total-cache-entries",
1162 NSCD_CFG_DATA_INTEGER
,
1163 NSCD_CFG_SFLAG_GLOBAL
,
1165 nscd_cfg_stat_cache_t
,
1167 nscd_cfg_stat_global_data_t
,
1168 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1171 "global-complete-cache-invalidations",
1172 NSCD_CFG_DATA_INTEGER
,
1173 NSCD_CFG_SFLAG_GLOBAL
,
1175 nscd_cfg_stat_cache_t
,
1177 nscd_cfg_stat_global_data_t
,
1178 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1181 "global-cache-queries-dropped",
1182 NSCD_CFG_DATA_INTEGER
,
1183 NSCD_CFG_SFLAG_GLOBAL
,
1185 nscd_cfg_stat_cache_t
,
1187 nscd_cfg_stat_global_data_t
,
1188 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1191 "global-cache-hit-rate",
1192 NSCD_CFG_DATA_PERCENT
,
1193 NSCD_CFG_SFLAG_GLOBAL
,
1195 nscd_cfg_stat_cache_t
,
1197 nscd_cfg_stat_global_data_t
,
1198 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1200 /* non-global stat from this point on */
1202 NSCD_CFG_SGROUP_DESC(
1203 "stat-group-switch",
1205 NSCD_CFG_SFLAG_GROUP
,
1206 NSCD_CFG_STAT_GROUP_INFO_SWITCH
,
1208 nscd_cfg_stat_nsw_db_data_t
,
1209 _nscd_cfg_switch_get_stat
),
1212 "lookup-request-received",
1213 NSCD_CFG_DATA_INTEGER
,
1214 NSCD_CFG_SFLAG_NONE
,
1215 lookup_request_received
,
1216 nscd_cfg_stat_switch_t
,
1218 nscd_cfg_stat_nsw_db_data_t
,
1219 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1222 "lookup-request-queued",
1223 NSCD_CFG_DATA_INTEGER
,
1224 NSCD_CFG_SFLAG_NONE
,
1225 lookup_request_queued
,
1226 nscd_cfg_stat_switch_t
,
1228 nscd_cfg_stat_nsw_db_data_t
,
1229 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1232 "lookup-request-in-progress",
1233 NSCD_CFG_DATA_INTEGER
,
1234 NSCD_CFG_SFLAG_NONE
,
1235 lookup_request_in_progress
,
1236 nscd_cfg_stat_switch_t
,
1238 nscd_cfg_stat_nsw_db_data_t
,
1239 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1242 "lookup-request-succeeded",
1243 NSCD_CFG_DATA_INTEGER
,
1244 NSCD_CFG_SFLAG_NONE
,
1245 lookup_request_succeeded
,
1246 nscd_cfg_stat_switch_t
,
1248 nscd_cfg_stat_nsw_db_data_t
,
1249 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1252 "lookup-request-failed",
1253 NSCD_CFG_DATA_INTEGER
,
1254 NSCD_CFG_SFLAG_NONE
,
1255 lookup_request_failed
,
1256 nscd_cfg_stat_switch_t
,
1258 nscd_cfg_stat_nsw_db_data_t
,
1259 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1262 "loopback-nsw-db-skipped",
1263 NSCD_CFG_DATA_INTEGER
,
1264 NSCD_CFG_SFLAG_NONE
,
1265 loopback_nsw_db_skipped
,
1266 nscd_cfg_stat_switch_t
,
1268 nscd_cfg_stat_nsw_db_data_t
,
1269 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1271 NSCD_CFG_SGROUP_DESC(
1274 NSCD_CFG_SFLAG_GROUP
,
1275 NSCD_CFG_STAT_GROUP_INFO_CACHE
,
1277 nscd_cfg_stat_nsw_db_data_t
,
1278 _nscd_cfg_cache_get_stat
),
1281 "cache-hits-on-positive",
1282 NSCD_CFG_DATA_INTEGER
,
1283 NSCD_CFG_SFLAG_NONE
,
1285 nscd_cfg_stat_cache_t
,
1287 nscd_cfg_stat_nsw_db_data_t
,
1288 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1291 "cache-hits-on-negative",
1292 NSCD_CFG_DATA_INTEGER
,
1293 NSCD_CFG_SFLAG_NONE
,
1295 nscd_cfg_stat_cache_t
,
1297 nscd_cfg_stat_nsw_db_data_t
,
1298 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1301 "cache-misses-on-positive",
1302 NSCD_CFG_DATA_INTEGER
,
1303 NSCD_CFG_SFLAG_NONE
,
1305 nscd_cfg_stat_cache_t
,
1307 nscd_cfg_stat_nsw_db_data_t
,
1308 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1311 "cache-misses-on-negative",
1312 NSCD_CFG_DATA_INTEGER
,
1313 NSCD_CFG_SFLAG_NONE
,
1315 nscd_cfg_stat_cache_t
,
1317 nscd_cfg_stat_nsw_db_data_t
,
1318 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1321 "cache-queries-queued",
1322 NSCD_CFG_DATA_INTEGER
,
1323 NSCD_CFG_SFLAG_NONE
,
1325 nscd_cfg_stat_cache_t
,
1327 nscd_cfg_stat_nsw_db_data_t
,
1328 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1331 "total-cache-entries",
1332 NSCD_CFG_DATA_INTEGER
,
1333 NSCD_CFG_SFLAG_NONE
,
1335 nscd_cfg_stat_cache_t
,
1337 nscd_cfg_stat_nsw_db_data_t
,
1338 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1341 "complete-cache-invalidations",
1342 NSCD_CFG_DATA_INTEGER
,
1343 NSCD_CFG_SFLAG_NONE
,
1345 nscd_cfg_stat_cache_t
,
1347 nscd_cfg_stat_nsw_db_data_t
,
1348 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1352 NSCD_CFG_DATA_PERCENT
,
1353 NSCD_CFG_SFLAG_NONE
,
1355 nscd_cfg_stat_cache_t
,
1357 nscd_cfg_stat_nsw_db_data_t
,
1358 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1361 "cache-queries-dropped",
1362 NSCD_CFG_DATA_PERCENT
,
1363 NSCD_CFG_SFLAG_NONE
,
1365 nscd_cfg_stat_cache_t
,
1367 nscd_cfg_stat_nsw_db_data_t
,
1368 NSCD_CFG_FUNC_GET_STAT_AS_GROUP
),
1371 NSCD_CFG_SGROUP_DESC_NULL
1374 /* number of entries in the static tables */
1376 int _nscd_cfg_num_nsw_src
=
1377 (sizeof (_nscd_cfg_nsw_src
) /
1378 sizeof (_nscd_cfg_nsw_src
[0]) - 1);
1380 int _nscd_cfg_num_smf_services
=
1381 (sizeof (_nscd_cfg_smf_services
) /
1382 sizeof (_nscd_cfg_smf_services
[0]) - 1);
1384 /* number of supported nsw databases (including pseudo ones) */
1385 int _nscd_cfg_num_nsw_db_all
=
1386 (sizeof (_nscd_cfg_nsw_db
) /
1387 sizeof (_nscd_cfg_nsw_db
[0]) - 1);
1389 /* number of supported nsw databases (not including pseudo ones) */
1390 int _nscd_cfg_num_nsw_db
=
1391 (sizeof (_nscd_cfg_nsw_db
) /
1392 sizeof (_nscd_cfg_nsw_db
[0]) - 1) -
1393 NSS_DBNAM_COMPAT_NUM_DB
;
1395 static int _nscd_cfg_num_param
=
1396 (sizeof (_nscd_cfg_param_desc
) /
1397 sizeof (_nscd_cfg_param_desc
[0]) - 1);
1399 static int _nscd_cfg_num_stat
=
1400 (sizeof (_nscd_cfg_stat_desc
) /
1401 sizeof (_nscd_cfg_stat_desc
[0]) - 1);
1403 int _nscd_cfg_num_nsw_default
=
1404 (sizeof (_nscd_cfg_nsw_spc_default
) /
1405 sizeof (_nscd_cfg_nsw_spc_default
[0]) - 1);
1407 int _nscd_cfg_num_link_default
=
1408 (sizeof (_nscd_cfg_nsw_link_default
) /
1409 sizeof (_nscd_cfg_nsw_link_default
[0]) - 1);
1415 #endif /* _NSCD_CFGDEF_H */