Show
Ignore:
Timestamp:
05/13/09 18:04:51 (5 years ago)
Author:
andy
Message:

sensord: Introduce struct sensord_args.

This structure encapsulate all the variables holding the commandline
arguments. So we get rid of plenty of extern variables. This reduces
namespace collisions and unifies access.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/prog/sensord/rrd.c

    r5679 r5719  
    4444#include <rrd.h> 
    4545 
     46#include "args.h" 
    4647#include "sensord.h" 
    4748 
     
    142143        int i, j, ret = 0, num = 0; 
    143144 
    144         for (j = 0; (ret == 0) && (j < numChipNames); ++ j) { 
     145        for (j = 0; (ret == 0) && (j < sensord_args.numChipNames); ++ j) { 
    145146                i = 0; 
    146                 while ((ret == 0) && ((chip = sensors_get_detected_chips(&chipNames[j], &i)) != NULL)) { 
     147                while ((ret == 0) && ((chip = sensors_get_detected_chips(&sensord_args.chipNames[j], &i)) != NULL)) { 
    147148                        int index0, chipindex = -1; 
    148149 
     
    224225                 * instead of unknown 
    225226                 */ 
    226                 sprintf(ptr, "DS:%s:GAUGE:%d:%s:%s", rawLabel, 5 * rrdTime, 
    227                         min, max); 
     227                sprintf(ptr, "DS:%s:GAUGE:%d:%s:%s", rawLabel, 5 * 
     228                        sensord_args.rrdTime, min, max); 
    228229        } 
    229230        return 0; 
     
    235236        struct ds data = { 0, argv}; 
    236237        ret = applyToFeatures(rrdGetSensors_DS, &data); 
    237         if (!ret && doLoad) 
     238        if (!ret && sensord_args.doLoad) 
    238239                ret = rrdGetSensors_DS(&data, LOADAVG, LOAD_AVERAGE, NULL); 
    239240        return ret ? -1 : data.num; 
     
    246247 
    247248        sensorLog(LOG_DEBUG, "sensor RRD init"); 
    248         if (stat(rrdFile, &tmp)) { 
     249        if (stat(sensord_args.rrdFile, &tmp)) { 
    249250                if (errno == ENOENT) { 
    250251                        char stepBuff[STEP_BUFF], rraBuff[RRA_BUFF]; 
    251252                        int argc = 4, num; 
    252253                        const char *argv[6 + MAX_RRD_SENSORS] = { 
    253                                 "sensord", rrdFile, "-s", stepBuff 
     254                                "sensord", sensord_args.rrdFile, "-s", stepBuff 
    254255                        }; 
    255256 
     
    259260                                sensorLog(LOG_ERR, 
    260261                                          "Error creating RRD: %s: %s", 
    261                                           rrdFile, "No sensors detected"); 
     262                                          sensord_args.rrdFile, 
     263                                          "No sensors detected"); 
    262264                                ret = 2; 
    263265                        } else if (num < 0) { 
    264266                                ret = -num; 
    265267                        } else { 
    266                                 sprintf(stepBuff, "%d", rrdTime); 
     268                                sprintf(stepBuff, "%d", sensord_args.rrdTime); 
    267269                                sprintf(rraBuff, "RRA:%s:%f:%d:%d", 
    268                                         rrdNoAverage?"LAST":"AVERAGE", 
     270                                        sensord_args.rrdNoAverage ? "LAST" : 
     271                                        "AVERAGE", 
    269272                                        0.5 /* fraction of non-unknown samples needed per entry */, 
    270273                                        1 /* samples per entry */, 
    271                                         7 * 24 * 60 * 60 / rrdTime /* 1 week */); 
     274                                        7 * 24 * 60 * 60 / 
     275                                        sensord_args.rrdTime /* 1 week */); 
     276 
    272277                                argc += num; 
    273278                                argv[argc ++] = rraBuff; 
     
    277282                                        sensorLog(LOG_ERR, 
    278283                                                  "Error creating RRD file: %s: %s", 
    279                                                   rrdFile, rrd_get_error()); 
     284                                                  sensord_args.rrdFile, 
     285                                                  rrd_get_error()); 
    280286                                } 
    281287                        } 
    282288                } else { 
    283289                        sensorLog(LOG_ERR, "Error stat()ing RRD: %s: %s", 
    284                                   rrdFile, strerror(errno)); 
     290                                  sensord_args.rrdFile, strerror(errno)); 
    285291                        ret = 1; 
    286292                } 
     
    311317        (void) label; /* no warning */ 
    312318        if (!feature || (feature->rrd && (feature->type == data->type))) 
    313                 printf("\n\tDEF:%s=%s:%s:AVERAGE", rawLabel, rrdFile, 
    314                        rawLabel); 
     319                printf("\n\tDEF:%s=%s:%s:AVERAGE", rawLabel, 
     320                       sensord_args.rrdFile, rawLabel); 
    315321        return 0; 
    316322} 
     
    421427{ 
    422428        int ret = rrdChips (); 
    423         if (!ret && doLoad) { 
     429 
     430        if (!ret && sensord_args.doLoad) { 
    424431                FILE *loadavg; 
    425432                if (!(loadavg = fopen("/proc/loadavg", "r"))) { 
     
    443450        if (!ret) { 
    444451                const char *argv[] = { 
    445                         "sensord", rrdFile, rrdBuff, NULL 
     452                        "sensord", sensord_args.rrdFile, rrdBuff, NULL 
    446453                }; 
    447454                if ((ret = rrd_update(3, (char **) /* WEAK */ argv))) { 
    448455                        sensorLog(LOG_ERR, "Error updating RRD file: %s: %s", 
    449                                   rrdFile, rrd_get_error()); 
     456                                  sensord_args.rrdFile, rrd_get_error()); 
    450457                } 
    451458        } 
     
    464471                printf("<H2>%s</H2>\n", graph->h2); 
    465472                printf("<P>\n<RRD::GRAPH %s/%s.png\n\t--imginfo '<IMG SRC=" WWWDIR "/%%s WIDTH=%%lu HEIGHT=%%lu>'\n\t-a PNG\n\t-h 200 -w 800\n", 
    466                        cgiDir, graph->image); 
     473                       sensord_args.cgiDir, graph->image); 
    467474                printf("\t--lazy\n\t-v '%s'\n\t-t '%s'\n\t-x '%s'\n\t%s", 
    468475                       graph->axisTitle, graph->title, graph->axisDefn, 
     
    470477                if (!ret) 
    471478                        ret = applyToFeatures(rrdCGI_DEF, graph); 
    472                 if (!ret && doLoad && graph->loadAvg) 
     479                if (!ret && sensord_args.doLoad && graph->loadAvg) 
    473480                        ret = rrdCGI_DEF(graph, LOADAVG, LOAD_AVERAGE, NULL); 
    474481                if (!ret) 
    475482                        ret = applyToFeatures(rrdCGI_LINE, graph); 
    476                 if (!ret && doLoad && graph->loadAvg) 
     483                if (!ret && sensord_args.doLoad && graph->loadAvg) 
    477484                        ret = rrdCGI_LINE(graph, LOADAVG, LOAD_AVERAGE, NULL); 
    478485                printf (">\n</P>\n");