summaryrefslogtreecommitdiff
path: root/usr.sbin/npppd/common/config_helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/npppd/common/config_helper.c')
-rw-r--r--usr.sbin/npppd/common/config_helper.c327
1 files changed, 0 insertions, 327 deletions
diff --git a/usr.sbin/npppd/common/config_helper.c b/usr.sbin/npppd/common/config_helper.c
deleted file mode 100644
index 30bab8488bb..00000000000
--- a/usr.sbin/npppd/common/config_helper.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/* $OpenBSD: config_helper.c,v 1.4 2012/05/08 13:15:11 yasuoka Exp $ */
-/*-
- * Copyright (c) 2009 Internet Initiative Japan Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-/* $Id: config_helper.c,v 1.4 2012/05/08 13:15:11 yasuoka Exp $ */
-#include <sys/types.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "properties.h"
-#include "config_helper.h"
-#include "debugmacro.h"
-
-#define KEYBUFSZ 512
-
-/**
- * This function concatenates given prefix and the give suffix for making
- * configuration key (("prefix", "suffix") => "prefix.suffix"). The string
- * returned by this function resides in a static memory area.
- */
-const char *
-config_key_prefix(const char *prefix, const char *suffix)
-{
- static char keybuf[KEYBUFSZ];
-
- strlcpy(keybuf, prefix, sizeof(keybuf));
- strlcat(keybuf, ".", sizeof(keybuf));
- strlcat(keybuf, suffix, sizeof(keybuf));
-
- return keybuf;
-}
-
-/**
- * Retrieve the configuration value as a 'string' that is specified by
- * given configuration key.
- * @param _this The pointer to {@link ::properties}
- * @param confKey configuration key name.
- * @return pointer to the configuration value. If no configuration value
- * exists then it returns NULL.
- */
-const char *
-config_str(struct properties *_this, const char *confKey)
-{
- ASSERT(_this != NULL)
-
- return properties_get(_this, confKey);
-}
-
-/**
- * Retrieve the configuration value as a 'int' that is specified by
- * given configuration key.
- * @param _this The pointer to {@link ::properties}
- * @param confKey configuration key name.
- * @param defValue The default value. This function will return this
- * value in case no configuration exists
- */
-int
-config_int(struct properties *_this, const char *confKey, int defValue)
-{
- int rval, x;
- const char *val;
-
- val = config_str(_this, confKey);
-
- if (val == NULL)
- return defValue;
-
- x = sscanf(val, "%d", &rval);
-
- if (x != 1)
- return defValue;
-
- return rval;
-}
-
-/**
- * Checks whether the configuration value equals given string.
- * @param _this The pointer to {@link ::properties}
- * @param confKey configuration key name.
- * @param defValue The default value. This function will return this
- * value in case no configuration exists
- * @return return 1 if given string matches the configuration value,
- * otherwise return 0.
- */
-int
-config_str_equal(struct properties *_this, const char *confKey,
- const char *str, int defValue)
-{
- const char *val;
-
- val = config_str(_this, confKey);
-
- if (val == NULL)
- return defValue;
-
- return (strcmp(val, str) == 0)? 1 : 0;
-}
-
-/**
- * Checks whether the configuration value equals given string ignoring
- * case.
- * @param _this The pointer to {@link ::properties}
- * @param confKey configuration key name.
- * @param defValue The default value. This function will return this
- * value in case no configuration exists
- * @return return 1 if given string equals the configuration value,
- * otherwise return 0.
- */
-int
-config_str_equali(struct properties *_this, const char *confKey,
- const char *str, int defValue)
-{
- const char *val;
-
- val = config_str(_this, confKey);
-
- if (val == NULL)
- return defValue;
-
- return (strcasecmp(val, str) == 0)? 1 : 0;
-}
-
-/***********************************************************************
- * Following functions are to get configuration value by given
- * configuration key. At first the function will try to get the value
- * by the key with the prefix, if it fails, then it will try to get the
- * value by the key without the prefix.
- *
- * For example, we have following configuration
- *
- * pppoe.service_name: default_service
- * PPPoE0.pppoe.service_name: my_service
- *
- * calling
- *
- * config_prefixed_str(prop, "PPPoE0", "service_name")
- *
- * returns "my_service". If
- *
- * PPPoE0.pppoe.service_name: my_service
- *
- * does not exist, then it returns "default_service".
- *
- * Functions that have fixed prefix can be generated by
- * PREFIXED_CONFIG_FUNCTIONS macro that is defined in config_helper.h.
- */
-const char *
-config_prefixed_str(struct properties *_this, const char *prefix, const char *confKey)
-{
- char keybuf[KEYBUFSZ];
- const char *val;
-
- if (prefix != NULL) {
- snprintf(keybuf, sizeof(keybuf), "%s.%s", prefix, confKey);
- val = config_str(_this, keybuf);
- if (val != NULL)
- return val;
- }
-
- return config_str(_this, confKey);
-}
-
-int
-config_prefixed_int(struct properties *_this, const char *prefix, const char *confKey, int defValue)
-{
- char keybuf[KEYBUFSZ];
- const char *val;
-
- if (prefix != NULL) {
- snprintf(keybuf, sizeof(keybuf), "%s.%s", prefix, confKey);
- val = config_str(_this, keybuf);
- if (val != NULL)
- return config_int(_this, keybuf, defValue);
- }
-
- return config_int(_this, confKey, defValue);
-}
-
-int
-config_prefixed_str_equal(struct properties *_this, const char *prefix, const char *confKey, const char *str,
- int defValue)
-{
- char keybuf[KEYBUFSZ];
- const char *val;
-
- if (prefix != NULL) {
- snprintf(keybuf, sizeof(keybuf), "%s.%s", prefix, confKey);
- val = config_str(_this, keybuf);
- if (val != NULL)
- return config_str_equal(_this, keybuf, str,
- defValue);
- }
-
- return config_str_equal(_this, confKey, str, defValue);
-}
-
-int
-config_prefixed_str_equali(struct properties *_this, const char *prefix,
- const char *confKey, const char *str, int defValue)
-{
- char keybuf[KEYBUFSZ];
- const char *val;
-
- ASSERT(_this != NULL);
-
- if (prefix != NULL) {
- snprintf(keybuf, sizeof(keybuf), "%s.%s", prefix, confKey);
- val = config_str(_this, keybuf);
- if (val != NULL)
- return config_str_equali(_this, keybuf, str,
- defValue);
- }
-
- return config_str_equali(_this, confKey, str, defValue);
-}
-
-/***********************************************************************
- * Following functions are to get configuration value by given
- * configuration key. At first the function will try to get the value
- * by the key with the prefix and given label, if it fail, then it will
- * try to get the value by the key without the label.
- *
- * For example, we have following configuration
- *
- * ipcp.dns_primary: 192.168.0.1
- * ipcp.ipcp0.dns_primary: 192.168.0.2
- *
- * calling
- *
- * config_named_prefix_str(prop, "ipcp", "ipcp0", "dns_primary");
- *
- * will returns "192.168.0.2". If
- *
- * ipcp.ipcp0.dns_primary: 192.168.0.2
- *
- * was not exists, then it returns "default_service".
- *
- * Functions that has fixed prefix can be generated by
- * NAMED_PREFIXED_CONFIG_FUNCTIONS macro that is defined in
- * config_helper.h.
- ***********************************************************************/
-const char *
-config_named_prefix_str(struct properties *_this, const char *prefix,
- const char *name, const char *confKey)
-{
- char keybuf[KEYBUFSZ];
- const char *val;
-
- if (name != NULL && name[0] != '\0') {
- snprintf(keybuf, sizeof(keybuf), "%s.%s.%s", prefix, name,
- confKey);
- val = config_str(_this, keybuf);
- if (val != NULL)
- return val;
- }
-
- snprintf(keybuf, sizeof(keybuf), "%s.%s", prefix, confKey);
- return config_str(_this, keybuf);
-}
-
-int
-config_named_prefix_int(struct properties *_this, const char *prefix,
- const char *name, const char *confKey, int defValue)
-{
- char keybuf[KEYBUFSZ];
- const char *val;
-
- if (name != NULL && name[0] != '\0') {
- snprintf(keybuf, sizeof(keybuf), "%s.%s.%s", prefix, name,
- confKey);
- val = config_str(_this, keybuf);
- if (val != NULL)
- return config_int(_this, keybuf, defValue);
- }
-
- snprintf(keybuf, sizeof(keybuf), "%s.%s", prefix, confKey);
- return config_int(_this, keybuf, defValue);
-}
-
-int
-config_named_prefix_str_equal(struct properties *_this, const char *prefix,
- const char *name, const char *confKey, const char *str, int defValue)
-{
- const char *val;
-
- val = config_named_prefix_str(_this, prefix, name, confKey);
- if (val == NULL)
- return defValue;
-
- return (strcmp(val, str) == 0)? 1 : 0;
-}
-
-int
-config_named_prefix_str_equali(struct properties *_this, const char *prefix,
- const char *name, const char *confKey, const char *str, int defValue)
-{
- const char *val;
-
- val = config_named_prefix_str(_this, prefix, name, confKey);
- if (val == NULL)
- return defValue;
-
- return (strcasecmp(val, str) == 0)? 1 : 0;
-}