diff --git a/prog/sensord/lib.c b/prog/sensord/lib.c index d8d4c0b4..1fa4e812 100644 --- a/prog/sensord/lib.c +++ b/prog/sensord/lib.c @@ -21,6 +21,7 @@ * MA 02110-1301 USA. */ +#include #include #include #include @@ -34,46 +35,47 @@ static int loadConfig(const char *cfgPath, int reload) { - struct stat stats; - FILE *cfg = NULL; - int ret = 0; + int ret; + FILE *fp; - if (cfgPath && !strcmp(cfgPath, "-")) { - if (!reload) { - if ((ret = sensors_init(stdin))) { - sensorLog(LOG_ERR, - "Error loading sensors configuration file : %s", - sensors_strerror(ret)); - ret = 12; - } - } - } else if (cfgPath && stat(cfgPath, &stats) < 0) { - sensorLog(LOG_ERR, - "Error stating sensors configuration file: %s", - cfgPath); - ret = 10; - } else { - if (reload) { + /* Load default configuration. */ + if (!cfgPath) { + if (reload) { sensorLog(LOG_INFO, "configuration reloading"); sensors_cleanup(); } - if (cfgPath && !(cfg = fopen(cfgPath, "r"))) { - sensorLog(LOG_ERR, - "Error opening sensors configuration file: %s", - cfgPath); - ret = 11; - } else if ((ret = sensors_init(cfg))) { - sensorLog(LOG_ERR, - "Error loading sensors configuration file %s: %s", - cfgPath ? cfgPath : "(default)", - sensors_strerror(ret)); - ret = 11; - } - if (cfg) - fclose(cfg); - } - return ret; + ret = sensors_init(NULL); + if (ret) { + sensorLog(LOG_ERR, "Error loading default" + " configuration file: %s", + sensors_strerror(ret)); + return -1; + } + return 0; + } + + fp = fopen(cfgPath, "r"); + if (!fp) { + sensorLog(LOG_ERR, "Error opening config file %s: %s", + strerror(errno)); + return -1; + } + + if (reload) { + sensorLog(LOG_INFO, "configuration reloading"); + sensors_cleanup(); + } + ret = sensors_init(fp); + if (ret) { + sensorLog(LOG_ERR, "Error loading sensors configuration file" + " %s: %s", cfgPath, sensors_strerror(ret)); + fclose(fp); + return -1; + } + fclose(fp); + + return 0; } int loadLib(const char *cfgPath) diff --git a/prog/sensord/sensord.c b/prog/sensord/sensord.c index 198717c7..8d512211 100644 --- a/prog/sensord/sensord.c +++ b/prog/sensord/sensord.c @@ -93,8 +93,8 @@ static int sensord(void) if (reload) { ret = reloadLib(sensord_args.cfgFile); if (ret) - sensorLog(LOG_NOTICE, - "config reload error (%d)", ret); + sensorLog(LOG_NOTICE, "configuration reload" + " error"); reload = 0; } if (sensord_args.scanTime && (scanValue <= 0)) {