1cb5caa98Sdjl /* 2cb5caa98Sdjl * CDDL HEADER START 3cb5caa98Sdjl * 4cb5caa98Sdjl * The contents of this file are subject to the terms of the 5cb5caa98Sdjl * Common Development and Distribution License (the "License"). 6cb5caa98Sdjl * You may not use this file except in compliance with the License. 7cb5caa98Sdjl * 8cb5caa98Sdjl * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9cb5caa98Sdjl * or http://www.opensolaris.org/os/licensing. 10cb5caa98Sdjl * See the License for the specific language governing permissions 11cb5caa98Sdjl * and limitations under the License. 12cb5caa98Sdjl * 13cb5caa98Sdjl * When distributing Covered Code, include this CDDL HEADER in each 14cb5caa98Sdjl * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15cb5caa98Sdjl * If applicable, add the following below this CDDL HEADER, with the 16cb5caa98Sdjl * fields enclosed by brackets "[]" replaced with your own identifying 17cb5caa98Sdjl * information: Portions Copyright [yyyy] [name of copyright owner] 18cb5caa98Sdjl * 19cb5caa98Sdjl * CDDL HEADER END 20cb5caa98Sdjl */ 21cb5caa98Sdjl /* 22*d2ba247cSmichen * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23cb5caa98Sdjl * Use is subject to license terms. 24cb5caa98Sdjl */ 25cb5caa98Sdjl 26cb5caa98Sdjl #ifndef _NSCD_CFGDEF_H 27cb5caa98Sdjl #define _NSCD_CFGDEF_H 28cb5caa98Sdjl 29cb5caa98Sdjl #pragma ident "%Z%%M% %I% %E% SMI" 30cb5caa98Sdjl 31cb5caa98Sdjl #ifdef __cplusplus 32cb5caa98Sdjl extern "C" { 33cb5caa98Sdjl #endif 34cb5caa98Sdjl 35cb5caa98Sdjl #include <stddef.h> 36cb5caa98Sdjl #include <limits.h> 37cb5caa98Sdjl #include <nss_dbdefs.h> 38cb5caa98Sdjl #include "nscd_config.h" 39cb5caa98Sdjl #include "nscd_log.h" 40cb5caa98Sdjl #include "cache.h" 41cb5caa98Sdjl 42cb5caa98Sdjl /* 43cb5caa98Sdjl * structure used for preliminary checking of an integer 44cb5caa98Sdjl * configuration value 45cb5caa98Sdjl */ 46cb5caa98Sdjl typedef struct { 47cb5caa98Sdjl int min; 48cb5caa98Sdjl int max; 49cb5caa98Sdjl } nscd_cfg_int_check_t; 50cb5caa98Sdjl 51cb5caa98Sdjl /* 52cb5caa98Sdjl * structure used for preliminary checking of a bitmap 53cb5caa98Sdjl * configuration value 54cb5caa98Sdjl */ 55cb5caa98Sdjl typedef struct { 56cb5caa98Sdjl nscd_cfg_bitmap_t valid_bits; 57cb5caa98Sdjl } nscd_cfg_bitmap_check_t; 58cb5caa98Sdjl 59cb5caa98Sdjl /* 60cb5caa98Sdjl * structure used for preliminary checking of a string 61cb5caa98Sdjl * configuration value 62cb5caa98Sdjl */ 63cb5caa98Sdjl typedef struct { 64cb5caa98Sdjl nscd_bool_t must_not_null; 65cb5caa98Sdjl int maxlen; 66cb5caa98Sdjl } nscd_cfg_str_check_t; 67cb5caa98Sdjl 68cb5caa98Sdjl /* 69cb5caa98Sdjl * Per nsswitch database config data 70cb5caa98Sdjl */ 71cb5caa98Sdjl typedef struct { 72cb5caa98Sdjl nscd_cfg_frontend_t fe; 73cb5caa98Sdjl nscd_cfg_switch_t sw; 74cb5caa98Sdjl nscd_cfg_cache_t cache; 75cb5caa98Sdjl } nscd_cfg_nsw_db_data_t; 76cb5caa98Sdjl 77cb5caa98Sdjl /* 78cb5caa98Sdjl * Per nsswitch database statistics data 79cb5caa98Sdjl */ 80cb5caa98Sdjl typedef struct { 81cb5caa98Sdjl nscd_cfg_stat_switch_t sw; 82cb5caa98Sdjl nscd_cfg_stat_cache_t cache; 83cb5caa98Sdjl } nscd_cfg_stat_nsw_db_data_t; 84cb5caa98Sdjl 85cb5caa98Sdjl /* 86cb5caa98Sdjl * global statistics data 87cb5caa98Sdjl */ 88cb5caa98Sdjl typedef struct { 89cb5caa98Sdjl nscd_cfg_stat_global_log_t log; 90cb5caa98Sdjl nscd_cfg_stat_global_switch_t sw; 91cb5caa98Sdjl nscd_cfg_stat_cache_t cache; 92cb5caa98Sdjl } nscd_cfg_stat_global_data_t; 93cb5caa98Sdjl 94cb5caa98Sdjl /* 95cb5caa98Sdjl * global config data 96cb5caa98Sdjl */ 97cb5caa98Sdjl typedef struct { 98cb5caa98Sdjl nscd_cfg_global_log_t log; 99cb5caa98Sdjl nscd_cfg_global_frontend_t fe; 100cb5caa98Sdjl nscd_cfg_global_selfcred_t sc; 101cb5caa98Sdjl nscd_cfg_global_switch_t sw; 102cb5caa98Sdjl nscd_cfg_global_cache_t cache; 103cb5caa98Sdjl } nscd_cfg_global_data_t; 104cb5caa98Sdjl 105cb5caa98Sdjl /* 106cb5caa98Sdjl * structure for handling the switch database specific group 107cb5caa98Sdjl * or parameter default 108cb5caa98Sdjl */ 109cb5caa98Sdjl typedef struct nscd_cfg_nsw_spc_default { 110cb5caa98Sdjl char *db; 111cb5caa98Sdjl int group_off; 112cb5caa98Sdjl int param_off; 113cb5caa98Sdjl void *data; /* pointer or link to data */ 114cb5caa98Sdjl int data_len; 115cb5caa98Sdjl } nscd_cfg_nsw_spc_default_t; 116cb5caa98Sdjl 117cb5caa98Sdjl /* 118cb5caa98Sdjl * name service switch source (repository) table 119cb5caa98Sdjl */ 120cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_nsw_src[] = { 121cb5caa98Sdjl { 0, "files" }, 122cb5caa98Sdjl { 1, "ldap" }, 123cb5caa98Sdjl { 2, "nis" }, 124cb5caa98Sdjl { 3, "nisplus" }, 1254b22b933Srs200217 { 4, "mdns" }, 1264b22b933Srs200217 { 5, "dns" }, 1274b22b933Srs200217 { 6, "compat" }, 1284b22b933Srs200217 { 7, "user" }, 129cb5caa98Sdjl { -1, NULL } 130cb5caa98Sdjl }; 131cb5caa98Sdjl 132cb5caa98Sdjl /* 133cb5caa98Sdjl * name service related smf service table 134cb5caa98Sdjl * (the order of the services should match the order of the source 1354b22b933Srs200217 * listed above, 0: files, 1: ldap, 2: nis, 3: nisplus, 4: mdns. 1364b22b933Srs200217 * dns is not needed) 137cb5caa98Sdjl */ 138cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_smf_services[] = { 139cb5caa98Sdjl { 0, "svc:/system/name-service-cache:default"}, 140cb5caa98Sdjl { 1, "svc:/network/ldap/client:default" }, 141cb5caa98Sdjl { 2, "svc:/network/nis/client:default" }, 142ad0e80f7Smichen { 3, "svc:/network/rpc/bind:default" }, 1434b22b933Srs200217 { 4, "svc:/network/dns/multicast:default" }, 144cb5caa98Sdjl { -1, NULL } 145cb5caa98Sdjl }; 146cb5caa98Sdjl 147cb5caa98Sdjl /* 148*d2ba247cSmichen * default version for supported sources/backends 149*d2ba247cSmichen */ 150*d2ba247cSmichen void *_nscd_be_version = NULL; 151*d2ba247cSmichen 152*d2ba247cSmichen /* 153cb5caa98Sdjl * name service database table 154cb5caa98Sdjl */ 155cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_nsw_db[] = { 156cb5caa98Sdjl { 0, NSS_DBNAM_PASSWD }, 157cb5caa98Sdjl { 1, NSS_DBNAM_GROUP }, 158cb5caa98Sdjl { 2, NSS_DBNAM_HOSTS }, 159cb5caa98Sdjl { 3, NSS_DBNAM_IPNODES }, 160cb5caa98Sdjl { 4, NSS_DBNAM_EXECATTR }, 161cb5caa98Sdjl { 5, NSS_DBNAM_PROFATTR }, 162cb5caa98Sdjl { 6, NSS_DBNAM_USERATTR }, 163cb5caa98Sdjl { 7, NSS_DBNAM_NETWORKS }, 164cb5caa98Sdjl { 8, NSS_DBNAM_PROTOCOLS }, 165cb5caa98Sdjl { 9, NSS_DBNAM_RPC }, 166cb5caa98Sdjl { 10, NSS_DBNAM_ETHERS }, 167cb5caa98Sdjl { 11, NSS_DBNAM_NETMASKS }, 168cb5caa98Sdjl { 12, NSS_DBNAM_BOOTPARAMS }, 169cb5caa98Sdjl { 13, NSS_DBNAM_PUBLICKEY }, 170cb5caa98Sdjl { 14, NSS_DBNAM_NETGROUP }, 171cb5caa98Sdjl { 15, NSS_DBNAM_SERVICES }, 172cb5caa98Sdjl { 16, NSS_DBNAM_PRINTERS }, 173cb5caa98Sdjl { 17, NSS_DBNAM_AUTHATTR }, 174cb5caa98Sdjl { 18, NSS_DBNAM_PROJECT }, 175cb5caa98Sdjl { 19, NSS_DBNAM_SHADOW }, 176cb5caa98Sdjl { 20, NSS_DBNAM_AUDITUSER }, 177cb5caa98Sdjl { 21, NSS_DBNAM_TSOL_TP }, 178cb5caa98Sdjl { 22, NSS_DBNAM_TSOL_RH }, 179cb5caa98Sdjl /* pseudo-databases for the compat backend */ 180cb5caa98Sdjl { 23, NSS_DBNAM_PASSWD_COMPAT }, 181cb5caa98Sdjl { 24, NSS_DBNAM_GROUP_COMPAT }, 182cb5caa98Sdjl #define NSS_DBNAM_COMPAT_NUM_DB 5 183cb5caa98Sdjl /* 184cb5caa98Sdjl * pseudo-databases that use the switch policy that is 185cb5caa98Sdjl * configured for NSS_DBNAM_PASSWD_COMPAT 186cb5caa98Sdjl */ 187cb5caa98Sdjl { 25, NSS_DBNAM_PASSWD }, 188cb5caa98Sdjl { 26, NSS_DBNAM_SHADOW }, 189cb5caa98Sdjl { 27, NSS_DBNAM_AUDITUSER }, 190cb5caa98Sdjl { 28, NSS_DBNAM_USERATTR }, 191cb5caa98Sdjl /* 192cb5caa98Sdjl * pseudo-database that uses the switch policy that is 193cb5caa98Sdjl * configured for NSS_DBNAM_GROUP_COMPAT 194cb5caa98Sdjl */ 195cb5caa98Sdjl { 29, NSS_DBNAM_GROUP }, 196cb5caa98Sdjl { -1, NULL } 197cb5caa98Sdjl }; 198cb5caa98Sdjl 199cb5caa98Sdjl /* 200cb5caa98Sdjl * A special way to indicate all switch databases 201cb5caa98Sdjl */ 202cb5caa98Sdjl static nscd_cfg_id_t _nscd_cfg_nsw_alldb = { 203cb5caa98Sdjl NSCD_CFG_NSW_ALLDB_INDEX, 204cb5caa98Sdjl NSCD_CFG_NSW_ALLDB 205cb5caa98Sdjl }; 206cb5caa98Sdjl 207cb5caa98Sdjl /* 208cb5caa98Sdjl * data for preliminary checking of the log configuration 209cb5caa98Sdjl */ 210cb5caa98Sdjl static nscd_cfg_str_check_t NSCD_CFG_LOGFILE_PCHECK = 211cb5caa98Sdjl {nscd_false, PATH_MAX}; 212cb5caa98Sdjl static nscd_cfg_bitmap_check_t NSCD_CFG_LOGCOMP_PCHECK = 213cb5caa98Sdjl {NSCD_LOG_ALL}; 214cb5caa98Sdjl static nscd_cfg_bitmap_check_t NSCD_CFG_LOGLEVEL_PCHECK = 215cb5caa98Sdjl {NSCD_LOG_LEVEL_ALL}; 216cb5caa98Sdjl 217cb5caa98Sdjl /* data for preliminary checking of the switch configuration */ 218cb5caa98Sdjl static nscd_cfg_str_check_t NSCD_CFG_NSWCFGSTR_PCHECK = 219cb5caa98Sdjl {nscd_true, 128}; 220cb5caa98Sdjl 221cb5caa98Sdjl /* 222cb5caa98Sdjl * macros for defining the static param table 223cb5caa98Sdjl */ 224cb5caa98Sdjl #define NSCD_CFG_PGROUP_DESC(pn, type, pflag, gf, g_in_t, pcheck_p,\ 225cb5caa98Sdjl nfunc_name, vfunc_name) \ 226cb5caa98Sdjl { \ 227cb5caa98Sdjl {-1, pn}, type, (NSCD_CFG_PFLAG_GROUP | pflag), \ 228cb5caa98Sdjl 0, 0, 0,\ 229cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 2300dfdd7f3Smichen pcheck_p, nfunc_name, vfunc_name \ 231cb5caa98Sdjl } 232cb5caa98Sdjl 233cb5caa98Sdjl #define NSCD_CFG_PARAM_DESC(pn, type, pflag, pf, p_in_t, \ 234cb5caa98Sdjl gf, g_in_t, pcheck_p, nfunc_name, vfunc_name) \ 235cb5caa98Sdjl { \ 236cb5caa98Sdjl {-1, pn}, type, pflag, \ 237cb5caa98Sdjl NSCD_SIZEOF(p_in_t, pf), offsetof(p_in_t, pf), -1, \ 238cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 2390dfdd7f3Smichen pcheck_p, nfunc_name, vfunc_name \ 240cb5caa98Sdjl } 241cb5caa98Sdjl 242cb5caa98Sdjl #define NSCD_CFG_PGROUP_DESC_NULL \ 243cb5caa98Sdjl { \ 244cb5caa98Sdjl {-1, NULL}, -1, NSCD_CFG_PFLAG_GROUP, \ 245cb5caa98Sdjl 0, 0, 0, \ 246cb5caa98Sdjl 0, 0, 0, \ 2470dfdd7f3Smichen NULL, NULL, NULL \ 248cb5caa98Sdjl } 2490dfdd7f3Smichen 2500dfdd7f3Smichen /* nscd internal cfg_*_notify() cfg_*_verify() and cfg_*_get_stat() */ 2510dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_log_notify(); 2520dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_log_verify(); 2530dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_frontend_notify(); 2540dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_frontend_verify(); 2550dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_selfcred_notify(); 2560dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_selfcred_verify(); 2570dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_switch_notify(); 2580dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_switch_verify(); 2590dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_cache_notify(); 2600dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_cache_verify(); 2610dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_log_get_stat(); 2620dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_switch_get_stat(); 2630dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_cache_get_stat(); 2640dfdd7f3Smichen 2650dfdd7f3Smichen /* 2660dfdd7f3Smichen * the following macros are used to indicate a parameter's 2670dfdd7f3Smichen * notify/verify/get_stat functions are the same as those 2680dfdd7f3Smichen * of the group 2690dfdd7f3Smichen */ 2700dfdd7f3Smichen #define NSCD_CFG_FUNC_NOTIFY_AS_GROUP ((nscd_cfg_func_notify_t)-1) 2710dfdd7f3Smichen #define NSCD_CFG_FUNC_VERIFY_AS_GROUP ((nscd_cfg_func_verify_t)-1) 2720dfdd7f3Smichen #define NSCD_CFG_FUNC_GET_STAT_AS_GROUP ((nscd_cfg_func_get_stat_t)-1) 273cb5caa98Sdjl 274cb5caa98Sdjl /* 275cb5caa98Sdjl * the static config parameter description table 276cb5caa98Sdjl */ 277cb5caa98Sdjl static nscd_cfg_param_desc_t _nscd_cfg_param_desc[] = { 278cb5caa98Sdjl 279cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 280cb5caa98Sdjl "param-group-global-log", 281cb5caa98Sdjl NSCD_CFG_DATA_NONE, 282cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 283cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 284cb5caa98Sdjl log, 285cb5caa98Sdjl nscd_cfg_global_data_t, 286cb5caa98Sdjl NULL, 2870dfdd7f3Smichen _nscd_cfg_log_notify, 2880dfdd7f3Smichen _nscd_cfg_log_verify), 289cb5caa98Sdjl 290cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 291cb5caa98Sdjl "logfile", 292cb5caa98Sdjl NSCD_CFG_DATA_STRING, 293cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL | 294cb5caa98Sdjl NSCD_CFG_PFLAG_VLEN_DATA, 295cb5caa98Sdjl logfile, 296cb5caa98Sdjl nscd_cfg_global_log_t, 297cb5caa98Sdjl log, 298cb5caa98Sdjl nscd_cfg_global_data_t, 299cb5caa98Sdjl &NSCD_CFG_LOGFILE_PCHECK, 3000dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 3010dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 302cb5caa98Sdjl 303cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 304cb5caa98Sdjl "debug-level", 305cb5caa98Sdjl NSCD_CFG_DATA_BITMAP, 306cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 307cb5caa98Sdjl debug_level, 308cb5caa98Sdjl nscd_cfg_global_log_t, 309cb5caa98Sdjl log, 310cb5caa98Sdjl nscd_cfg_global_data_t, 311cb5caa98Sdjl &NSCD_CFG_LOGLEVEL_PCHECK, 3120dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 3130dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 314cb5caa98Sdjl 315cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 316cb5caa98Sdjl "debug-components", 317cb5caa98Sdjl NSCD_CFG_DATA_BITMAP, 318cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 319cb5caa98Sdjl debug_comp, 320cb5caa98Sdjl nscd_cfg_global_log_t, 321cb5caa98Sdjl log, 322cb5caa98Sdjl nscd_cfg_global_data_t, 323cb5caa98Sdjl &NSCD_CFG_LOGCOMP_PCHECK, 3240dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 3250dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 326cb5caa98Sdjl 327cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 328cb5caa98Sdjl "param-group-global-frontend", 329cb5caa98Sdjl NSCD_CFG_DATA_NONE, 330cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 331cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 332cb5caa98Sdjl fe, 333cb5caa98Sdjl nscd_cfg_global_data_t, 334cb5caa98Sdjl NULL, 3350dfdd7f3Smichen _nscd_cfg_frontend_notify, 3360dfdd7f3Smichen _nscd_cfg_frontend_verify), 337cb5caa98Sdjl 338cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 339cb5caa98Sdjl "common-worker-threads", 340cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 341cb5caa98Sdjl NSCD_CFG_PFLAG_SEND_BIT_SELECTED | 342cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 343cb5caa98Sdjl common_worker_threads, 344cb5caa98Sdjl nscd_cfg_global_frontend_t, 345cb5caa98Sdjl fe, 346cb5caa98Sdjl nscd_cfg_global_data_t, 347cb5caa98Sdjl NULL, 3480dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 3490dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 350cb5caa98Sdjl 351cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 352cb5caa98Sdjl "cache-hit-threads", 353cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 354cb5caa98Sdjl NSCD_CFG_PFLAG_SEND_BIT_SELECTED | 355cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 356cb5caa98Sdjl cache_hit_threads, 357cb5caa98Sdjl nscd_cfg_global_frontend_t, 358cb5caa98Sdjl fe, 359cb5caa98Sdjl nscd_cfg_global_data_t, 360cb5caa98Sdjl NULL, 3610dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 3620dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 363cb5caa98Sdjl 364cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 365cb5caa98Sdjl "param-group-global-selfcred", 366cb5caa98Sdjl NSCD_CFG_DATA_NONE, 367cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 368cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 369cb5caa98Sdjl sc, 370cb5caa98Sdjl nscd_cfg_global_data_t, 371cb5caa98Sdjl NULL, 3720dfdd7f3Smichen _nscd_cfg_selfcred_notify, 3730dfdd7f3Smichen _nscd_cfg_selfcred_verify), 374cb5caa98Sdjl 375cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 376cb5caa98Sdjl "enable-selfcred", 377cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 378cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 379cb5caa98Sdjl enable_selfcred, 380cb5caa98Sdjl nscd_cfg_global_selfcred_t, 381cb5caa98Sdjl sc, 382cb5caa98Sdjl nscd_cfg_global_data_t, 383cb5caa98Sdjl NULL, 3840dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 3850dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 386cb5caa98Sdjl 387cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 388cb5caa98Sdjl "max-per-user-nscd", 389cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 390cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 391cb5caa98Sdjl max_per_user_nscd, 392cb5caa98Sdjl nscd_cfg_global_selfcred_t, 393cb5caa98Sdjl sc, 394cb5caa98Sdjl nscd_cfg_global_data_t, 395cb5caa98Sdjl NULL, 3960dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 3970dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 398cb5caa98Sdjl 399cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 400cb5caa98Sdjl "per-user-nscd-ttl", 401cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 402cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 403cb5caa98Sdjl per_user_nscd_ttl, 404cb5caa98Sdjl nscd_cfg_global_selfcred_t, 405cb5caa98Sdjl sc, 406cb5caa98Sdjl nscd_cfg_global_data_t, 407cb5caa98Sdjl NULL, 4080dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 4090dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 410cb5caa98Sdjl 411cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 412cb5caa98Sdjl "param-group-global-switch", 413cb5caa98Sdjl NSCD_CFG_DATA_NONE, 414cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 415cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 416cb5caa98Sdjl sw, 417cb5caa98Sdjl nscd_cfg_global_data_t, 418cb5caa98Sdjl NULL, 4190dfdd7f3Smichen _nscd_cfg_switch_notify, 4200dfdd7f3Smichen _nscd_cfg_switch_verify), 421cb5caa98Sdjl 422cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 423cb5caa98Sdjl "global-enable-lookup", 424cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 425cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 426cb5caa98Sdjl enable_lookup_g, 427cb5caa98Sdjl nscd_cfg_global_switch_t, 428cb5caa98Sdjl sw, 429cb5caa98Sdjl nscd_cfg_global_data_t, 430cb5caa98Sdjl NULL, 4310dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 4320dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 433cb5caa98Sdjl 434cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 435cb5caa98Sdjl "global-enable-loopback-checking", 436cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 437cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 438cb5caa98Sdjl enable_loopback_checking_g, 439cb5caa98Sdjl nscd_cfg_global_switch_t, 440cb5caa98Sdjl sw, 441cb5caa98Sdjl nscd_cfg_global_data_t, 442cb5caa98Sdjl NULL, 4430dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 4440dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 445cb5caa98Sdjl 446cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 447cb5caa98Sdjl "global-check-smf-state-interval", 448cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 449cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 450cb5caa98Sdjl check_smf_state_interval_g, 451cb5caa98Sdjl nscd_cfg_global_switch_t, 452cb5caa98Sdjl sw, 453cb5caa98Sdjl nscd_cfg_global_data_t, 454cb5caa98Sdjl NULL, 4550dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 4560dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 457cb5caa98Sdjl 458cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 459cb5caa98Sdjl "param-group-global-cache", 460cb5caa98Sdjl NSCD_CFG_DATA_NONE, 461cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 462cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SET_ALL_DB | 463cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 464cb5caa98Sdjl cache, 465cb5caa98Sdjl nscd_cfg_global_data_t, 466cb5caa98Sdjl NULL, 4670dfdd7f3Smichen _nscd_cfg_cache_notify, 4680dfdd7f3Smichen _nscd_cfg_cache_verify), 469cb5caa98Sdjl 470cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 471cb5caa98Sdjl "global-enable-cache", 472cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 473cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 474cb5caa98Sdjl enable, 475cb5caa98Sdjl nscd_cfg_global_cache_t, 476cb5caa98Sdjl cache, 477cb5caa98Sdjl nscd_cfg_global_data_t, 478cb5caa98Sdjl NULL, 4790dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 4800dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 481cb5caa98Sdjl 482cb5caa98Sdjl /* non-global config param from this point on */ 483cb5caa98Sdjl 484cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 485cb5caa98Sdjl "param-group-frontend", 486cb5caa98Sdjl NSCD_CFG_DATA_NONE, 487cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP, 488cb5caa98Sdjl fe, 489cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 490cb5caa98Sdjl NULL, 4910dfdd7f3Smichen _nscd_cfg_frontend_notify, 4920dfdd7f3Smichen _nscd_cfg_frontend_verify), 493cb5caa98Sdjl 494cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 495cb5caa98Sdjl "worker-thread-per-nsw-db", 496cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 497cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 498cb5caa98Sdjl worker_thread_per_nsw_db, 499cb5caa98Sdjl nscd_cfg_frontend_t, 500cb5caa98Sdjl fe, 501cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 502cb5caa98Sdjl NULL, 5030dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 5040dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 505cb5caa98Sdjl 506cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 507cb5caa98Sdjl "param-group-switch", 508cb5caa98Sdjl NSCD_CFG_DATA_NONE, 509cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 510cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 511cb5caa98Sdjl sw, 512cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 513cb5caa98Sdjl NULL, 5140dfdd7f3Smichen _nscd_cfg_switch_notify, 5150dfdd7f3Smichen _nscd_cfg_switch_verify), 516cb5caa98Sdjl 517cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 518cb5caa98Sdjl "nsw-config-string", 519cb5caa98Sdjl NSCD_CFG_DATA_STRING, 520cb5caa98Sdjl NSCD_CFG_PFLAG_VLEN_DATA | 521cb5caa98Sdjl NSCD_CFG_PFLAG_LINKED, 522cb5caa98Sdjl nsw_config_string, 523cb5caa98Sdjl nscd_cfg_switch_t, 524cb5caa98Sdjl sw, 525cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 526cb5caa98Sdjl &NSCD_CFG_NSWCFGSTR_PCHECK, 5270dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 5280dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 529cb5caa98Sdjl 530cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 531cb5caa98Sdjl "nsw-config-database", 532cb5caa98Sdjl NSCD_CFG_DATA_STRING, 533cb5caa98Sdjl NSCD_CFG_PFLAG_VLEN_DATA | 534cb5caa98Sdjl NSCD_CFG_PFLAG_HIDDEN, 535cb5caa98Sdjl nsw_config_db, 536cb5caa98Sdjl nscd_cfg_switch_t, 537cb5caa98Sdjl sw, 538cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 539cb5caa98Sdjl &NSCD_CFG_NSWCFGSTR_PCHECK, 5400dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 5410dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 542cb5caa98Sdjl 543cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 544cb5caa98Sdjl "enable-lookup", 545cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 546cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 547cb5caa98Sdjl enable_lookup, 548cb5caa98Sdjl nscd_cfg_switch_t, 549cb5caa98Sdjl sw, 550cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 551cb5caa98Sdjl NULL, 5520dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 5530dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 554cb5caa98Sdjl 555cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 556cb5caa98Sdjl "enable-loopback-checking", 557cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 558cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 559cb5caa98Sdjl enable_loopback_checking, 560cb5caa98Sdjl nscd_cfg_switch_t, 561cb5caa98Sdjl sw, 562cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 563cb5caa98Sdjl NULL, 5640dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 5650dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 566cb5caa98Sdjl 567cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 568cb5caa98Sdjl "max-nsw-state-per-db", 569cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 570cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 571cb5caa98Sdjl max_nsw_state_per_db, 572cb5caa98Sdjl nscd_cfg_switch_t, 573cb5caa98Sdjl sw, 574cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 575cb5caa98Sdjl NULL, 5760dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 5770dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 578cb5caa98Sdjl 579cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 580cb5caa98Sdjl "max-nsw-state-per-thread", 581cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 582cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 583cb5caa98Sdjl max_nsw_state_per_thread, 584cb5caa98Sdjl nscd_cfg_switch_t, 585cb5caa98Sdjl sw, 586cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 587cb5caa98Sdjl NULL, 5880dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 5890dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 590cb5caa98Sdjl 591cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 592cb5caa98Sdjl "max-getent-ctx-per-db", 593cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 594cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 595cb5caa98Sdjl max_getent_ctx_per_db, 596cb5caa98Sdjl nscd_cfg_switch_t, 597cb5caa98Sdjl sw, 598cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 599cb5caa98Sdjl NULL, 6000dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6010dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 602cb5caa98Sdjl 603cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 604cb5caa98Sdjl "param-group-cache", 605cb5caa98Sdjl NSCD_CFG_DATA_NONE, 606cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP, 607cb5caa98Sdjl cache, 608cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 609cb5caa98Sdjl NULL, 6100dfdd7f3Smichen _nscd_cfg_cache_notify, 6110dfdd7f3Smichen _nscd_cfg_cache_verify), 612cb5caa98Sdjl 613cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 614cb5caa98Sdjl "enable-cache", 615cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 616cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 617cb5caa98Sdjl enable, 618cb5caa98Sdjl nscd_cfg_cache_t, 619cb5caa98Sdjl cache, 620cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 621cb5caa98Sdjl NULL, 6220dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6230dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 624cb5caa98Sdjl 625cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 626cb5caa98Sdjl "enable-per-user-cache", 627cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 628cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 629cb5caa98Sdjl per_user, 630cb5caa98Sdjl nscd_cfg_cache_t, 631cb5caa98Sdjl cache, 632cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 633cb5caa98Sdjl NULL, 6340dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6350dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 636cb5caa98Sdjl 637cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 638cb5caa98Sdjl "avoid-nameservice", 639cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 640cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 641cb5caa98Sdjl avoid_ns, 642cb5caa98Sdjl nscd_cfg_cache_t, 643cb5caa98Sdjl cache, 644cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 645cb5caa98Sdjl NULL, 6460dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6470dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 648cb5caa98Sdjl 649cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 650cb5caa98Sdjl "check-files", 651cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 652cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 653cb5caa98Sdjl check_files, 654cb5caa98Sdjl nscd_cfg_cache_t, 655cb5caa98Sdjl cache, 656cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 657cb5caa98Sdjl NULL, 6580dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6590dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 660cb5caa98Sdjl 661cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 662cb5caa98Sdjl "check-file-interval", 663cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 664cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 665cb5caa98Sdjl check_interval, 666cb5caa98Sdjl nscd_cfg_cache_t, 667cb5caa98Sdjl cache, 668cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 669cb5caa98Sdjl NULL, 6700dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6710dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 672cb5caa98Sdjl 673cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 674cb5caa98Sdjl "positive-time-to-live", 675cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 676cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 677cb5caa98Sdjl pos_ttl, 678cb5caa98Sdjl nscd_cfg_cache_t, 679cb5caa98Sdjl cache, 680cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 681cb5caa98Sdjl NULL, 6820dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6830dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 684cb5caa98Sdjl 685cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 686cb5caa98Sdjl "negative-time-to-live", 687cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 688cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 689cb5caa98Sdjl neg_ttl, 690cb5caa98Sdjl nscd_cfg_cache_t, 691cb5caa98Sdjl cache, 692cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 693cb5caa98Sdjl NULL, 6940dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 6950dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 696cb5caa98Sdjl 697cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 698cb5caa98Sdjl "keep-hot-count", 699cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 700cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 701cb5caa98Sdjl keephot, 702cb5caa98Sdjl nscd_cfg_cache_t, 703cb5caa98Sdjl cache, 704cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 705cb5caa98Sdjl NULL, 7060dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 7070dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 708cb5caa98Sdjl 709cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 710cb5caa98Sdjl "hint-size", 711cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 712cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 713cb5caa98Sdjl hint_size, 714cb5caa98Sdjl nscd_cfg_cache_t, 715cb5caa98Sdjl cache, 716cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 717cb5caa98Sdjl NULL, 7180dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 7190dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 720cb5caa98Sdjl 721cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 722cb5caa98Sdjl "maximum-entries-allowed", 723cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 724cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 725cb5caa98Sdjl maxentries, 726cb5caa98Sdjl nscd_cfg_cache_t, 727cb5caa98Sdjl cache, 728cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 729cb5caa98Sdjl NULL, 7300dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 7310dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 732cb5caa98Sdjl 733cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 734cb5caa98Sdjl "suggested-size", 735cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 736cb5caa98Sdjl NSCD_CFG_PFLAG_OBSOLETE, 737cb5caa98Sdjl suggestedsize, 738cb5caa98Sdjl nscd_cfg_cache_t, 739cb5caa98Sdjl cache, 740cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 741cb5caa98Sdjl NULL, 7420dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 7430dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 744cb5caa98Sdjl 745cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 746cb5caa98Sdjl "old-data-ok", 747cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 748cb5caa98Sdjl NSCD_CFG_PFLAG_OBSOLETE, 749cb5caa98Sdjl old_data_ok, 750cb5caa98Sdjl nscd_cfg_cache_t, 751cb5caa98Sdjl cache, 752cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 753cb5caa98Sdjl NULL, 7540dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 7550dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 756cb5caa98Sdjl 757cb5caa98Sdjl NSCD_CFG_PGROUP_DESC_NULL 758cb5caa98Sdjl }; 759cb5caa98Sdjl 760cb5caa98Sdjl /* 761cb5caa98Sdjl * defaults for the global configuration 762cb5caa98Sdjl */ 763cb5caa98Sdjl static nscd_cfg_global_data_t nscd_cfg_global_default = { 764cb5caa98Sdjl 765cb5caa98Sdjl /* 766cb5caa98Sdjl * nscd_cfg_global_log_t 767cb5caa98Sdjl */ 768cb5caa98Sdjl { 769cb5caa98Sdjl 770cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_LOG, 771cb5caa98Sdjl NULL, 7720dfdd7f3Smichen NSCD_LOG_LEVEL_NONE, /* debug_level */ 773cb5caa98Sdjl NSCD_LOG_CACHE, /* debug_comp */ 774cb5caa98Sdjl 775cb5caa98Sdjl }, 776cb5caa98Sdjl 777cb5caa98Sdjl /* 778cb5caa98Sdjl * nscd_cfg_global_frontend_t 779cb5caa98Sdjl */ 780cb5caa98Sdjl { 781cb5caa98Sdjl 782cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_FRONTEND, 783e37190e5Smichen 100, /* common_worker_threads */ 784e37190e5Smichen 100, /* cache_hit_threads */ 785cb5caa98Sdjl 786cb5caa98Sdjl }, 787cb5caa98Sdjl 788cb5caa98Sdjl /* 789cb5caa98Sdjl * nscd_cfg_global_selfcred_t 790cb5caa98Sdjl */ 791cb5caa98Sdjl { 792cb5caa98Sdjl 793cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_SELFCRED, 794cb5caa98Sdjl nscd_true, /* enable_selfcred */ 795cb5caa98Sdjl 1000, /* max_per_user_nscd */ 796cb5caa98Sdjl 120, /* per_user_nscd_ttl: 120 seconds */ 797cb5caa98Sdjl 798cb5caa98Sdjl }, 799cb5caa98Sdjl 800cb5caa98Sdjl /* 801cb5caa98Sdjl * nscd_cfg_global_switch_t 802cb5caa98Sdjl */ 803cb5caa98Sdjl { 804cb5caa98Sdjl 805cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_SWITCH, 806cb5caa98Sdjl nscd_true, /* enable_lookup_g */ 807cb5caa98Sdjl nscd_false, /* enable_loopback_checking_g */ 808cb5caa98Sdjl 120, /* check_smf_state_interval_g */ 809cb5caa98Sdjl 810cb5caa98Sdjl }, 811cb5caa98Sdjl 812cb5caa98Sdjl /* 813cb5caa98Sdjl * nscd_cfg_global_cache_t 814cb5caa98Sdjl */ 815cb5caa98Sdjl NSCD_CFG_GLOBAL_CACHE_DEFAULTS 816cb5caa98Sdjl }; 817cb5caa98Sdjl 818cb5caa98Sdjl /* 819cb5caa98Sdjl * defaults for the per switch database configuration 820cb5caa98Sdjl */ 821cb5caa98Sdjl static nscd_cfg_nsw_db_data_t nscd_cfg_nsw_db_data_default = { 822cb5caa98Sdjl 823cb5caa98Sdjl /* 824cb5caa98Sdjl * nscd_cfg_frontend_t 825cb5caa98Sdjl */ 826cb5caa98Sdjl { 827cb5caa98Sdjl 828cb5caa98Sdjl NSCD_CFG_GROUP_INFO_FRONTEND, 829e37190e5Smichen 50, /* worker_thread_per_nsw_db */ 830cb5caa98Sdjl 831cb5caa98Sdjl }, 832cb5caa98Sdjl 833cb5caa98Sdjl /* 834cb5caa98Sdjl * nscd_cfg_switch_t 835cb5caa98Sdjl */ 836cb5caa98Sdjl { 837cb5caa98Sdjl 838cb5caa98Sdjl NSCD_CFG_GROUP_INFO_SWITCH, 839cb5caa98Sdjl "nis files", /* nsw_config_string */ 840cb5caa98Sdjl NULL, /* nsw_config_db */ 841cb5caa98Sdjl nscd_true, /* enable_lookup */ 842cb5caa98Sdjl nscd_false, /* enable_loopback_checking */ 843124771bbSmichen 288, /* max_nsw_state_per_db */ 844124771bbSmichen 32, /* max_nsw_state_per_thread */ 845124771bbSmichen 256, /* max_getent_ctx_per_db */ 846cb5caa98Sdjl 847cb5caa98Sdjl }, 848cb5caa98Sdjl 849cb5caa98Sdjl /* 850cb5caa98Sdjl * nscd_cfg_cache_t 851cb5caa98Sdjl */ 852cb5caa98Sdjl NSCD_CFG_CACHE_DEFAULTS 853cb5caa98Sdjl }; 854cb5caa98Sdjl 855cb5caa98Sdjl /* 856cb5caa98Sdjl * macros for defining the database specific defaults 857cb5caa98Sdjl */ 858cb5caa98Sdjl #define NSCD_CFG_DB_DEFAULT_PARAM(db, gf, pf, gt, defaddr, deflen) \ 859cb5caa98Sdjl { \ 860cb5caa98Sdjl db, offsetof(nscd_cfg_nsw_db_data_t, gf), \ 861cb5caa98Sdjl offsetof(gt, pf), defaddr, deflen \ 862cb5caa98Sdjl } 863cb5caa98Sdjl 864cb5caa98Sdjl #define NSCD_CFG_DB_DEFAULT_GROUP(db, gf, defaddr, deflen) \ 865cb5caa98Sdjl { \ 866cb5caa98Sdjl db, offsetof(nscd_cfg_nsw_db_data_t, gf), \ 867cb5caa98Sdjl 0, defaddr, deflen \ 868cb5caa98Sdjl } 869cb5caa98Sdjl 870cb5caa98Sdjl #define NSCD_CFG_DB_DEFAULT_NULL \ 871cb5caa98Sdjl { \ 872cb5caa98Sdjl NULL, 0, 0, NULL, 0 \ 873cb5caa98Sdjl } 874cb5caa98Sdjl 875cb5caa98Sdjl /* 876cb5caa98Sdjl * shadow, user_attr, and audit_user use the same switch policy 877cb5caa98Sdjl * as that of passwd. exec_attr use that of prof_attr. 878cb5caa98Sdjl */ 879cb5caa98Sdjl static char *nscd_cfg_shadow_cfg_db = NSS_DBNAM_PASSWD; 880cb5caa98Sdjl static char *nscd_cfg_userattr_cfg_db = NSS_DBNAM_PASSWD; 881cb5caa98Sdjl static char *nscd_cfg_auuser_cfg_db = NSS_DBNAM_PASSWD; 882cb5caa98Sdjl static char *nscd_cfg_execattr_cfg_db = NSS_DBNAM_PROFATTR; 883cb5caa98Sdjl 884cb5caa98Sdjl /* 885cb5caa98Sdjl * default switch policy for pseudo-databases passwd_compat and 886cb5caa98Sdjl * and group_compa is "nis" 887cb5caa98Sdjl */ 888cb5caa98Sdjl static char *nscd_cfg_def_passwd_compat = NSS_DEFCONF_PASSWD_COMPAT; 889cb5caa98Sdjl static char *nscd_cfg_def_group_compat = NSS_DEFCONF_GROUP_COMPAT; 890cb5caa98Sdjl 891cb5caa98Sdjl static nscd_cfg_nsw_spc_default_t nscd_cfg_passwd_cfg_link = 892cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 893cb5caa98Sdjl NSS_DBNAM_PASSWD, 894cb5caa98Sdjl sw, 895cb5caa98Sdjl nsw_config_string, 896cb5caa98Sdjl nscd_cfg_switch_t, 897cb5caa98Sdjl NULL, 898cb5caa98Sdjl NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string)); 899cb5caa98Sdjl 900cb5caa98Sdjl static nscd_cfg_nsw_spc_default_t nscd_cfg_profattr_cfg_link = 901cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 902cb5caa98Sdjl NSS_DBNAM_PROFATTR, 903cb5caa98Sdjl sw, 904cb5caa98Sdjl nsw_config_string, 905cb5caa98Sdjl nscd_cfg_switch_t, 906cb5caa98Sdjl NULL, 907cb5caa98Sdjl NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string)); 908cb5caa98Sdjl 909cb5caa98Sdjl 910cb5caa98Sdjl /* 911cb5caa98Sdjl * switch database specific defaults 912cb5caa98Sdjl */ 913cb5caa98Sdjl nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_spc_default[] = { 914cb5caa98Sdjl 915cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 916cb5caa98Sdjl NSS_DBNAM_SHADOW, 917cb5caa98Sdjl sw, 918cb5caa98Sdjl nsw_config_db, 919cb5caa98Sdjl nscd_cfg_switch_t, 920cb5caa98Sdjl &nscd_cfg_shadow_cfg_db, 921cb5caa98Sdjl sizeof (nscd_cfg_shadow_cfg_db)), 922cb5caa98Sdjl 923cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 924cb5caa98Sdjl NSS_DBNAM_USERATTR, 925cb5caa98Sdjl sw, 926cb5caa98Sdjl nsw_config_db, 927cb5caa98Sdjl nscd_cfg_switch_t, 928cb5caa98Sdjl &nscd_cfg_userattr_cfg_db, 929cb5caa98Sdjl sizeof (nscd_cfg_userattr_cfg_db)), 930cb5caa98Sdjl 931cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 932cb5caa98Sdjl NSS_DBNAM_AUDITUSER, 933cb5caa98Sdjl sw, 934cb5caa98Sdjl nsw_config_db, 935cb5caa98Sdjl nscd_cfg_switch_t, 936cb5caa98Sdjl &nscd_cfg_auuser_cfg_db, 937cb5caa98Sdjl sizeof (nscd_cfg_auuser_cfg_db)), 938cb5caa98Sdjl 939cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 940cb5caa98Sdjl NSS_DBNAM_EXECATTR, 941cb5caa98Sdjl sw, 942cb5caa98Sdjl nsw_config_db, 943cb5caa98Sdjl nscd_cfg_switch_t, 944cb5caa98Sdjl &nscd_cfg_execattr_cfg_db, 945cb5caa98Sdjl sizeof (nscd_cfg_execattr_cfg_db)), 946cb5caa98Sdjl 947cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 948cb5caa98Sdjl NSS_DBNAM_PASSWD_COMPAT, 949cb5caa98Sdjl sw, 950cb5caa98Sdjl nsw_config_string, 951cb5caa98Sdjl nscd_cfg_switch_t, 952cb5caa98Sdjl &nscd_cfg_def_passwd_compat, 953cb5caa98Sdjl sizeof (nscd_cfg_def_passwd_compat)), 954cb5caa98Sdjl 955cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 956cb5caa98Sdjl NSS_DBNAM_GROUP_COMPAT, 957cb5caa98Sdjl sw, 958cb5caa98Sdjl nsw_config_string, 959cb5caa98Sdjl nscd_cfg_switch_t, 960cb5caa98Sdjl &nscd_cfg_def_group_compat, 961cb5caa98Sdjl sizeof (nscd_cfg_def_group_compat)), 962cb5caa98Sdjl 963cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_NULL 964cb5caa98Sdjl }; 965cb5caa98Sdjl 966cb5caa98Sdjl /* 967cb5caa98Sdjl * switch database specific defaults that are linked to 968cb5caa98Sdjl * those of other databases 969cb5caa98Sdjl */ 970cb5caa98Sdjl nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_link_default[] = { 971cb5caa98Sdjl 972cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 973cb5caa98Sdjl NSS_DBNAM_SHADOW, 974cb5caa98Sdjl sw, 975cb5caa98Sdjl nsw_config_string, 976cb5caa98Sdjl nscd_cfg_switch_t, 977cb5caa98Sdjl &nscd_cfg_passwd_cfg_link, 978cb5caa98Sdjl 0), 979cb5caa98Sdjl 980cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 981cb5caa98Sdjl NSS_DBNAM_USERATTR, 982cb5caa98Sdjl sw, 983cb5caa98Sdjl nsw_config_string, 984cb5caa98Sdjl nscd_cfg_switch_t, 985cb5caa98Sdjl &nscd_cfg_passwd_cfg_link, 986cb5caa98Sdjl 0), 987cb5caa98Sdjl 988cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 989cb5caa98Sdjl NSS_DBNAM_AUDITUSER, 990cb5caa98Sdjl sw, 991cb5caa98Sdjl nsw_config_string, 992cb5caa98Sdjl nscd_cfg_switch_t, 993cb5caa98Sdjl &nscd_cfg_passwd_cfg_link, 994cb5caa98Sdjl 0), 995cb5caa98Sdjl 996cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 997cb5caa98Sdjl NSS_DBNAM_EXECATTR, 998cb5caa98Sdjl sw, 999cb5caa98Sdjl nsw_config_string, 1000cb5caa98Sdjl nscd_cfg_switch_t, 1001cb5caa98Sdjl &nscd_cfg_profattr_cfg_link, 1002cb5caa98Sdjl 0), 1003cb5caa98Sdjl 1004cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_NULL 1005cb5caa98Sdjl }; 1006cb5caa98Sdjl 1007cb5caa98Sdjl /* 1008cb5caa98Sdjl * macros for defining the static stats table 1009cb5caa98Sdjl */ 1010cb5caa98Sdjl #define NSCD_CFG_SGROUP_DESC(sn, type, sflag, gi, \ 1011cb5caa98Sdjl gf, g_in_t, gsfunc_name) \ 1012cb5caa98Sdjl { \ 1013cb5caa98Sdjl {-1, sn}, type, NSCD_CFG_SFLAG_GROUP | sflag, gi, \ 1014cb5caa98Sdjl 0, 0, 0,\ 1015cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 10160dfdd7f3Smichen gsfunc_name \ 1017cb5caa98Sdjl } 1018cb5caa98Sdjl 1019cb5caa98Sdjl #define NSCD_CFG_STAT_DESC(sn, type, sflag, sf, s_in_t, \ 1020cb5caa98Sdjl gf, g_in_t, gsfunc_name) \ 1021cb5caa98Sdjl { \ 1022cb5caa98Sdjl {-1, sn}, type, sflag, NSCD_CFG_GROUP_INFO_NULL, \ 1023cb5caa98Sdjl NSCD_SIZEOF(s_in_t, sf), offsetof(s_in_t, sf), -1, \ 1024cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 10250dfdd7f3Smichen gsfunc_name \ 1026cb5caa98Sdjl } 1027cb5caa98Sdjl 1028cb5caa98Sdjl #define NSCD_CFG_SGROUP_DESC_NULL \ 1029cb5caa98Sdjl { \ 1030cb5caa98Sdjl {-1, NULL}, -1, NSCD_CFG_SFLAG_GROUP, NULL, \ 1031cb5caa98Sdjl 0, 0, 0, \ 1032cb5caa98Sdjl 0, 0, 0, \ 10330dfdd7f3Smichen NULL \ 1034cb5caa98Sdjl } 1035cb5caa98Sdjl 1036cb5caa98Sdjl /* 1037cb5caa98Sdjl * the static statistics description table 1038cb5caa98Sdjl */ 1039cb5caa98Sdjl static nscd_cfg_stat_desc_t _nscd_cfg_stat_desc[] = { 1040cb5caa98Sdjl 1041cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1042cb5caa98Sdjl "stat-group-global-log", 1043cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1044cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1045cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_GLOBAL_LOG, 1046cb5caa98Sdjl log, 1047cb5caa98Sdjl nscd_cfg_stat_global_data_t, 10480dfdd7f3Smichen _nscd_cfg_log_get_stat), 1049cb5caa98Sdjl 1050cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1051cb5caa98Sdjl "entries-logged", 1052cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1053cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1054cb5caa98Sdjl entries_logged, 1055cb5caa98Sdjl nscd_cfg_stat_global_log_t, 1056cb5caa98Sdjl log, 1057cb5caa98Sdjl nscd_cfg_stat_global_data_t, 10580dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1059cb5caa98Sdjl 1060cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1061cb5caa98Sdjl "stat-group-global-switch", 1062cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1063cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1064cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_GLOBAL_SWITCH, 1065cb5caa98Sdjl sw, 1066cb5caa98Sdjl nscd_cfg_stat_global_data_t, 10670dfdd7f3Smichen _nscd_cfg_switch_get_stat), 1068cb5caa98Sdjl 1069cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1070cb5caa98Sdjl "global-lookup-request-received", 1071cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1072cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1073cb5caa98Sdjl lookup_request_received_g, 1074cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1075cb5caa98Sdjl sw, 1076cb5caa98Sdjl nscd_cfg_stat_global_data_t, 10770dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1078cb5caa98Sdjl 1079cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1080cb5caa98Sdjl "global-lookup-request-queued", 1081cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1082cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1083cb5caa98Sdjl lookup_request_queued_g, 1084cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1085cb5caa98Sdjl sw, 1086cb5caa98Sdjl nscd_cfg_stat_global_data_t, 10870dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1088cb5caa98Sdjl 1089cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1090cb5caa98Sdjl "global-lookup-request-in-progress", 1091cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1092cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1093cb5caa98Sdjl lookup_request_in_progress_g, 1094cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1095cb5caa98Sdjl sw, 1096cb5caa98Sdjl nscd_cfg_stat_global_data_t, 10970dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1098cb5caa98Sdjl 1099cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1100cb5caa98Sdjl "global-lookup-request-succeeded", 1101cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1102cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1103cb5caa98Sdjl lookup_request_succeeded_g, 1104cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1105cb5caa98Sdjl sw, 1106cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11070dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1108cb5caa98Sdjl 1109cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1110cb5caa98Sdjl "global-lookup-request-failed", 1111cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1112cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1113cb5caa98Sdjl lookup_request_failed_g, 1114cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1115cb5caa98Sdjl sw, 1116cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11170dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1118cb5caa98Sdjl 1119cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1120cb5caa98Sdjl "global-loopback-nsw-db-skipped", 1121cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1122cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1123cb5caa98Sdjl loopback_nsw_db_skipped_g, 1124cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1125cb5caa98Sdjl sw, 1126cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11270dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1128cb5caa98Sdjl 1129cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1130cb5caa98Sdjl "stat-group-global-cache", 1131cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1132cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1133cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_CACHE, 1134cb5caa98Sdjl cache, 1135cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11360dfdd7f3Smichen _nscd_cfg_cache_get_stat), 1137cb5caa98Sdjl 1138cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1139cb5caa98Sdjl "global-cache-hits-on-positive", 1140cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1141cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1142cb5caa98Sdjl pos_hits, 1143cb5caa98Sdjl nscd_cfg_stat_cache_t, 1144cb5caa98Sdjl cache, 1145cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11460dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1147cb5caa98Sdjl 1148cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1149cb5caa98Sdjl "global-cache-hits-on-negative", 1150cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1151cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1152cb5caa98Sdjl neg_hits, 1153cb5caa98Sdjl nscd_cfg_stat_cache_t, 1154cb5caa98Sdjl cache, 1155cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11560dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1157cb5caa98Sdjl 1158cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1159cb5caa98Sdjl "global-cache-misses-on-positive", 1160cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1161cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1162cb5caa98Sdjl pos_misses, 1163cb5caa98Sdjl nscd_cfg_stat_cache_t, 1164cb5caa98Sdjl cache, 1165cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11660dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1167cb5caa98Sdjl 1168cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1169cb5caa98Sdjl "global-cache-misses-on-negative", 1170cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1171cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1172cb5caa98Sdjl neg_misses, 1173cb5caa98Sdjl nscd_cfg_stat_cache_t, 1174cb5caa98Sdjl cache, 1175cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11760dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1177cb5caa98Sdjl 1178cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1179cb5caa98Sdjl "global-cache-queries-queued", 1180cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1181cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1182cb5caa98Sdjl wait_count, 1183cb5caa98Sdjl nscd_cfg_stat_cache_t, 1184cb5caa98Sdjl cache, 1185cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11860dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1187cb5caa98Sdjl 1188cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1189cb5caa98Sdjl "global-total-cache-entries", 1190cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1191cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1192cb5caa98Sdjl entries, 1193cb5caa98Sdjl nscd_cfg_stat_cache_t, 1194cb5caa98Sdjl cache, 1195cb5caa98Sdjl nscd_cfg_stat_global_data_t, 11960dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1197cb5caa98Sdjl 1198cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1199cb5caa98Sdjl "global-complete-cache-invalidations", 1200cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1201cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1202cb5caa98Sdjl invalidate_count, 1203cb5caa98Sdjl nscd_cfg_stat_cache_t, 1204cb5caa98Sdjl cache, 1205cb5caa98Sdjl nscd_cfg_stat_global_data_t, 12060dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1207cb5caa98Sdjl 1208cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1209cb5caa98Sdjl "global-cache-queries-dropped", 1210cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1211cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1212cb5caa98Sdjl drop_count, 1213cb5caa98Sdjl nscd_cfg_stat_cache_t, 1214cb5caa98Sdjl cache, 1215cb5caa98Sdjl nscd_cfg_stat_global_data_t, 12160dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1217cb5caa98Sdjl 1218cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1219cb5caa98Sdjl "global-cache-hit-rate", 1220cb5caa98Sdjl NSCD_CFG_DATA_PERCENT, 1221cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1222cb5caa98Sdjl hitrate, 1223cb5caa98Sdjl nscd_cfg_stat_cache_t, 1224cb5caa98Sdjl cache, 1225cb5caa98Sdjl nscd_cfg_stat_global_data_t, 12260dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1227cb5caa98Sdjl 1228cb5caa98Sdjl /* non-global stat from this point on */ 1229cb5caa98Sdjl 1230cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1231cb5caa98Sdjl "stat-group-switch", 1232cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1233cb5caa98Sdjl NSCD_CFG_SFLAG_GROUP, 1234cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_SWITCH, 1235cb5caa98Sdjl cache, 1236cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 12370dfdd7f3Smichen _nscd_cfg_switch_get_stat), 1238cb5caa98Sdjl 1239cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1240cb5caa98Sdjl "lookup-request-received", 1241cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1242cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1243cb5caa98Sdjl lookup_request_received, 1244cb5caa98Sdjl nscd_cfg_stat_switch_t, 1245cb5caa98Sdjl sw, 1246cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 12470dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1248cb5caa98Sdjl 1249cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1250cb5caa98Sdjl "lookup-request-queued", 1251cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1252cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1253cb5caa98Sdjl lookup_request_queued, 1254cb5caa98Sdjl nscd_cfg_stat_switch_t, 1255cb5caa98Sdjl sw, 1256cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 12570dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1258cb5caa98Sdjl 1259cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1260cb5caa98Sdjl "lookup-request-in-progress", 1261cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1262cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1263cb5caa98Sdjl lookup_request_in_progress, 1264cb5caa98Sdjl nscd_cfg_stat_switch_t, 1265cb5caa98Sdjl sw, 1266cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 12670dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1268cb5caa98Sdjl 1269cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1270cb5caa98Sdjl "lookup-request-succeeded", 1271cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1272cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1273cb5caa98Sdjl lookup_request_succeeded, 1274cb5caa98Sdjl nscd_cfg_stat_switch_t, 1275cb5caa98Sdjl sw, 1276cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 12770dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1278cb5caa98Sdjl 1279cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1280cb5caa98Sdjl "lookup-request-failed", 1281cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1282cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1283cb5caa98Sdjl lookup_request_failed, 1284cb5caa98Sdjl nscd_cfg_stat_switch_t, 1285cb5caa98Sdjl sw, 1286cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 12870dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1288cb5caa98Sdjl 1289cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1290cb5caa98Sdjl "loopback-nsw-db-skipped", 1291cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1292cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1293cb5caa98Sdjl loopback_nsw_db_skipped, 1294cb5caa98Sdjl nscd_cfg_stat_switch_t, 1295cb5caa98Sdjl sw, 1296cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 12970dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1298cb5caa98Sdjl 1299cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1300cb5caa98Sdjl "stat-group-cache", 1301cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1302cb5caa98Sdjl NSCD_CFG_SFLAG_GROUP, 1303cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_CACHE, 1304cb5caa98Sdjl cache, 1305cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13060dfdd7f3Smichen _nscd_cfg_cache_get_stat), 1307cb5caa98Sdjl 1308cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1309cb5caa98Sdjl "cache-hits-on-positive", 1310cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1311cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1312cb5caa98Sdjl pos_hits, 1313cb5caa98Sdjl nscd_cfg_stat_cache_t, 1314cb5caa98Sdjl cache, 1315cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13160dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1317cb5caa98Sdjl 1318cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1319cb5caa98Sdjl "cache-hits-on-negative", 1320cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1321cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1322cb5caa98Sdjl neg_hits, 1323cb5caa98Sdjl nscd_cfg_stat_cache_t, 1324cb5caa98Sdjl cache, 1325cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13260dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1327cb5caa98Sdjl 1328cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1329cb5caa98Sdjl "cache-misses-on-positive", 1330cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1331cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1332cb5caa98Sdjl pos_misses, 1333cb5caa98Sdjl nscd_cfg_stat_cache_t, 1334cb5caa98Sdjl cache, 1335cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13360dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1337cb5caa98Sdjl 1338cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1339cb5caa98Sdjl "cache-misses-on-negative", 1340cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1341cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1342cb5caa98Sdjl neg_misses, 1343cb5caa98Sdjl nscd_cfg_stat_cache_t, 1344cb5caa98Sdjl cache, 1345cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13460dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1347cb5caa98Sdjl 1348cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1349cb5caa98Sdjl "cache-queries-queued", 1350cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1351cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1352cb5caa98Sdjl wait_count, 1353cb5caa98Sdjl nscd_cfg_stat_cache_t, 1354cb5caa98Sdjl cache, 1355cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13560dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1357cb5caa98Sdjl 1358cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1359cb5caa98Sdjl "total-cache-entries", 1360cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1361cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1362cb5caa98Sdjl entries, 1363cb5caa98Sdjl nscd_cfg_stat_cache_t, 1364cb5caa98Sdjl cache, 1365cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13660dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1367cb5caa98Sdjl 1368cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1369cb5caa98Sdjl "complete-cache-invalidations", 1370cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1371cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1372cb5caa98Sdjl invalidate_count, 1373cb5caa98Sdjl nscd_cfg_stat_cache_t, 1374cb5caa98Sdjl cache, 1375cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13760dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1377cb5caa98Sdjl 1378cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1379cb5caa98Sdjl "cache-hit-rate", 1380cb5caa98Sdjl NSCD_CFG_DATA_PERCENT, 1381cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1382cb5caa98Sdjl hitrate, 1383cb5caa98Sdjl nscd_cfg_stat_cache_t, 1384cb5caa98Sdjl cache, 1385cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13860dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1387cb5caa98Sdjl 1388cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1389cb5caa98Sdjl "cache-queries-dropped", 1390cb5caa98Sdjl NSCD_CFG_DATA_PERCENT, 1391cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1392cb5caa98Sdjl drop_count, 1393cb5caa98Sdjl nscd_cfg_stat_cache_t, 1394cb5caa98Sdjl cache, 1395cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 13960dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1397cb5caa98Sdjl 1398cb5caa98Sdjl 1399cb5caa98Sdjl NSCD_CFG_SGROUP_DESC_NULL 1400cb5caa98Sdjl }; 1401cb5caa98Sdjl 1402cb5caa98Sdjl /* number of entries in the static tables */ 1403cb5caa98Sdjl 1404cb5caa98Sdjl int _nscd_cfg_num_nsw_src = 1405cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_src) / 1406cb5caa98Sdjl sizeof (_nscd_cfg_nsw_src[0]) - 1); 1407cb5caa98Sdjl 1408cb5caa98Sdjl int _nscd_cfg_num_smf_services = 1409cb5caa98Sdjl (sizeof (_nscd_cfg_smf_services) / 1410cb5caa98Sdjl sizeof (_nscd_cfg_smf_services[0]) - 1); 1411cb5caa98Sdjl 1412cb5caa98Sdjl /* number of supported nsw databases (including pseudo ones) */ 1413cb5caa98Sdjl int _nscd_cfg_num_nsw_db_all = 1414cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_db) / 1415cb5caa98Sdjl sizeof (_nscd_cfg_nsw_db[0]) - 1); 1416cb5caa98Sdjl 1417cb5caa98Sdjl /* number of supported nsw databases (not including pseudo ones) */ 1418cb5caa98Sdjl int _nscd_cfg_num_nsw_db = 1419cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_db) / 1420cb5caa98Sdjl sizeof (_nscd_cfg_nsw_db[0]) - 1) - 1421cb5caa98Sdjl NSS_DBNAM_COMPAT_NUM_DB; 1422cb5caa98Sdjl 1423cb5caa98Sdjl static int _nscd_cfg_num_param = 1424cb5caa98Sdjl (sizeof (_nscd_cfg_param_desc) / 1425cb5caa98Sdjl sizeof (_nscd_cfg_param_desc[0]) - 1); 1426cb5caa98Sdjl 1427cb5caa98Sdjl static int _nscd_cfg_num_stat = 1428cb5caa98Sdjl (sizeof (_nscd_cfg_stat_desc) / 1429cb5caa98Sdjl sizeof (_nscd_cfg_stat_desc[0]) - 1); 1430cb5caa98Sdjl 1431cb5caa98Sdjl int _nscd_cfg_num_nsw_default = 1432cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_spc_default) / 1433cb5caa98Sdjl sizeof (_nscd_cfg_nsw_spc_default[0]) - 1); 1434cb5caa98Sdjl 1435cb5caa98Sdjl int _nscd_cfg_num_link_default = 1436cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_link_default) / 1437cb5caa98Sdjl sizeof (_nscd_cfg_nsw_link_default[0]) - 1); 1438cb5caa98Sdjl 1439cb5caa98Sdjl #ifdef __cplusplus 1440cb5caa98Sdjl } 1441cb5caa98Sdjl #endif 1442cb5caa98Sdjl 1443cb5caa98Sdjl #endif /* _NSCD_CFGDEF_H */ 1444