diff options
author | James Maki <jmaki@multitech.com> | 2010-05-06 18:18:42 -0500 |
---|---|---|
committer | James Maki <jmaki@multitech.com> | 2010-05-06 18:18:42 -0500 |
commit | 2b85ae17d6c73c619d17f8987069c0e6aaf390a2 (patch) | |
tree | b35de2a6afabea39c9a8a887fd6a3696a79654d0 /src/sms_config.c | |
parent | 27b93ee76399af7dbb4f6c307dc5d89d1efd6493 (diff) | |
download | sms-utils-2b85ae17d6c73c619d17f8987069c0e6aaf390a2.tar.gz sms-utils-2b85ae17d6c73c619d17f8987069c0e6aaf390a2.tar.bz2 sms-utils-2b85ae17d6c73c619d17f8987069c0e6aaf390a2.zip |
load config from SMS_CONFIG env first if it is set.
Diffstat (limited to 'src/sms_config.c')
-rw-r--r-- | src/sms_config.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/sms_config.c b/src/sms_config.c index 0fa4173..9386ff7 100644 --- a/src/sms_config.c +++ b/src/sms_config.c @@ -267,24 +267,23 @@ static int config_handle_event(struct config_info *config) } } -#define SMS_CONFIG_FILE ".smsconfig" -static int _sms_config_load(void) +static int _sms_config_load(const char *filename) { int err; struct config_info config; struct stat sbuf; - err = stat(SMS_CONFIG_FILE, &sbuf); + err = stat(filename, &sbuf); if (err < 0) { if (errno == ENOENT) { - log_notice("sms config file missing"); + log_debug("sms config file missing"); return 0; } return -1; } - err = config_open(&config, SMS_CONFIG_FILE); + err = config_open(&config, filename); if (err < 0) { log_error("open config failed"); return -1; @@ -328,12 +327,20 @@ static int _sms_config_load(void) return 0; } +#define SMS_CONFIG_FILE ".smsconfig" + int sms_config_load(void) { int err; char *cp; char prev[PATH_MAX]; char *home; + char *config; + + config = getenv("SMS_CONFIG"); + if (config) { + return _sms_config_load(config); + } home = getenv("HOME"); if (!home) { @@ -349,7 +356,7 @@ int sms_config_load(void) chdir(home); - err = _sms_config_load(); + err = _sms_config_load(SMS_CONFIG_FILE); chdir(prev); |