summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sms_config.c19
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);