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*0dfdd7f3Smichen * Copyright 2007 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" }, 125cb5caa98Sdjl { 4, "dns" }, 126cb5caa98Sdjl { 5, "compat" }, 127cb5caa98Sdjl { 6, "user" }, 128cb5caa98Sdjl { -1, NULL } 129cb5caa98Sdjl }; 130cb5caa98Sdjl 131cb5caa98Sdjl /* 132cb5caa98Sdjl * name service related smf service table 133cb5caa98Sdjl * (the order of the services should match the order of the source 134cb5caa98Sdjl * listed above, 0: files, 1: ldap, 2: nis, 3: nisplus. dns is 135cb5caa98Sdjl * not needed) 136cb5caa98Sdjl */ 137cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_smf_services[] = { 138cb5caa98Sdjl { 0, "svc:/system/name-service-cache:default"}, 139cb5caa98Sdjl { 1, "svc:/network/ldap/client:default" }, 140cb5caa98Sdjl { 2, "svc:/network/nis/client:default" }, 141ad0e80f7Smichen { 3, "svc:/network/rpc/bind:default" }, 142cb5caa98Sdjl { -1, NULL } 143cb5caa98Sdjl }; 144cb5caa98Sdjl 145cb5caa98Sdjl /* 146cb5caa98Sdjl * name service database table 147cb5caa98Sdjl */ 148cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_nsw_db[] = { 149cb5caa98Sdjl { 0, NSS_DBNAM_PASSWD }, 150cb5caa98Sdjl { 1, NSS_DBNAM_GROUP }, 151cb5caa98Sdjl { 2, NSS_DBNAM_HOSTS }, 152cb5caa98Sdjl { 3, NSS_DBNAM_IPNODES }, 153cb5caa98Sdjl { 4, NSS_DBNAM_EXECATTR }, 154cb5caa98Sdjl { 5, NSS_DBNAM_PROFATTR }, 155cb5caa98Sdjl { 6, NSS_DBNAM_USERATTR }, 156cb5caa98Sdjl { 7, NSS_DBNAM_NETWORKS }, 157cb5caa98Sdjl { 8, NSS_DBNAM_PROTOCOLS }, 158cb5caa98Sdjl { 9, NSS_DBNAM_RPC }, 159cb5caa98Sdjl { 10, NSS_DBNAM_ETHERS }, 160cb5caa98Sdjl { 11, NSS_DBNAM_NETMASKS }, 161cb5caa98Sdjl { 12, NSS_DBNAM_BOOTPARAMS }, 162cb5caa98Sdjl { 13, NSS_DBNAM_PUBLICKEY }, 163cb5caa98Sdjl { 14, NSS_DBNAM_NETGROUP }, 164cb5caa98Sdjl { 15, NSS_DBNAM_SERVICES }, 165cb5caa98Sdjl { 16, NSS_DBNAM_PRINTERS }, 166cb5caa98Sdjl { 17, NSS_DBNAM_AUTHATTR }, 167cb5caa98Sdjl { 18, NSS_DBNAM_PROJECT }, 168cb5caa98Sdjl { 19, NSS_DBNAM_SHADOW }, 169cb5caa98Sdjl { 20, NSS_DBNAM_AUDITUSER }, 170cb5caa98Sdjl { 21, NSS_DBNAM_TSOL_TP }, 171cb5caa98Sdjl { 22, NSS_DBNAM_TSOL_RH }, 172cb5caa98Sdjl /* pseudo-databases for the compat backend */ 173cb5caa98Sdjl { 23, NSS_DBNAM_PASSWD_COMPAT }, 174cb5caa98Sdjl { 24, NSS_DBNAM_GROUP_COMPAT }, 175cb5caa98Sdjl #define NSS_DBNAM_COMPAT_NUM_DB 5 176cb5caa98Sdjl /* 177cb5caa98Sdjl * pseudo-databases that use the switch policy that is 178cb5caa98Sdjl * configured for NSS_DBNAM_PASSWD_COMPAT 179cb5caa98Sdjl */ 180cb5caa98Sdjl { 25, NSS_DBNAM_PASSWD }, 181cb5caa98Sdjl { 26, NSS_DBNAM_SHADOW }, 182cb5caa98Sdjl { 27, NSS_DBNAM_AUDITUSER }, 183cb5caa98Sdjl { 28, NSS_DBNAM_USERATTR }, 184cb5caa98Sdjl /* 185cb5caa98Sdjl * pseudo-database that uses the switch policy that is 186cb5caa98Sdjl * configured for NSS_DBNAM_GROUP_COMPAT 187cb5caa98Sdjl */ 188cb5caa98Sdjl { 29, NSS_DBNAM_GROUP }, 189cb5caa98Sdjl { -1, NULL } 190cb5caa98Sdjl }; 191cb5caa98Sdjl 192cb5caa98Sdjl /* 193cb5caa98Sdjl * A special way to indicate all switch databases 194cb5caa98Sdjl */ 195cb5caa98Sdjl static nscd_cfg_id_t _nscd_cfg_nsw_alldb = { 196cb5caa98Sdjl NSCD_CFG_NSW_ALLDB_INDEX, 197cb5caa98Sdjl NSCD_CFG_NSW_ALLDB 198cb5caa98Sdjl }; 199cb5caa98Sdjl 200cb5caa98Sdjl /* 201cb5caa98Sdjl * data for preliminary checking of the log configuration 202cb5caa98Sdjl */ 203cb5caa98Sdjl static nscd_cfg_str_check_t NSCD_CFG_LOGFILE_PCHECK = 204cb5caa98Sdjl {nscd_false, PATH_MAX}; 205cb5caa98Sdjl static nscd_cfg_bitmap_check_t NSCD_CFG_LOGCOMP_PCHECK = 206cb5caa98Sdjl {NSCD_LOG_ALL}; 207cb5caa98Sdjl static nscd_cfg_bitmap_check_t NSCD_CFG_LOGLEVEL_PCHECK = 208cb5caa98Sdjl {NSCD_LOG_LEVEL_ALL}; 209cb5caa98Sdjl 210cb5caa98Sdjl /* data for preliminary checking of the switch configuration */ 211cb5caa98Sdjl static nscd_cfg_str_check_t NSCD_CFG_NSWCFGSTR_PCHECK = 212cb5caa98Sdjl {nscd_true, 128}; 213cb5caa98Sdjl 214cb5caa98Sdjl /* 215cb5caa98Sdjl * macros for defining the static param table 216cb5caa98Sdjl */ 217cb5caa98Sdjl #define NSCD_CFG_PGROUP_DESC(pn, type, pflag, gf, g_in_t, pcheck_p,\ 218cb5caa98Sdjl nfunc_name, vfunc_name) \ 219cb5caa98Sdjl { \ 220cb5caa98Sdjl {-1, pn}, type, (NSCD_CFG_PFLAG_GROUP | pflag), \ 221cb5caa98Sdjl 0, 0, 0,\ 222cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 223*0dfdd7f3Smichen pcheck_p, nfunc_name, vfunc_name \ 224cb5caa98Sdjl } 225cb5caa98Sdjl 226cb5caa98Sdjl #define NSCD_CFG_PARAM_DESC(pn, type, pflag, pf, p_in_t, \ 227cb5caa98Sdjl gf, g_in_t, pcheck_p, nfunc_name, vfunc_name) \ 228cb5caa98Sdjl { \ 229cb5caa98Sdjl {-1, pn}, type, pflag, \ 230cb5caa98Sdjl NSCD_SIZEOF(p_in_t, pf), offsetof(p_in_t, pf), -1, \ 231cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 232*0dfdd7f3Smichen pcheck_p, nfunc_name, vfunc_name \ 233cb5caa98Sdjl } 234cb5caa98Sdjl 235cb5caa98Sdjl #define NSCD_CFG_PGROUP_DESC_NULL \ 236cb5caa98Sdjl { \ 237cb5caa98Sdjl {-1, NULL}, -1, NSCD_CFG_PFLAG_GROUP, \ 238cb5caa98Sdjl 0, 0, 0, \ 239cb5caa98Sdjl 0, 0, 0, \ 240*0dfdd7f3Smichen NULL, NULL, NULL \ 241cb5caa98Sdjl } 242*0dfdd7f3Smichen 243*0dfdd7f3Smichen /* nscd internal cfg_*_notify() cfg_*_verify() and cfg_*_get_stat() */ 244*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_log_notify(); 245*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_log_verify(); 246*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_frontend_notify(); 247*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_frontend_verify(); 248*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_selfcred_notify(); 249*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_selfcred_verify(); 250*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_switch_notify(); 251*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_switch_verify(); 252*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_cache_notify(); 253*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_cache_verify(); 254*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_log_get_stat(); 255*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_switch_get_stat(); 256*0dfdd7f3Smichen extern nscd_rc_t _nscd_cfg_cache_get_stat(); 257*0dfdd7f3Smichen 258*0dfdd7f3Smichen /* 259*0dfdd7f3Smichen * the following macros are used to indicate a parameter's 260*0dfdd7f3Smichen * notify/verify/get_stat functions are the same as those 261*0dfdd7f3Smichen * of the group 262*0dfdd7f3Smichen */ 263*0dfdd7f3Smichen #define NSCD_CFG_FUNC_NOTIFY_AS_GROUP ((nscd_cfg_func_notify_t)-1) 264*0dfdd7f3Smichen #define NSCD_CFG_FUNC_VERIFY_AS_GROUP ((nscd_cfg_func_verify_t)-1) 265*0dfdd7f3Smichen #define NSCD_CFG_FUNC_GET_STAT_AS_GROUP ((nscd_cfg_func_get_stat_t)-1) 266cb5caa98Sdjl 267cb5caa98Sdjl /* 268cb5caa98Sdjl * the static config parameter description table 269cb5caa98Sdjl */ 270cb5caa98Sdjl static nscd_cfg_param_desc_t _nscd_cfg_param_desc[] = { 271cb5caa98Sdjl 272cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 273cb5caa98Sdjl "param-group-global-log", 274cb5caa98Sdjl NSCD_CFG_DATA_NONE, 275cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 276cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 277cb5caa98Sdjl log, 278cb5caa98Sdjl nscd_cfg_global_data_t, 279cb5caa98Sdjl NULL, 280*0dfdd7f3Smichen _nscd_cfg_log_notify, 281*0dfdd7f3Smichen _nscd_cfg_log_verify), 282cb5caa98Sdjl 283cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 284cb5caa98Sdjl "logfile", 285cb5caa98Sdjl NSCD_CFG_DATA_STRING, 286cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL | 287cb5caa98Sdjl NSCD_CFG_PFLAG_VLEN_DATA, 288cb5caa98Sdjl logfile, 289cb5caa98Sdjl nscd_cfg_global_log_t, 290cb5caa98Sdjl log, 291cb5caa98Sdjl nscd_cfg_global_data_t, 292cb5caa98Sdjl &NSCD_CFG_LOGFILE_PCHECK, 293*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 294*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 295cb5caa98Sdjl 296cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 297cb5caa98Sdjl "debug-level", 298cb5caa98Sdjl NSCD_CFG_DATA_BITMAP, 299cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 300cb5caa98Sdjl debug_level, 301cb5caa98Sdjl nscd_cfg_global_log_t, 302cb5caa98Sdjl log, 303cb5caa98Sdjl nscd_cfg_global_data_t, 304cb5caa98Sdjl &NSCD_CFG_LOGLEVEL_PCHECK, 305*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 306*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 307cb5caa98Sdjl 308cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 309cb5caa98Sdjl "debug-components", 310cb5caa98Sdjl NSCD_CFG_DATA_BITMAP, 311cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 312cb5caa98Sdjl debug_comp, 313cb5caa98Sdjl nscd_cfg_global_log_t, 314cb5caa98Sdjl log, 315cb5caa98Sdjl nscd_cfg_global_data_t, 316cb5caa98Sdjl &NSCD_CFG_LOGCOMP_PCHECK, 317*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 318*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 319cb5caa98Sdjl 320cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 321cb5caa98Sdjl "param-group-global-frontend", 322cb5caa98Sdjl NSCD_CFG_DATA_NONE, 323cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 324cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 325cb5caa98Sdjl fe, 326cb5caa98Sdjl nscd_cfg_global_data_t, 327cb5caa98Sdjl NULL, 328*0dfdd7f3Smichen _nscd_cfg_frontend_notify, 329*0dfdd7f3Smichen _nscd_cfg_frontend_verify), 330cb5caa98Sdjl 331cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 332cb5caa98Sdjl "common-worker-threads", 333cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 334cb5caa98Sdjl NSCD_CFG_PFLAG_SEND_BIT_SELECTED | 335cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 336cb5caa98Sdjl common_worker_threads, 337cb5caa98Sdjl nscd_cfg_global_frontend_t, 338cb5caa98Sdjl fe, 339cb5caa98Sdjl nscd_cfg_global_data_t, 340cb5caa98Sdjl NULL, 341*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 342*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 343cb5caa98Sdjl 344cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 345cb5caa98Sdjl "cache-hit-threads", 346cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 347cb5caa98Sdjl NSCD_CFG_PFLAG_SEND_BIT_SELECTED | 348cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 349cb5caa98Sdjl cache_hit_threads, 350cb5caa98Sdjl nscd_cfg_global_frontend_t, 351cb5caa98Sdjl fe, 352cb5caa98Sdjl nscd_cfg_global_data_t, 353cb5caa98Sdjl NULL, 354*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 355*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 356cb5caa98Sdjl 357cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 358cb5caa98Sdjl "param-group-global-selfcred", 359cb5caa98Sdjl NSCD_CFG_DATA_NONE, 360cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 361cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 362cb5caa98Sdjl sc, 363cb5caa98Sdjl nscd_cfg_global_data_t, 364cb5caa98Sdjl NULL, 365*0dfdd7f3Smichen _nscd_cfg_selfcred_notify, 366*0dfdd7f3Smichen _nscd_cfg_selfcred_verify), 367cb5caa98Sdjl 368cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 369cb5caa98Sdjl "enable-selfcred", 370cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 371cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 372cb5caa98Sdjl enable_selfcred, 373cb5caa98Sdjl nscd_cfg_global_selfcred_t, 374cb5caa98Sdjl sc, 375cb5caa98Sdjl nscd_cfg_global_data_t, 376cb5caa98Sdjl NULL, 377*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 378*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 379cb5caa98Sdjl 380cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 381cb5caa98Sdjl "max-per-user-nscd", 382cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 383cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 384cb5caa98Sdjl max_per_user_nscd, 385cb5caa98Sdjl nscd_cfg_global_selfcred_t, 386cb5caa98Sdjl sc, 387cb5caa98Sdjl nscd_cfg_global_data_t, 388cb5caa98Sdjl NULL, 389*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 390*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 391cb5caa98Sdjl 392cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 393cb5caa98Sdjl "per-user-nscd-ttl", 394cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 395cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 396cb5caa98Sdjl per_user_nscd_ttl, 397cb5caa98Sdjl nscd_cfg_global_selfcred_t, 398cb5caa98Sdjl sc, 399cb5caa98Sdjl nscd_cfg_global_data_t, 400cb5caa98Sdjl NULL, 401*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 402*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 403cb5caa98Sdjl 404cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 405cb5caa98Sdjl "param-group-global-switch", 406cb5caa98Sdjl NSCD_CFG_DATA_NONE, 407cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 408cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 409cb5caa98Sdjl sw, 410cb5caa98Sdjl nscd_cfg_global_data_t, 411cb5caa98Sdjl NULL, 412*0dfdd7f3Smichen _nscd_cfg_switch_notify, 413*0dfdd7f3Smichen _nscd_cfg_switch_verify), 414cb5caa98Sdjl 415cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 416cb5caa98Sdjl "global-enable-lookup", 417cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 418cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 419cb5caa98Sdjl enable_lookup_g, 420cb5caa98Sdjl nscd_cfg_global_switch_t, 421cb5caa98Sdjl sw, 422cb5caa98Sdjl nscd_cfg_global_data_t, 423cb5caa98Sdjl NULL, 424*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 425*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 426cb5caa98Sdjl 427cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 428cb5caa98Sdjl "global-enable-loopback-checking", 429cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 430cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 431cb5caa98Sdjl enable_loopback_checking_g, 432cb5caa98Sdjl nscd_cfg_global_switch_t, 433cb5caa98Sdjl sw, 434cb5caa98Sdjl nscd_cfg_global_data_t, 435cb5caa98Sdjl NULL, 436*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 437*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 438cb5caa98Sdjl 439cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 440cb5caa98Sdjl "global-check-smf-state-interval", 441cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 442cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 443cb5caa98Sdjl check_smf_state_interval_g, 444cb5caa98Sdjl nscd_cfg_global_switch_t, 445cb5caa98Sdjl sw, 446cb5caa98Sdjl nscd_cfg_global_data_t, 447cb5caa98Sdjl NULL, 448*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 449*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 450cb5caa98Sdjl 451cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 452cb5caa98Sdjl "param-group-global-cache", 453cb5caa98Sdjl NSCD_CFG_DATA_NONE, 454cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 455cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SET_ALL_DB | 456cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 457cb5caa98Sdjl cache, 458cb5caa98Sdjl nscd_cfg_global_data_t, 459cb5caa98Sdjl NULL, 460*0dfdd7f3Smichen _nscd_cfg_cache_notify, 461*0dfdd7f3Smichen _nscd_cfg_cache_verify), 462cb5caa98Sdjl 463cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 464cb5caa98Sdjl "global-enable-cache", 465cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 466cb5caa98Sdjl NSCD_CFG_PFLAG_GLOBAL, 467cb5caa98Sdjl enable, 468cb5caa98Sdjl nscd_cfg_global_cache_t, 469cb5caa98Sdjl cache, 470cb5caa98Sdjl nscd_cfg_global_data_t, 471cb5caa98Sdjl NULL, 472*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 473*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 474cb5caa98Sdjl 475cb5caa98Sdjl /* non-global config param from this point on */ 476cb5caa98Sdjl 477cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 478cb5caa98Sdjl "param-group-frontend", 479cb5caa98Sdjl NSCD_CFG_DATA_NONE, 480cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP, 481cb5caa98Sdjl fe, 482cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 483cb5caa98Sdjl NULL, 484*0dfdd7f3Smichen _nscd_cfg_frontend_notify, 485*0dfdd7f3Smichen _nscd_cfg_frontend_verify), 486cb5caa98Sdjl 487cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 488cb5caa98Sdjl "worker-thread-per-nsw-db", 489cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 490cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 491cb5caa98Sdjl worker_thread_per_nsw_db, 492cb5caa98Sdjl nscd_cfg_frontend_t, 493cb5caa98Sdjl fe, 494cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 495cb5caa98Sdjl NULL, 496*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 497*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 498cb5caa98Sdjl 499cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 500cb5caa98Sdjl "param-group-switch", 501cb5caa98Sdjl NSCD_CFG_DATA_NONE, 502cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP | 503cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 504cb5caa98Sdjl sw, 505cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 506cb5caa98Sdjl NULL, 507*0dfdd7f3Smichen _nscd_cfg_switch_notify, 508*0dfdd7f3Smichen _nscd_cfg_switch_verify), 509cb5caa98Sdjl 510cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 511cb5caa98Sdjl "nsw-config-string", 512cb5caa98Sdjl NSCD_CFG_DATA_STRING, 513cb5caa98Sdjl NSCD_CFG_PFLAG_VLEN_DATA | 514cb5caa98Sdjl NSCD_CFG_PFLAG_LINKED, 515cb5caa98Sdjl nsw_config_string, 516cb5caa98Sdjl nscd_cfg_switch_t, 517cb5caa98Sdjl sw, 518cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 519cb5caa98Sdjl &NSCD_CFG_NSWCFGSTR_PCHECK, 520*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 521*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 522cb5caa98Sdjl 523cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 524cb5caa98Sdjl "nsw-config-database", 525cb5caa98Sdjl NSCD_CFG_DATA_STRING, 526cb5caa98Sdjl NSCD_CFG_PFLAG_VLEN_DATA | 527cb5caa98Sdjl NSCD_CFG_PFLAG_HIDDEN, 528cb5caa98Sdjl nsw_config_db, 529cb5caa98Sdjl nscd_cfg_switch_t, 530cb5caa98Sdjl sw, 531cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 532cb5caa98Sdjl &NSCD_CFG_NSWCFGSTR_PCHECK, 533*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 534*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 535cb5caa98Sdjl 536cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 537cb5caa98Sdjl "enable-lookup", 538cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 539cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 540cb5caa98Sdjl enable_lookup, 541cb5caa98Sdjl nscd_cfg_switch_t, 542cb5caa98Sdjl sw, 543cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 544cb5caa98Sdjl NULL, 545*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 546*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 547cb5caa98Sdjl 548cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 549cb5caa98Sdjl "enable-loopback-checking", 550cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 551cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 552cb5caa98Sdjl enable_loopback_checking, 553cb5caa98Sdjl nscd_cfg_switch_t, 554cb5caa98Sdjl sw, 555cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 556cb5caa98Sdjl NULL, 557*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 558*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 559cb5caa98Sdjl 560cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 561cb5caa98Sdjl "max-nsw-state-per-db", 562cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 563cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 564cb5caa98Sdjl max_nsw_state_per_db, 565cb5caa98Sdjl nscd_cfg_switch_t, 566cb5caa98Sdjl sw, 567cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 568cb5caa98Sdjl NULL, 569*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 570*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 571cb5caa98Sdjl 572cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 573cb5caa98Sdjl "max-nsw-state-per-thread", 574cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 575cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 576cb5caa98Sdjl max_nsw_state_per_thread, 577cb5caa98Sdjl nscd_cfg_switch_t, 578cb5caa98Sdjl sw, 579cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 580cb5caa98Sdjl NULL, 581*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 582*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 583cb5caa98Sdjl 584cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 585cb5caa98Sdjl "max-getent-ctx-per-db", 586cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 587cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 588cb5caa98Sdjl max_getent_ctx_per_db, 589cb5caa98Sdjl nscd_cfg_switch_t, 590cb5caa98Sdjl sw, 591cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 592cb5caa98Sdjl NULL, 593*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 594*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 595cb5caa98Sdjl 596cb5caa98Sdjl NSCD_CFG_PGROUP_DESC( 597cb5caa98Sdjl "param-group-cache", 598cb5caa98Sdjl NSCD_CFG_DATA_NONE, 599cb5caa98Sdjl NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP, 600cb5caa98Sdjl cache, 601cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 602cb5caa98Sdjl NULL, 603*0dfdd7f3Smichen _nscd_cfg_cache_notify, 604*0dfdd7f3Smichen _nscd_cfg_cache_verify), 605cb5caa98Sdjl 606cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 607cb5caa98Sdjl "enable-cache", 608cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 609cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 610cb5caa98Sdjl enable, 611cb5caa98Sdjl nscd_cfg_cache_t, 612cb5caa98Sdjl cache, 613cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 614cb5caa98Sdjl NULL, 615*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 616*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 617cb5caa98Sdjl 618cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 619cb5caa98Sdjl "enable-per-user-cache", 620cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 621cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 622cb5caa98Sdjl per_user, 623cb5caa98Sdjl nscd_cfg_cache_t, 624cb5caa98Sdjl cache, 625cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 626cb5caa98Sdjl NULL, 627*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 628*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 629cb5caa98Sdjl 630cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 631cb5caa98Sdjl "avoid-nameservice", 632cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 633cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 634cb5caa98Sdjl avoid_ns, 635cb5caa98Sdjl nscd_cfg_cache_t, 636cb5caa98Sdjl cache, 637cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 638cb5caa98Sdjl NULL, 639*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 640*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 641cb5caa98Sdjl 642cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 643cb5caa98Sdjl "check-files", 644cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 645cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 646cb5caa98Sdjl check_files, 647cb5caa98Sdjl nscd_cfg_cache_t, 648cb5caa98Sdjl cache, 649cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 650cb5caa98Sdjl NULL, 651*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 652*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 653cb5caa98Sdjl 654cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 655cb5caa98Sdjl "check-file-interval", 656cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 657cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 658cb5caa98Sdjl check_interval, 659cb5caa98Sdjl nscd_cfg_cache_t, 660cb5caa98Sdjl cache, 661cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 662cb5caa98Sdjl NULL, 663*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 664*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 665cb5caa98Sdjl 666cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 667cb5caa98Sdjl "positive-time-to-live", 668cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 669cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 670cb5caa98Sdjl pos_ttl, 671cb5caa98Sdjl nscd_cfg_cache_t, 672cb5caa98Sdjl cache, 673cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 674cb5caa98Sdjl NULL, 675*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 676*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 677cb5caa98Sdjl 678cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 679cb5caa98Sdjl "negative-time-to-live", 680cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 681cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 682cb5caa98Sdjl neg_ttl, 683cb5caa98Sdjl nscd_cfg_cache_t, 684cb5caa98Sdjl cache, 685cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 686cb5caa98Sdjl NULL, 687*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 688*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 689cb5caa98Sdjl 690cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 691cb5caa98Sdjl "keep-hot-count", 692cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 693cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 694cb5caa98Sdjl keephot, 695cb5caa98Sdjl nscd_cfg_cache_t, 696cb5caa98Sdjl cache, 697cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 698cb5caa98Sdjl NULL, 699*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 700*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 701cb5caa98Sdjl 702cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 703cb5caa98Sdjl "hint-size", 704cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 705cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 706cb5caa98Sdjl hint_size, 707cb5caa98Sdjl nscd_cfg_cache_t, 708cb5caa98Sdjl cache, 709cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 710cb5caa98Sdjl NULL, 711*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 712*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 713cb5caa98Sdjl 714cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 715cb5caa98Sdjl "maximum-entries-allowed", 716cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 717cb5caa98Sdjl NSCD_CFG_PFLAG_NONE, 718cb5caa98Sdjl maxentries, 719cb5caa98Sdjl nscd_cfg_cache_t, 720cb5caa98Sdjl cache, 721cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 722cb5caa98Sdjl NULL, 723*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 724*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 725cb5caa98Sdjl 726cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 727cb5caa98Sdjl "suggested-size", 728cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 729cb5caa98Sdjl NSCD_CFG_PFLAG_OBSOLETE, 730cb5caa98Sdjl suggestedsize, 731cb5caa98Sdjl nscd_cfg_cache_t, 732cb5caa98Sdjl cache, 733cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 734cb5caa98Sdjl NULL, 735*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 736*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 737cb5caa98Sdjl 738cb5caa98Sdjl NSCD_CFG_PARAM_DESC( 739cb5caa98Sdjl "old-data-ok", 740cb5caa98Sdjl NSCD_CFG_DATA_BOOLEAN, 741cb5caa98Sdjl NSCD_CFG_PFLAG_OBSOLETE, 742cb5caa98Sdjl old_data_ok, 743cb5caa98Sdjl nscd_cfg_cache_t, 744cb5caa98Sdjl cache, 745cb5caa98Sdjl nscd_cfg_nsw_db_data_t, 746cb5caa98Sdjl NULL, 747*0dfdd7f3Smichen NSCD_CFG_FUNC_NOTIFY_AS_GROUP, 748*0dfdd7f3Smichen NSCD_CFG_FUNC_VERIFY_AS_GROUP), 749cb5caa98Sdjl 750cb5caa98Sdjl NSCD_CFG_PGROUP_DESC_NULL 751cb5caa98Sdjl }; 752cb5caa98Sdjl 753cb5caa98Sdjl /* 754cb5caa98Sdjl * defaults for the global configuration 755cb5caa98Sdjl */ 756cb5caa98Sdjl static nscd_cfg_global_data_t nscd_cfg_global_default = { 757cb5caa98Sdjl 758cb5caa98Sdjl /* 759cb5caa98Sdjl * nscd_cfg_global_log_t 760cb5caa98Sdjl */ 761cb5caa98Sdjl { 762cb5caa98Sdjl 763cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_LOG, 764cb5caa98Sdjl NULL, 765*0dfdd7f3Smichen NSCD_LOG_LEVEL_NONE, /* debug_level */ 766cb5caa98Sdjl NSCD_LOG_CACHE, /* debug_comp */ 767cb5caa98Sdjl 768cb5caa98Sdjl }, 769cb5caa98Sdjl 770cb5caa98Sdjl /* 771cb5caa98Sdjl * nscd_cfg_global_frontend_t 772cb5caa98Sdjl */ 773cb5caa98Sdjl { 774cb5caa98Sdjl 775cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_FRONTEND, 776e37190e5Smichen 100, /* common_worker_threads */ 777e37190e5Smichen 100, /* cache_hit_threads */ 778cb5caa98Sdjl 779cb5caa98Sdjl }, 780cb5caa98Sdjl 781cb5caa98Sdjl /* 782cb5caa98Sdjl * nscd_cfg_global_selfcred_t 783cb5caa98Sdjl */ 784cb5caa98Sdjl { 785cb5caa98Sdjl 786cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_SELFCRED, 787cb5caa98Sdjl nscd_true, /* enable_selfcred */ 788cb5caa98Sdjl 1000, /* max_per_user_nscd */ 789cb5caa98Sdjl 120, /* per_user_nscd_ttl: 120 seconds */ 790cb5caa98Sdjl 791cb5caa98Sdjl }, 792cb5caa98Sdjl 793cb5caa98Sdjl /* 794cb5caa98Sdjl * nscd_cfg_global_switch_t 795cb5caa98Sdjl */ 796cb5caa98Sdjl { 797cb5caa98Sdjl 798cb5caa98Sdjl NSCD_CFG_GROUP_INFO_GLOBAL_SWITCH, 799cb5caa98Sdjl nscd_true, /* enable_lookup_g */ 800cb5caa98Sdjl nscd_false, /* enable_loopback_checking_g */ 801cb5caa98Sdjl 120, /* check_smf_state_interval_g */ 802cb5caa98Sdjl 803cb5caa98Sdjl }, 804cb5caa98Sdjl 805cb5caa98Sdjl /* 806cb5caa98Sdjl * nscd_cfg_global_cache_t 807cb5caa98Sdjl */ 808cb5caa98Sdjl NSCD_CFG_GLOBAL_CACHE_DEFAULTS 809cb5caa98Sdjl }; 810cb5caa98Sdjl 811cb5caa98Sdjl /* 812cb5caa98Sdjl * defaults for the per switch database configuration 813cb5caa98Sdjl */ 814cb5caa98Sdjl static nscd_cfg_nsw_db_data_t nscd_cfg_nsw_db_data_default = { 815cb5caa98Sdjl 816cb5caa98Sdjl /* 817cb5caa98Sdjl * nscd_cfg_frontend_t 818cb5caa98Sdjl */ 819cb5caa98Sdjl { 820cb5caa98Sdjl 821cb5caa98Sdjl NSCD_CFG_GROUP_INFO_FRONTEND, 822e37190e5Smichen 50, /* worker_thread_per_nsw_db */ 823cb5caa98Sdjl 824cb5caa98Sdjl }, 825cb5caa98Sdjl 826cb5caa98Sdjl /* 827cb5caa98Sdjl * nscd_cfg_switch_t 828cb5caa98Sdjl */ 829cb5caa98Sdjl { 830cb5caa98Sdjl 831cb5caa98Sdjl NSCD_CFG_GROUP_INFO_SWITCH, 832cb5caa98Sdjl "nis files", /* nsw_config_string */ 833cb5caa98Sdjl NULL, /* nsw_config_db */ 834cb5caa98Sdjl nscd_true, /* enable_lookup */ 835cb5caa98Sdjl nscd_false, /* enable_loopback_checking */ 836124771bbSmichen 288, /* max_nsw_state_per_db */ 837124771bbSmichen 32, /* max_nsw_state_per_thread */ 838124771bbSmichen 256, /* max_getent_ctx_per_db */ 839cb5caa98Sdjl 840cb5caa98Sdjl }, 841cb5caa98Sdjl 842cb5caa98Sdjl /* 843cb5caa98Sdjl * nscd_cfg_cache_t 844cb5caa98Sdjl */ 845cb5caa98Sdjl NSCD_CFG_CACHE_DEFAULTS 846cb5caa98Sdjl }; 847cb5caa98Sdjl 848cb5caa98Sdjl /* 849cb5caa98Sdjl * macros for defining the database specific defaults 850cb5caa98Sdjl */ 851cb5caa98Sdjl #define NSCD_CFG_DB_DEFAULT_PARAM(db, gf, pf, gt, defaddr, deflen) \ 852cb5caa98Sdjl { \ 853cb5caa98Sdjl db, offsetof(nscd_cfg_nsw_db_data_t, gf), \ 854cb5caa98Sdjl offsetof(gt, pf), defaddr, deflen \ 855cb5caa98Sdjl } 856cb5caa98Sdjl 857cb5caa98Sdjl #define NSCD_CFG_DB_DEFAULT_GROUP(db, gf, defaddr, deflen) \ 858cb5caa98Sdjl { \ 859cb5caa98Sdjl db, offsetof(nscd_cfg_nsw_db_data_t, gf), \ 860cb5caa98Sdjl 0, defaddr, deflen \ 861cb5caa98Sdjl } 862cb5caa98Sdjl 863cb5caa98Sdjl #define NSCD_CFG_DB_DEFAULT_NULL \ 864cb5caa98Sdjl { \ 865cb5caa98Sdjl NULL, 0, 0, NULL, 0 \ 866cb5caa98Sdjl } 867cb5caa98Sdjl 868cb5caa98Sdjl /* 869cb5caa98Sdjl * shadow, user_attr, and audit_user use the same switch policy 870cb5caa98Sdjl * as that of passwd. exec_attr use that of prof_attr. 871cb5caa98Sdjl */ 872cb5caa98Sdjl static char *nscd_cfg_shadow_cfg_db = NSS_DBNAM_PASSWD; 873cb5caa98Sdjl static char *nscd_cfg_userattr_cfg_db = NSS_DBNAM_PASSWD; 874cb5caa98Sdjl static char *nscd_cfg_auuser_cfg_db = NSS_DBNAM_PASSWD; 875cb5caa98Sdjl static char *nscd_cfg_execattr_cfg_db = NSS_DBNAM_PROFATTR; 876cb5caa98Sdjl 877cb5caa98Sdjl /* 878cb5caa98Sdjl * default switch policy for pseudo-databases passwd_compat and 879cb5caa98Sdjl * and group_compa is "nis" 880cb5caa98Sdjl */ 881cb5caa98Sdjl static char *nscd_cfg_def_passwd_compat = NSS_DEFCONF_PASSWD_COMPAT; 882cb5caa98Sdjl static char *nscd_cfg_def_group_compat = NSS_DEFCONF_GROUP_COMPAT; 883cb5caa98Sdjl 884cb5caa98Sdjl static nscd_cfg_nsw_spc_default_t nscd_cfg_passwd_cfg_link = 885cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 886cb5caa98Sdjl NSS_DBNAM_PASSWD, 887cb5caa98Sdjl sw, 888cb5caa98Sdjl nsw_config_string, 889cb5caa98Sdjl nscd_cfg_switch_t, 890cb5caa98Sdjl NULL, 891cb5caa98Sdjl NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string)); 892cb5caa98Sdjl 893cb5caa98Sdjl static nscd_cfg_nsw_spc_default_t nscd_cfg_profattr_cfg_link = 894cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 895cb5caa98Sdjl NSS_DBNAM_PROFATTR, 896cb5caa98Sdjl sw, 897cb5caa98Sdjl nsw_config_string, 898cb5caa98Sdjl nscd_cfg_switch_t, 899cb5caa98Sdjl NULL, 900cb5caa98Sdjl NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string)); 901cb5caa98Sdjl 902cb5caa98Sdjl 903cb5caa98Sdjl /* 904cb5caa98Sdjl * switch database specific defaults 905cb5caa98Sdjl */ 906cb5caa98Sdjl nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_spc_default[] = { 907cb5caa98Sdjl 908cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 909cb5caa98Sdjl NSS_DBNAM_SHADOW, 910cb5caa98Sdjl sw, 911cb5caa98Sdjl nsw_config_db, 912cb5caa98Sdjl nscd_cfg_switch_t, 913cb5caa98Sdjl &nscd_cfg_shadow_cfg_db, 914cb5caa98Sdjl sizeof (nscd_cfg_shadow_cfg_db)), 915cb5caa98Sdjl 916cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 917cb5caa98Sdjl NSS_DBNAM_USERATTR, 918cb5caa98Sdjl sw, 919cb5caa98Sdjl nsw_config_db, 920cb5caa98Sdjl nscd_cfg_switch_t, 921cb5caa98Sdjl &nscd_cfg_userattr_cfg_db, 922cb5caa98Sdjl sizeof (nscd_cfg_userattr_cfg_db)), 923cb5caa98Sdjl 924cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 925cb5caa98Sdjl NSS_DBNAM_AUDITUSER, 926cb5caa98Sdjl sw, 927cb5caa98Sdjl nsw_config_db, 928cb5caa98Sdjl nscd_cfg_switch_t, 929cb5caa98Sdjl &nscd_cfg_auuser_cfg_db, 930cb5caa98Sdjl sizeof (nscd_cfg_auuser_cfg_db)), 931cb5caa98Sdjl 932cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 933cb5caa98Sdjl NSS_DBNAM_EXECATTR, 934cb5caa98Sdjl sw, 935cb5caa98Sdjl nsw_config_db, 936cb5caa98Sdjl nscd_cfg_switch_t, 937cb5caa98Sdjl &nscd_cfg_execattr_cfg_db, 938cb5caa98Sdjl sizeof (nscd_cfg_execattr_cfg_db)), 939cb5caa98Sdjl 940cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 941cb5caa98Sdjl NSS_DBNAM_PASSWD_COMPAT, 942cb5caa98Sdjl sw, 943cb5caa98Sdjl nsw_config_string, 944cb5caa98Sdjl nscd_cfg_switch_t, 945cb5caa98Sdjl &nscd_cfg_def_passwd_compat, 946cb5caa98Sdjl sizeof (nscd_cfg_def_passwd_compat)), 947cb5caa98Sdjl 948cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 949cb5caa98Sdjl NSS_DBNAM_GROUP_COMPAT, 950cb5caa98Sdjl sw, 951cb5caa98Sdjl nsw_config_string, 952cb5caa98Sdjl nscd_cfg_switch_t, 953cb5caa98Sdjl &nscd_cfg_def_group_compat, 954cb5caa98Sdjl sizeof (nscd_cfg_def_group_compat)), 955cb5caa98Sdjl 956cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_NULL 957cb5caa98Sdjl }; 958cb5caa98Sdjl 959cb5caa98Sdjl /* 960cb5caa98Sdjl * switch database specific defaults that are linked to 961cb5caa98Sdjl * those of other databases 962cb5caa98Sdjl */ 963cb5caa98Sdjl nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_link_default[] = { 964cb5caa98Sdjl 965cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 966cb5caa98Sdjl NSS_DBNAM_SHADOW, 967cb5caa98Sdjl sw, 968cb5caa98Sdjl nsw_config_string, 969cb5caa98Sdjl nscd_cfg_switch_t, 970cb5caa98Sdjl &nscd_cfg_passwd_cfg_link, 971cb5caa98Sdjl 0), 972cb5caa98Sdjl 973cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 974cb5caa98Sdjl NSS_DBNAM_USERATTR, 975cb5caa98Sdjl sw, 976cb5caa98Sdjl nsw_config_string, 977cb5caa98Sdjl nscd_cfg_switch_t, 978cb5caa98Sdjl &nscd_cfg_passwd_cfg_link, 979cb5caa98Sdjl 0), 980cb5caa98Sdjl 981cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 982cb5caa98Sdjl NSS_DBNAM_AUDITUSER, 983cb5caa98Sdjl sw, 984cb5caa98Sdjl nsw_config_string, 985cb5caa98Sdjl nscd_cfg_switch_t, 986cb5caa98Sdjl &nscd_cfg_passwd_cfg_link, 987cb5caa98Sdjl 0), 988cb5caa98Sdjl 989cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_PARAM( 990cb5caa98Sdjl NSS_DBNAM_EXECATTR, 991cb5caa98Sdjl sw, 992cb5caa98Sdjl nsw_config_string, 993cb5caa98Sdjl nscd_cfg_switch_t, 994cb5caa98Sdjl &nscd_cfg_profattr_cfg_link, 995cb5caa98Sdjl 0), 996cb5caa98Sdjl 997cb5caa98Sdjl NSCD_CFG_DB_DEFAULT_NULL 998cb5caa98Sdjl }; 999cb5caa98Sdjl 1000cb5caa98Sdjl /* 1001cb5caa98Sdjl * macros for defining the static stats table 1002cb5caa98Sdjl */ 1003cb5caa98Sdjl #define NSCD_CFG_SGROUP_DESC(sn, type, sflag, gi, \ 1004cb5caa98Sdjl gf, g_in_t, gsfunc_name) \ 1005cb5caa98Sdjl { \ 1006cb5caa98Sdjl {-1, sn}, type, NSCD_CFG_SFLAG_GROUP | sflag, gi, \ 1007cb5caa98Sdjl 0, 0, 0,\ 1008cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 1009*0dfdd7f3Smichen gsfunc_name \ 1010cb5caa98Sdjl } 1011cb5caa98Sdjl 1012cb5caa98Sdjl #define NSCD_CFG_STAT_DESC(sn, type, sflag, sf, s_in_t, \ 1013cb5caa98Sdjl gf, g_in_t, gsfunc_name) \ 1014cb5caa98Sdjl { \ 1015cb5caa98Sdjl {-1, sn}, type, sflag, NSCD_CFG_GROUP_INFO_NULL, \ 1016cb5caa98Sdjl NSCD_SIZEOF(s_in_t, sf), offsetof(s_in_t, sf), -1, \ 1017cb5caa98Sdjl NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \ 1018*0dfdd7f3Smichen gsfunc_name \ 1019cb5caa98Sdjl } 1020cb5caa98Sdjl 1021cb5caa98Sdjl #define NSCD_CFG_SGROUP_DESC_NULL \ 1022cb5caa98Sdjl { \ 1023cb5caa98Sdjl {-1, NULL}, -1, NSCD_CFG_SFLAG_GROUP, NULL, \ 1024cb5caa98Sdjl 0, 0, 0, \ 1025cb5caa98Sdjl 0, 0, 0, \ 1026*0dfdd7f3Smichen NULL \ 1027cb5caa98Sdjl } 1028cb5caa98Sdjl 1029cb5caa98Sdjl /* 1030cb5caa98Sdjl * the static statistics description table 1031cb5caa98Sdjl */ 1032cb5caa98Sdjl static nscd_cfg_stat_desc_t _nscd_cfg_stat_desc[] = { 1033cb5caa98Sdjl 1034cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1035cb5caa98Sdjl "stat-group-global-log", 1036cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1037cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1038cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_GLOBAL_LOG, 1039cb5caa98Sdjl log, 1040cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1041*0dfdd7f3Smichen _nscd_cfg_log_get_stat), 1042cb5caa98Sdjl 1043cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1044cb5caa98Sdjl "entries-logged", 1045cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1046cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1047cb5caa98Sdjl entries_logged, 1048cb5caa98Sdjl nscd_cfg_stat_global_log_t, 1049cb5caa98Sdjl log, 1050cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1051*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1052cb5caa98Sdjl 1053cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1054cb5caa98Sdjl "stat-group-global-switch", 1055cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1056cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1057cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_GLOBAL_SWITCH, 1058cb5caa98Sdjl sw, 1059cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1060*0dfdd7f3Smichen _nscd_cfg_switch_get_stat), 1061cb5caa98Sdjl 1062cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1063cb5caa98Sdjl "global-lookup-request-received", 1064cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1065cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1066cb5caa98Sdjl lookup_request_received_g, 1067cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1068cb5caa98Sdjl sw, 1069cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1070*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1071cb5caa98Sdjl 1072cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1073cb5caa98Sdjl "global-lookup-request-queued", 1074cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1075cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1076cb5caa98Sdjl lookup_request_queued_g, 1077cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1078cb5caa98Sdjl sw, 1079cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1080*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1081cb5caa98Sdjl 1082cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1083cb5caa98Sdjl "global-lookup-request-in-progress", 1084cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1085cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1086cb5caa98Sdjl lookup_request_in_progress_g, 1087cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1088cb5caa98Sdjl sw, 1089cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1090*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1091cb5caa98Sdjl 1092cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1093cb5caa98Sdjl "global-lookup-request-succeeded", 1094cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1095cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1096cb5caa98Sdjl lookup_request_succeeded_g, 1097cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1098cb5caa98Sdjl sw, 1099cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1100*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1101cb5caa98Sdjl 1102cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1103cb5caa98Sdjl "global-lookup-request-failed", 1104cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1105cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1106cb5caa98Sdjl lookup_request_failed_g, 1107cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1108cb5caa98Sdjl sw, 1109cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1110*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1111cb5caa98Sdjl 1112cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1113cb5caa98Sdjl "global-loopback-nsw-db-skipped", 1114cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1115cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1116cb5caa98Sdjl loopback_nsw_db_skipped_g, 1117cb5caa98Sdjl nscd_cfg_stat_global_switch_t, 1118cb5caa98Sdjl sw, 1119cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1120*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1121cb5caa98Sdjl 1122cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1123cb5caa98Sdjl "stat-group-global-cache", 1124cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1125cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1126cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_CACHE, 1127cb5caa98Sdjl cache, 1128cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1129*0dfdd7f3Smichen _nscd_cfg_cache_get_stat), 1130cb5caa98Sdjl 1131cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1132cb5caa98Sdjl "global-cache-hits-on-positive", 1133cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1134cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1135cb5caa98Sdjl pos_hits, 1136cb5caa98Sdjl nscd_cfg_stat_cache_t, 1137cb5caa98Sdjl cache, 1138cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1139*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1140cb5caa98Sdjl 1141cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1142cb5caa98Sdjl "global-cache-hits-on-negative", 1143cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1144cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1145cb5caa98Sdjl neg_hits, 1146cb5caa98Sdjl nscd_cfg_stat_cache_t, 1147cb5caa98Sdjl cache, 1148cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1149*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1150cb5caa98Sdjl 1151cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1152cb5caa98Sdjl "global-cache-misses-on-positive", 1153cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1154cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1155cb5caa98Sdjl pos_misses, 1156cb5caa98Sdjl nscd_cfg_stat_cache_t, 1157cb5caa98Sdjl cache, 1158cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1159*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1160cb5caa98Sdjl 1161cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1162cb5caa98Sdjl "global-cache-misses-on-negative", 1163cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1164cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1165cb5caa98Sdjl neg_misses, 1166cb5caa98Sdjl nscd_cfg_stat_cache_t, 1167cb5caa98Sdjl cache, 1168cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1169*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1170cb5caa98Sdjl 1171cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1172cb5caa98Sdjl "global-cache-queries-queued", 1173cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1174cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1175cb5caa98Sdjl wait_count, 1176cb5caa98Sdjl nscd_cfg_stat_cache_t, 1177cb5caa98Sdjl cache, 1178cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1179*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1180cb5caa98Sdjl 1181cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1182cb5caa98Sdjl "global-total-cache-entries", 1183cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1184cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1185cb5caa98Sdjl entries, 1186cb5caa98Sdjl nscd_cfg_stat_cache_t, 1187cb5caa98Sdjl cache, 1188cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1189*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1190cb5caa98Sdjl 1191cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1192cb5caa98Sdjl "global-complete-cache-invalidations", 1193cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1194cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1195cb5caa98Sdjl invalidate_count, 1196cb5caa98Sdjl nscd_cfg_stat_cache_t, 1197cb5caa98Sdjl cache, 1198cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1199*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1200cb5caa98Sdjl 1201cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1202cb5caa98Sdjl "global-cache-queries-dropped", 1203cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1204cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1205cb5caa98Sdjl drop_count, 1206cb5caa98Sdjl nscd_cfg_stat_cache_t, 1207cb5caa98Sdjl cache, 1208cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1209*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1210cb5caa98Sdjl 1211cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1212cb5caa98Sdjl "global-cache-hit-rate", 1213cb5caa98Sdjl NSCD_CFG_DATA_PERCENT, 1214cb5caa98Sdjl NSCD_CFG_SFLAG_GLOBAL, 1215cb5caa98Sdjl hitrate, 1216cb5caa98Sdjl nscd_cfg_stat_cache_t, 1217cb5caa98Sdjl cache, 1218cb5caa98Sdjl nscd_cfg_stat_global_data_t, 1219*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1220cb5caa98Sdjl 1221cb5caa98Sdjl /* non-global stat from this point on */ 1222cb5caa98Sdjl 1223cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1224cb5caa98Sdjl "stat-group-switch", 1225cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1226cb5caa98Sdjl NSCD_CFG_SFLAG_GROUP, 1227cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_SWITCH, 1228cb5caa98Sdjl cache, 1229cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1230*0dfdd7f3Smichen _nscd_cfg_switch_get_stat), 1231cb5caa98Sdjl 1232cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1233cb5caa98Sdjl "lookup-request-received", 1234cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1235cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1236cb5caa98Sdjl lookup_request_received, 1237cb5caa98Sdjl nscd_cfg_stat_switch_t, 1238cb5caa98Sdjl sw, 1239cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1240*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1241cb5caa98Sdjl 1242cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1243cb5caa98Sdjl "lookup-request-queued", 1244cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1245cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1246cb5caa98Sdjl lookup_request_queued, 1247cb5caa98Sdjl nscd_cfg_stat_switch_t, 1248cb5caa98Sdjl sw, 1249cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1250*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1251cb5caa98Sdjl 1252cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1253cb5caa98Sdjl "lookup-request-in-progress", 1254cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1255cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1256cb5caa98Sdjl lookup_request_in_progress, 1257cb5caa98Sdjl nscd_cfg_stat_switch_t, 1258cb5caa98Sdjl sw, 1259cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1260*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1261cb5caa98Sdjl 1262cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1263cb5caa98Sdjl "lookup-request-succeeded", 1264cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1265cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1266cb5caa98Sdjl lookup_request_succeeded, 1267cb5caa98Sdjl nscd_cfg_stat_switch_t, 1268cb5caa98Sdjl sw, 1269cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1270*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1271cb5caa98Sdjl 1272cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1273cb5caa98Sdjl "lookup-request-failed", 1274cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1275cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1276cb5caa98Sdjl lookup_request_failed, 1277cb5caa98Sdjl nscd_cfg_stat_switch_t, 1278cb5caa98Sdjl sw, 1279cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1280*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1281cb5caa98Sdjl 1282cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1283cb5caa98Sdjl "loopback-nsw-db-skipped", 1284cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1285cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1286cb5caa98Sdjl loopback_nsw_db_skipped, 1287cb5caa98Sdjl nscd_cfg_stat_switch_t, 1288cb5caa98Sdjl sw, 1289cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1290*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1291cb5caa98Sdjl 1292cb5caa98Sdjl NSCD_CFG_SGROUP_DESC( 1293cb5caa98Sdjl "stat-group-cache", 1294cb5caa98Sdjl NSCD_CFG_DATA_NONE, 1295cb5caa98Sdjl NSCD_CFG_SFLAG_GROUP, 1296cb5caa98Sdjl NSCD_CFG_STAT_GROUP_INFO_CACHE, 1297cb5caa98Sdjl cache, 1298cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1299*0dfdd7f3Smichen _nscd_cfg_cache_get_stat), 1300cb5caa98Sdjl 1301cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1302cb5caa98Sdjl "cache-hits-on-positive", 1303cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1304cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1305cb5caa98Sdjl pos_hits, 1306cb5caa98Sdjl nscd_cfg_stat_cache_t, 1307cb5caa98Sdjl cache, 1308cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1309*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1310cb5caa98Sdjl 1311cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1312cb5caa98Sdjl "cache-hits-on-negative", 1313cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1314cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1315cb5caa98Sdjl neg_hits, 1316cb5caa98Sdjl nscd_cfg_stat_cache_t, 1317cb5caa98Sdjl cache, 1318cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1319*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1320cb5caa98Sdjl 1321cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1322cb5caa98Sdjl "cache-misses-on-positive", 1323cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1324cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1325cb5caa98Sdjl pos_misses, 1326cb5caa98Sdjl nscd_cfg_stat_cache_t, 1327cb5caa98Sdjl cache, 1328cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1329*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1330cb5caa98Sdjl 1331cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1332cb5caa98Sdjl "cache-misses-on-negative", 1333cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1334cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1335cb5caa98Sdjl neg_misses, 1336cb5caa98Sdjl nscd_cfg_stat_cache_t, 1337cb5caa98Sdjl cache, 1338cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1339*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1340cb5caa98Sdjl 1341cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1342cb5caa98Sdjl "cache-queries-queued", 1343cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1344cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1345cb5caa98Sdjl wait_count, 1346cb5caa98Sdjl nscd_cfg_stat_cache_t, 1347cb5caa98Sdjl cache, 1348cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1349*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1350cb5caa98Sdjl 1351cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1352cb5caa98Sdjl "total-cache-entries", 1353cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1354cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1355cb5caa98Sdjl entries, 1356cb5caa98Sdjl nscd_cfg_stat_cache_t, 1357cb5caa98Sdjl cache, 1358cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1359*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1360cb5caa98Sdjl 1361cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1362cb5caa98Sdjl "complete-cache-invalidations", 1363cb5caa98Sdjl NSCD_CFG_DATA_INTEGER, 1364cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1365cb5caa98Sdjl invalidate_count, 1366cb5caa98Sdjl nscd_cfg_stat_cache_t, 1367cb5caa98Sdjl cache, 1368cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1369*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1370cb5caa98Sdjl 1371cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1372cb5caa98Sdjl "cache-hit-rate", 1373cb5caa98Sdjl NSCD_CFG_DATA_PERCENT, 1374cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1375cb5caa98Sdjl hitrate, 1376cb5caa98Sdjl nscd_cfg_stat_cache_t, 1377cb5caa98Sdjl cache, 1378cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1379*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1380cb5caa98Sdjl 1381cb5caa98Sdjl NSCD_CFG_STAT_DESC( 1382cb5caa98Sdjl "cache-queries-dropped", 1383cb5caa98Sdjl NSCD_CFG_DATA_PERCENT, 1384cb5caa98Sdjl NSCD_CFG_SFLAG_NONE, 1385cb5caa98Sdjl drop_count, 1386cb5caa98Sdjl nscd_cfg_stat_cache_t, 1387cb5caa98Sdjl cache, 1388cb5caa98Sdjl nscd_cfg_stat_nsw_db_data_t, 1389*0dfdd7f3Smichen NSCD_CFG_FUNC_GET_STAT_AS_GROUP), 1390cb5caa98Sdjl 1391cb5caa98Sdjl 1392cb5caa98Sdjl NSCD_CFG_SGROUP_DESC_NULL 1393cb5caa98Sdjl }; 1394cb5caa98Sdjl 1395cb5caa98Sdjl /* number of entries in the static tables */ 1396cb5caa98Sdjl 1397cb5caa98Sdjl int _nscd_cfg_num_nsw_src = 1398cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_src) / 1399cb5caa98Sdjl sizeof (_nscd_cfg_nsw_src[0]) - 1); 1400cb5caa98Sdjl 1401cb5caa98Sdjl int _nscd_cfg_num_smf_services = 1402cb5caa98Sdjl (sizeof (_nscd_cfg_smf_services) / 1403cb5caa98Sdjl sizeof (_nscd_cfg_smf_services[0]) - 1); 1404cb5caa98Sdjl 1405cb5caa98Sdjl /* number of supported nsw databases (including pseudo ones) */ 1406cb5caa98Sdjl int _nscd_cfg_num_nsw_db_all = 1407cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_db) / 1408cb5caa98Sdjl sizeof (_nscd_cfg_nsw_db[0]) - 1); 1409cb5caa98Sdjl 1410cb5caa98Sdjl /* number of supported nsw databases (not including pseudo ones) */ 1411cb5caa98Sdjl int _nscd_cfg_num_nsw_db = 1412cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_db) / 1413cb5caa98Sdjl sizeof (_nscd_cfg_nsw_db[0]) - 1) - 1414cb5caa98Sdjl NSS_DBNAM_COMPAT_NUM_DB; 1415cb5caa98Sdjl 1416cb5caa98Sdjl static int _nscd_cfg_num_param = 1417cb5caa98Sdjl (sizeof (_nscd_cfg_param_desc) / 1418cb5caa98Sdjl sizeof (_nscd_cfg_param_desc[0]) - 1); 1419cb5caa98Sdjl 1420cb5caa98Sdjl static int _nscd_cfg_num_stat = 1421cb5caa98Sdjl (sizeof (_nscd_cfg_stat_desc) / 1422cb5caa98Sdjl sizeof (_nscd_cfg_stat_desc[0]) - 1); 1423cb5caa98Sdjl 1424cb5caa98Sdjl int _nscd_cfg_num_nsw_default = 1425cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_spc_default) / 1426cb5caa98Sdjl sizeof (_nscd_cfg_nsw_spc_default[0]) - 1); 1427cb5caa98Sdjl 1428cb5caa98Sdjl int _nscd_cfg_num_link_default = 1429cb5caa98Sdjl (sizeof (_nscd_cfg_nsw_link_default) / 1430cb5caa98Sdjl sizeof (_nscd_cfg_nsw_link_default[0]) - 1); 1431cb5caa98Sdjl 1432cb5caa98Sdjl #ifdef __cplusplus 1433cb5caa98Sdjl } 1434cb5caa98Sdjl #endif 1435cb5caa98Sdjl 1436cb5caa98Sdjl #endif /* _NSCD_CFGDEF_H */ 1437