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