fixes for power kernel 47 breaking temperature and voltage readings
[monky] / src / hddtemp.c
index 12e6f24..b1ba81e 100644 (file)
@@ -130,7 +130,7 @@ static char *fetch_hddtemp_output(void)
                close(sockfd);
        }
        if (!rp) {
-               NORM_ERR("could not connect to mpd host");
+               NORM_ERR("could not connect to hddtemp host");
                goto GET_OUT;
        }
 
@@ -172,6 +172,8 @@ static int read_hdd_val(const char *line, char **dev, short *val, char *unit,
        line_s = *saveptr;
 
 again:
+       if(!*p)
+               goto out_fail;
        /* read the device */
        *dev = ++p;
        if (!(p = strchr(p, line_s[0])))
@@ -204,29 +206,30 @@ out_fail:
        return 1;
 }
 
-void update_hddtemp(void) {
+int update_hddtemp(void) {
        char *data, *dev, unit, *saveptr;
        short val;
        static double last_hddtemp_update = 0.0;
 
        /* limit tcp connection overhead */
        if (current_update_time - last_hddtemp_update < 5)
-               return;
+               return 0;
        last_hddtemp_update = current_update_time;
 
        free_hddtemp_info();
 
        if (!(data = fetch_hddtemp_output()))
-               return;
+               return 0;
 
        if (read_hdd_val(data, &dev, &val, &unit, &saveptr)) {
                free(data);
-               return;
+               return 0;
        }
        do {
                add_hddtemp_info(dev, val, unit);
        } while (!read_hdd_val(NULL, &dev, &val, &unit, &saveptr));
        free(data);
+       return 0;
 }
 
 void free_hddtemp(void)