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