/* * Parse and match "echo.daemon = 0/1", "echo.port = <n>" etc. */ static void echo_config (const char *name, const char *value) { static struct config_table echo_cfg[] = { { "DAEMON", ARG_ATOI, &do_echo }, { "HOST", ARG_RESOLVE, &echo_host }, { "PORT", ARG_ATOI, &echo_port }, { NULL } }; static struct config_table disc_cfg[] = { { "DAEMON", ARG_ATOI, &do_disc }, { "HOST", ARG_RESOLVE, &disc_host }, { "PORT", ARG_ATOI, &disc_port }, { NULL } }; if (!parse_config_table(&echo_cfg[0], "ECHO.", name, value) && !parse_config_table(&disc_cfg[0], "DISCARD.", name, value)) { if (prev_hook) (*prev_hook) (name, value); } }
static void tftp_cfg_hook (const char *name, const char *value) { static const struct config_table tftp_cfg[] = { { "BOOT_FILE", ARG_FUNC, (void*)tftp_set_boot_fname }, { "SERVER", ARG_RESOLVE, (void*)&tftp_server }, { "TIMEOUT", ARG_ATOI, (void*)&tftp_timeout }, { "RETRY", ARG_ATOI, (void*)&tftp_retry }, { "MODE", ARG_FUNC, (void*)tftp_set_xfer_mode }, { "OPENMODE", ARG_STRDUP, (void*)&tftp_openmode }, { "PORT", ARG_ATOI, (void*)&tftp_lport }, { NULL, 0, NULL } }; if (!parse_config_table(tftp_cfg, "TFTP.", name, value) && prev_hook) (*prev_hook) (name, value); }
static void pppoe_config (const char *name, const char *value) { static const struct config_table pppoe_cfg[] = { { "ENABLE", ARG_ATOI, (void*)&cfg.enable }, { "TRACE", ARG_ATOI, (void*)&cfg.trace }, { "TIMEOUT", ARG_ATOI, (void*)&cfg.timeout }, { "RETRIES", ARG_ATOI, (void*)&cfg.retries }, { "LCP_ECHO", ARG_ATOI, (void*)&cfg.lcpEchoInterval }, { "SERVICENAME", ARG_STRCPY, (void*)&cfg.serviceName }, { "USER", ARG_STRCPY, (void*)&cfg.userName }, { "PASSWD", ARG_STRCPY, (void*)&cfg.password }, { NULL, 0, NULL } }; if (!parse_config_table(&pppoe_cfg[0], "PPPOE.", name, value) && prev_hook) (*prev_hook) (name, value); }
static void SlipConfig (const char *name, const char *value) { static const struct config_table slip_cfg[] = { { "DIAL", ARG_FUNC, (void*)do_dial }, { "USER", ARG_STRCPY, (void*)&slip_user }, { "PASSWD", ARG_STRCPY, (void*)&slip_passwd }, { "TIMEOUT", ARG_ATOI, (void*)&slip_timeout }, { "BASE", ARG_ATOX_W, (void*)&slip_base_reg }, { NULL } }; if ((_pktdevclass != PDCLASS_SLIP || !parse_config_table(&slip_cfg[0], "SLIP.", name, value)) && prev_hook) (*prev_hook) (name, value); }
static void resolver_init (const char *name, const char *value) { if (!parse_config_table(&bind_cfg[0], "BIND.", name, value) && prev_hook) (*prev_hook) (name, value); }