[PATCH 3/8] sensord: Introduce struct sensord_arguments

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Apr 19, 2009 at 10:06:09AM +0200, Jean Delvare wrote:
> Hi Andre,
> 
> On Mon, 6 Apr 2009 09:57:09 +0200, Andre Prendel wrote:
> > Introduce struct sensord_arguments.
> > 
> > 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.
> 
> Good idea.
> 
> > ---
> > 
> >  args.c    |  100 +++++++++++++++++++++++++++++---------------------------------
> >  args.h    |   30 ++++++++++++++++++
> >  rrd.c     |   49 +++++++++++++++++-------------
> >  sense.c   |    6 +--
> >  sensord.c |   57 +++++++++++++++++++----------------
> >  sensord.h |   18 -----------
> >  6 files changed, 140 insertions(+), 120 deletions(-)
> > 
> > --- /dev/null	1970-01-01 00:00:00.000000000 +0000
> > +++ quilt-sensors/prog/sensord/args.h	2009-04-05 17:12:32.000000000 +0200
> > @@ -0,0 +1,30 @@
> > +#ifndef SENSORD_ARGS_H
> > +#define SENSORD_ARGS_H
> > +
> > +#include <lib/sensors.h>
> > +
> > +#define MAX_CHIP_NAMES 32
> > +
> > +struct sensord_arguments {
> > +	int isDaemon;
> > +	const char *cfgFile;
> > +	const char *pidFile;
> > +	const char *rrdFile;
> > +	const char *cgiDir;
> > +	int scanTime;
> > +	int logTime;
> > +	int rrdTime;
> > +	int rrdNoAverage;
> > +	int syslogFacility;
> > +	int doScan;
> > +	int doSet;
> > +	int doCGI;
> > +	int doLoad;
> > +	int debug;
> > +	sensors_chip_name chipNames[MAX_CHIP_NAMES];
> > +	int numChipNames;
> > +};
> > +
> > +extern struct sensord_arguments sensord_args;
> > +
> > +#endif	/* SENSORD_ARGS_H */
> > 
> > --- quilt-sensors.orig/prog/sensord/args.c	2009-04-04 18:25:19.000000000 +0200
> > +++ quilt-sensors/prog/sensord/args.c	2009-04-05 17:15:55.000000000 +0200
> > @@ -27,29 +27,19 @@
> >  #include <getopt.h>
> >  #include <syslog.h>
> >  
> > +#include "args.h"
> >  #include "sensord.h"
> >  #include "lib/error.h"
> >  #include "version.h"
> >  
> > -#define MAX_CHIP_NAMES 32
> > -
> > -int isDaemon = 0;
> > -const char *sensorsCfgFile = NULL;
> > -const char *pidFile = "/var/run/sensord.pid";
> > -const char *rrdFile = NULL;
> > -const char *cgiDir = NULL;
> > -int scanTime = 60;
> > -int logTime = 30 * 60;
> > -int rrdTime = 5 * 60;
> > -int rrdNoAverage = 0;
> > -int syslogFacility = LOG_LOCAL4;
> > -int doScan = 0;
> > -int doSet = 0;
> > -int doCGI = 0;
> > -int doLoad = 0;
> > -int debug = 0;
> > -sensors_chip_name chipNames[MAX_CHIP_NAMES];
> > -int numChipNames = 0;
> > +struct sensord_arguments sensord_args = {
> > +	.isDaemon = 0,
> 
> I'm curious why you initialize this field to 0 explicitly and none of
> the other 0 fields? I'm fairly certain global variables are initialized
> to 0 by the compiler so the above isn't needed.

You're right. I dont know why I have done this. Will fix it.

> 
> > +	.pidFile = "/var/run/sensord.pid",
> > +	.scanTime = 60,
> > +	.logTime = 30 * 60,
> > +	.rrdTime = 5 * 60,
> > +	.syslogFacility = LOG_LOCAL4,
> > +};
> >  
> >  static int parseTime(char *arg)
> >  {
> > @@ -170,12 +160,12 @@
> >  	const char *shortOptions;
> >  	const struct option *longOptions;
> >  
> > -	isDaemon = (argv[0][strlen (argv[0]) - 1] == 'd');
> > -	if (!isDaemon) {
> > +	sensord_args.isDaemon = (argv[0][strlen (argv[0]) - 1] == 'd');
> > +	if (!sensord_args.isDaemon) {
> >  		fprintf(stderr, "Sensord no longer runs as an commandline"
> >  			" application.\n");
> > -		return -1;
> > -	}
> > +  		return -1;
> > +  	}
> 
> You're adding leading spaces!
> 
> >  
> >  	shortOptions = daemonShortOptions;
> >  	longOptions = daemonLongOptions;
> > @@ -184,48 +174,49 @@
> >  	       != EOF) {
> >  		switch(c) {
> >  		case 'i':
> > -			if ((scanTime = parseTime(optarg)) < 0)
> > +			if ((sensord_args.scanTime = parseTime(optarg)) < 0)
> >  				return -1;
> >  			break;
> >  		case 'l':
> > -			if ((logTime = parseTime(optarg)) < 0)
> > +			if ((sensord_args.logTime = parseTime(optarg)) < 0)
> >  				return -1;
> >  			break;
> >  		case 't':
> > -			if ((rrdTime = parseTime(optarg)) < 0)
> > +			if ((sensord_args.rrdTime = parseTime(optarg)) < 0)
> >  				return -1;
> >  			break;
> >  		case 'T':
> > -			rrdNoAverage = 1;
> > +			sensord_args.rrdNoAverage = 1;
> >  			break;
> >  		case 'f':
> > -			if ((syslogFacility = parseFacility(optarg)) < 0)
> > +			sensord_args.syslogFacility = parseFacility(optarg);
> > +			if (sensord_args.syslogFacility < 0)
> >  				return -1;
> >  			break;
> >  		case 'a':
> > -			if (isDaemon)
> > -				doLoad = 1;
> > +			if (sensord_args.isDaemon)
> > +				sensord_args.doLoad = 1;
> >  			else
> > -				doScan = 1;
> > +				sensord_args.doScan = 1;
> >  			break;
> >  		case 's':
> > -			doSet = 1;
> > +			sensord_args.doSet = 1;
> >  			break;
> >  		case 'c':
> > -			sensorsCfgFile = optarg;
> > +			sensord_args.cfgFile = optarg;
> >  			break;
> >  		case 'p':
> > -			pidFile = optarg;
> > +			sensord_args.pidFile = optarg;
> >  			break;
> >  		case 'r':
> > -			rrdFile = optarg;
> > +			sensord_args.rrdFile = optarg;
> >  			break;
> >  		case 'd':
> > -			debug = 1;
> > +			sensord_args.debug = 1;
> >  			break;
> >  		case 'g':
> > -			doCGI = 1;
> > -			cgiDir = optarg;
> > +			sensord_args.doCGI = 1;
> > +			sensord_args.cgiDir = optarg;
> >  			break;
> >  		case 'v':
> >  			printf("sensord version %s\n", LM_VERSION);
> > @@ -250,37 +241,38 @@
> >  		}
> >  	}
> >  
> > -	if (doScan && doSet) {
> > +	if (sensord_args.doScan && sensord_args.doSet) {
> >  		fprintf(stderr,
> >  			"Error: Incompatible --set and --alarm-scan.\n");
> >  		return -1;
> >  	}
> >  
> > -	if (rrdFile && doSet) {
> > +	if (sensord_args.rrdFile && sensord_args.doSet) {
> >  		fprintf(stderr,
> >  			"Error: Incompatible --set and --rrd-file.\n");
> >  		return -1;
> >  	}
> >  
> > -	if (doScan && rrdFile) {
> > +	if (sensord_args.doScan && sensord_args.rrdFile) {
> >  		fprintf(stderr,
> >  			"Error: Incompatible --rrd-file and --alarm-scan.\n");
> >  		return -1;
> >  	}
> >  
> > -	if (doCGI && !rrdFile) {
> > +	if (sensord_args.doCGI && !sensord_args.rrdFile) {
> >  		fprintf(stderr,
> >  			"Error: Incompatible --rrd-cgi without --rrd-file.\n");
> >  		return -1;
> >  	}
> >  
> > -	if (rrdFile && !rrdTime) {
> > +	if (sensord_args.rrdFile && !sensord_args.rrdTime) {
> >  		fprintf(stderr,
> >  			"Error: Incompatible --rrd-file without --rrd-interval.\n");
> >  		return -1;
> >  	}
> >  
> > -	if (!logTime && !scanTime && !rrdFile) {
> > +	if (!sensord_args.logTime && !sensord_args.scanTime &&
> > +	    !sensord_args.rrdFile) {
> >  		fprintf(stderr,
> >  			"Error: No logging, alarm or RRD scanning.\n");
> >  		return -1;
> > @@ -292,11 +284,12 @@
> >  int parseChips(int argc, char **argv)
> >  {
> >  	if (optind == argc) {
> > -		chipNames[0].prefix = SENSORS_CHIP_NAME_PREFIX_ANY;
> > -		chipNames[0].bus.type = SENSORS_BUS_TYPE_ANY;
> > -		chipNames[0].bus.nr = SENSORS_BUS_NR_ANY;
> > -		chipNames[0].addr = SENSORS_CHIP_NAME_ADDR_ANY;
> > -		numChipNames = 1;
> > +		sensord_args.chipNames[0].prefix =
> > +			SENSORS_CHIP_NAME_PREFIX_ANY;
> > +		sensord_args.chipNames[0].bus.type = SENSORS_BUS_TYPE_ANY;
> > +		sensord_args.chipNames[0].bus.nr = SENSORS_BUS_NR_ANY;
> > +		sensord_args.chipNames[0].addr = SENSORS_CHIP_NAME_ADDR_ANY;
> > +		sensord_args.numChipNames = 1;
> >  	} else {
> >  		int i, n = argc - optind, err;
> >  		if (n > MAX_CHIP_NAMES) {
> > @@ -305,15 +298,18 @@
> >  		}
> >  		for (i = 0; i < n; ++ i) {
> >  			char *arg = argv[optind + i];
> > -			if ((err = sensors_parse_chip_name(arg,
> > -							   chipNames + i))) {
> > +
> > +			err = sensors_parse_chip_name(arg,
> > +						      sensord_args.chipNames +
> > +						      i);
> > +			if (err) {
> >  				fprintf(stderr,
> >  					"Invalid chip name `%s': %s\n", arg,
> >  					sensors_strerror(err));
> >  				return -1;
> >  			}
> >  		}
> > -		numChipNames = n;
> > +		sensord_args.numChipNames = n;
> >  	}
> >  	return 0;
> >  }
> > 
> > --- quilt-sensors.orig/prog/sensord/rrd.c	2009-04-04 18:25:19.000000000 +0200
> > +++ quilt-sensors/prog/sensord/rrd.c	2009-04-05 17:11:30.000000000 +0200
> > @@ -43,6 +43,7 @@
> >  
> >  #include <rrd.h>
> >  
> > +#include "args.h"
> >  #include "sensord.h"
> >  
> >  #define DO_READ 0
> > @@ -141,9 +142,9 @@
> >  	const sensors_chip_name *chip;
> >  	int i, j, ret = 0, num = 0;
> >  
> > -	for (j = 0; (ret == 0) && (j < numChipNames); ++ j) {
> > +	for (j = 0; (ret == 0) && (j < sensord_args.numChipNames); ++ j) {
> >  		i = 0;
> > -		while ((ret == 0) && ((chip = sensors_get_detected_chips(&chipNames[j], &i)) != NULL)) {
> > +		while ((ret == 0) && ((chip = sensors_get_detected_chips(&sensord_args.chipNames[j], &i)) != NULL)) {
> >  			int index0, chipindex = -1;
> >  
> >  			/* Trick: we compare addresses here. We know it works
> > @@ -223,8 +224,8 @@
> >  		 * number of seconds downtime during which average be used
> >  		 * instead of unknown
> >  		 */
> > -		sprintf(ptr, "DS:%s:GAUGE:%d:%s:%s", rawLabel, 5 * rrdTime,
> > -			min, max);
> > +		sprintf(ptr, "DS:%s:GAUGE:%d:%s:%s", rawLabel, 5 *
> > +			sensord_args.rrdTime, min, max);
> >  	}
> >  	return 0;
> >  }
> > @@ -234,7 +235,7 @@
> >  	int ret = 0;
> >  	struct ds data = { 0, argv};
> >  	ret = applyToFeatures(rrdGetSensors_DS, &data);
> > -	if (!ret && doLoad)
> > +	if (!ret && sensord_args.doLoad)
> >  		ret = rrdGetSensors_DS(&data, LOADAVG, LOAD_AVERAGE, NULL);
> >  	return ret ? -1 : data.num;
> >  }
> > @@ -245,12 +246,12 @@
> >  	struct stat tmp;
> >  
> >  	sensorLog(LOG_DEBUG, "sensor RRD init");
> > -	if (stat(rrdFile, &tmp)) {
> > +	if (stat(sensord_args.rrdFile, &tmp)) {
> >  		if (errno == ENOENT) {
> >  			char stepBuff[STEP_BUFF], rraBuff[RRA_BUFF];
> >  			int argc = 4, num;
> >  			const char *argv[6 + MAX_RRD_SENSORS] = {
> > -				"sensord", rrdFile, "-s", stepBuff
> > +				"sensord", sensord_args.rrdFile, "-s", stepBuff
> >  			};
> >  
> >  			sensorLog(LOG_INFO, "creating round robin database");
> > @@ -258,17 +259,21 @@
> >  			if (num == 0) {
> >  				sensorLog(LOG_ERR,
> >  					  "Error creating RRD: %s: %s",
> > -					  rrdFile, "No sensors detected");
> > +					  sensord_args.rrdFile,
> > +					  "No sensors detected");
> >  				ret = 2;
> >  			} else if (num < 0) {
> >  				ret = -num;
> >  			} else {
> > -				sprintf(stepBuff, "%d", rrdTime);
> > +				sprintf(stepBuff, "%d", sensord_args.rrdTime);
> >  				sprintf(rraBuff, "RRA:%s:%f:%d:%d",
> > -					rrdNoAverage?"LAST":"AVERAGE",
> > +					sensord_args.rrdNoAverage ? "LAST" :
> > +					"AVERAGE",
> >  					0.5 /* fraction of non-unknown samples needed per entry */,
> >  					1 /* samples per entry */,
> > -					7 * 24 * 60 * 60 / rrdTime /* 1 week */);
> > +					7 * 24 * 60 * 60 /
> > +					sensord_args.rrdTime /* 1 week */);
> > +
> >  				argc += num;
> >  				argv[argc ++] = rraBuff;
> >  				argv[argc] = NULL;
> > @@ -276,12 +281,13 @@
> >  						      (char **) /* WEAK */ argv))) {
> >  					sensorLog(LOG_ERR,
> >  						  "Error creating RRD file: %s: %s",
> > -						  rrdFile, rrd_get_error());
> > +						  sensord_args.rrdFile,
> > +						  rrd_get_error());
> >  				}
> >  			}
> >  		} else {
> >  			sensorLog(LOG_ERR, "Error stat()ing RRD: %s: %s",
> > -				  rrdFile, strerror(errno));
> > +				  sensord_args.rrdFile, strerror(errno));
> >  			ret = 1;
> >  		}
> >  	}
> > @@ -310,8 +316,8 @@
> >  	struct gr *data = (struct gr *) _data;
> >  	(void) label; /* no warning */
> >  	if (!feature || (feature->rrd && (feature->type == data->type)))
> > -		printf("\n\tDEF:%s=%s:%s:AVERAGE", rawLabel, rrdFile,
> > -		       rawLabel);
> > +		printf("\n\tDEF:%s=%s:%s:AVERAGE", rawLabel,
> > +		       sensord_args.rrdFile, rawLabel);
> >  	return 0;
> >  }
> >  
> > @@ -420,7 +426,8 @@
> >  int rrdUpdate(void)
> >  {
> >  	int ret = rrdChips ();
> > -	if (!ret && doLoad) {
> > +
> > +	if (!ret && sensord_args.doLoad) {
> >  		FILE *loadavg;
> >  		if (!(loadavg = fopen("/proc/loadavg", "r"))) {
> >  			sensorLog(LOG_ERR,
> > @@ -442,11 +449,11 @@
> >  	}
> >  	if (!ret) {
> >  		const char *argv[] = {
> > -			"sensord", rrdFile, rrdBuff, NULL
> > +			"sensord", sensord_args.rrdFile, rrdBuff, NULL
> >  		};
> >  		if ((ret = rrd_update(3, (char **) /* WEAK */ argv))) {
> >  			sensorLog(LOG_ERR, "Error updating RRD file: %s: %s",
> > -				  rrdFile, rrd_get_error());
> > +				  sensord_args.rrdFile, rrd_get_error());
> >  		}
> >  	}
> >  	sensorLog(LOG_DEBUG, "sensor rrd updated");
> > @@ -463,17 +470,17 @@
> >  	while (graph->type != DataType_other) {
> >  		printf("<H2>%s</H2>\n", graph->h2);
> >  		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",
> > -		       cgiDir, graph->image);
> > +		       sensord_args.cgiDir, graph->image);
> >  		printf("\t--lazy\n\t-v '%s'\n\t-t '%s'\n\t-x '%s'\n\t%s",
> >  		       graph->axisTitle, graph->title, graph->axisDefn,
> >  		       graph->options);
> >  		if (!ret)
> >  			ret = applyToFeatures(rrdCGI_DEF, graph);
> > -		if (!ret && doLoad && graph->loadAvg)
> > +		if (!ret && sensord_args.doLoad && graph->loadAvg)
> >  			ret = rrdCGI_DEF(graph, LOADAVG, LOAD_AVERAGE, NULL);
> >  		if (!ret)
> >  			ret = applyToFeatures(rrdCGI_LINE, graph);
> > -		if (!ret && doLoad && graph->loadAvg)
> > +		if (!ret && sensord_args.doLoad && graph->loadAvg)
> >  			ret = rrdCGI_LINE(graph, LOADAVG, LOAD_AVERAGE, NULL);
> >  		printf (">\n</P>\n");
> >  		++ graph;
> > 
> > --- quilt-sensors.orig/prog/sensord/sensord.c	2009-04-04 18:25:19.000000000 +0200
> > +++ quilt-sensors/prog/sensord/sensord.c	2009-04-05 17:11:30.000000000 +0200
> > @@ -33,6 +33,7 @@
> >  #include <sys/types.h>
> >  #include <sys/stat.h>
> >  
> > +#include "args.h"
> >  #include "sensord.h"
> >  
> >  static int logOpened = 0;
> > @@ -52,7 +53,7 @@
> >  	vsnprintf(buffer, LOG_BUFFER, fmt, ap);
> >  	buffer[LOG_BUFFER] = '\0';
> >  	va_end(ap);
> > -	if (debug || (priority < LOG_DEBUG)) {
> > +	if (sensord_args.debug || (priority < LOG_DEBUG)) {
> >  		if (logOpened) {
> >  			syslog(priority, "%s", buffer);
> >  		} else {
> > @@ -83,31 +84,33 @@
> >  	 * First RRD update at next RRD timeslot to prevent failures due
> >  	 * one timeslot updated twice on restart for example.
> >  	 */
> > -	int rrdValue = rrdTime - time(NULL) % rrdTime;
> > +	int rrdValue = sensord_args.rrdTime - time(NULL) %
> > +		sensord_args.rrdTime;
> >  
> >  	sensorLog(LOG_INFO, "sensord started");
> >  
> >  	while (!done) {
> >  		if (reload) {
> > -			ret = reloadLib(sensorsCfgFile);
> > +			ret = reloadLib(sensord_args.cfgFile);
> >  			if (ret)
> >  				sensorLog(LOG_NOTICE,
> >  					  "config reload error (%d)", ret);
> >  			reload = 0;
> >  		}
> > -		if (scanTime && (scanValue <= 0)) {
> > +		if (sensord_args.scanTime && (scanValue <= 0)) {
> >  			if ((ret = scanChips()))
> >  				sensorLog(LOG_NOTICE,
> >  					  "sensor scan error (%d)", ret);
> > -			scanValue += scanTime;
> > +			scanValue += sensord_args.scanTime;
> >  		}
> > -		if (logTime && (logValue <= 0)) {
> > +		if (sensord_args.logTime && (logValue <= 0)) {
> >  			if ((ret = readChips()))
> >  				sensorLog(LOG_NOTICE,
> >  					  "sensor read error (%d)", ret);
> > -			logValue += logTime;
> > +			logValue += sensord_args.logTime;
> >  		}
> > -		if (rrdTime && rrdFile && (rrdValue <= 0)) {
> > +		if (sensord_args.rrdTime && sensord_args.rrdFile &&
> > +		    (rrdValue <= 0)) {
> >  			if ((ret = rrdUpdate()))
> >  				sensorLog(LOG_NOTICE,
> >  					  "rrd update error (%d)", ret);
> > @@ -116,12 +119,14 @@
> >  			 * same method as in RRD instead of simply adding the
> >  			 * interval.
> >  			 */
> > -			rrdValue = rrdTime - time(NULL) % rrdTime;
> > +			rrdValue = sensord_args.rrdTime - time(NULL) %
> > +				sensord_args.rrdTime;
> >  		}
> >  		if (!done) {
> > -			int a = logTime ? logValue : INT_MAX;
> > -			int b = scanTime ? scanValue : INT_MAX;
> > -			int c = (rrdTime && rrdFile) ? rrdValue : INT_MAX;
> > +			int a = sensord_args.logTime ? logValue : INT_MAX;
> > +			int b = sensord_args.scanTime ? scanValue : INT_MAX;
> > +			int c = (sensord_args.rrdTime && sensord_args.rrdFile)
> > +				? rrdValue : INT_MAX;
> >  			int sleepTime = (a < b) ? ((a < c) ? a : c) :
> >  				((b < c) ? b : c);
> >  			sleep(sleepTime);
> > @@ -138,7 +143,7 @@
> >  
> >  static void openLog(void)
> >  {
> > -	openlog("sensord", 0, syslogFacility);
> > +	openlog("sensord", 0, sensord_args.syslogFacility);
> >  	logOpened = 1;
> >  }
> >  
> > @@ -153,16 +158,16 @@
> >  		exit(EXIT_FAILURE);
> >  	}
> >  
> > -	if (!(stat(pidFile, &fileStat)) &&
> > +	if (!(stat(sensord_args.pidFile, &fileStat)) &&
> >  	    ((!S_ISREG(fileStat.st_mode)) || (fileStat.st_size > 11))) {
> >  		fprintf(stderr,
> >  			"Error: PID file `%s' already exists and looks suspicious.\n",
> > -			pidFile);
> > +			sensord_args.pidFile);
> >  		exit(EXIT_FAILURE);
> >  	}
> >  
> > -	if (!(file = fopen(pidFile, "w"))) {
> > -		fprintf(stderr, "fopen(\"%s\"): %s\n", pidFile,
> > +	if (!(file = fopen(sensord_args.pidFile, "w"))) {
> > +		fprintf(stderr, "fopen(\"%s\"): %s\n", sensord_args.pidFile,
> >  			strerror(errno));
> >  		exit(EXIT_FAILURE);
> >  	}
> > @@ -197,7 +202,7 @@
> >  
> >  static void undaemonize(void)
> >  {
> > -	unlink(pidFile);
> > +	unlink(sensord_args.pidFile);
> >  	closelog();
> >  }
> >  
> > @@ -209,27 +214,27 @@
> >  	    parseChips(argc, argv))
> >  		exit(EXIT_FAILURE);
> >  
> > -	if (loadLib(sensorsCfgFile))
> > +	if (loadLib(sensord_args.cfgFile))
> >  		exit(EXIT_FAILURE);
> >  
> > -	if (isDaemon)
> > +	if (sensord_args.isDaemon)
> >  		openLog();
> > -	if (rrdFile)
> > +	if (sensord_args.rrdFile)
> >  		ret = rrdInit();
> >  
> >  	if (ret) {
> > -	} else if (doCGI) {
> > +	} else if (sensord_args.doCGI) {
> >  		ret = rrdCGI();
> > -	} else if (isDaemon) {
> > +	} else if (sensord_args.isDaemon) {
> >  		daemonize();
> >  		ret = sensord();
> >  		undaemonize();
> >  	} else {
> > -		if (doSet)
> > +		if (sensord_args.doSet)
> >  			ret = setChips();
> > -		else if (doScan)
> > +		else if (sensord_args.doScan)
> >  			ret = scanChips();
> > -		else if (rrdFile)
> > +		else if (sensord_args.rrdFile)
> >  			ret = rrdUpdate();
> >  		else
> >  			ret = readChips();
> > 
> > --- quilt-sensors.orig/prog/sensord/sense.c	2009-04-04 18:25:19.000000000 +0200
> > +++ quilt-sensors/prog/sensord/sense.c	2009-04-04 18:25:22.000000000 +0200
> > @@ -26,6 +26,7 @@
> >  #include <string.h>
> >  #include <syslog.h>
> >  
> > +#include "args.h"
> >  #include "sensord.h"
> >  #include "lib/error.h"
> >  
> > @@ -189,11 +190,10 @@
> >  	const sensors_chip_name *chip;
> >  	int i, j, ret = 0;
> >  
> > -	for (j = 0; (ret == 0) && (j < numChipNames); ++ j) {
> > +	for (j = 0; (ret == 0) && (j < sensord_args.numChipNames); ++ j) {
> >  		i = 0;
> >  		while ((ret == 0) &&
> > -		       ((chip = sensors_get_detected_chips(&chipNames[j], &i))
> > -			!= NULL)) {
> > +		       ((chip = sensors_get_detected_chips(&sensord_args.chipNames[j], &i)) != NULL)) {
> >  			ret = doChip(chip, action);
> >  		}
> >  	}
> > 
> > --- quilt-sensors.orig/prog/sensord/sensord.h	2009-04-04 18:25:19.000000000 +0200
> > +++ quilt-sensors/prog/sensord/sensord.h	2009-04-04 18:25:22.000000000 +0200
> > @@ -27,24 +27,6 @@
> >  
> >  /* from args.c */
> >  
> > -extern int isDaemon;
> > -extern const char *sensorsCfgFile;
> > -extern const char *pidFile;
> > -extern const char *rrdFile;
> > -extern const char *cgiDir;
> > -extern int scanTime;
> > -extern int logTime;
> > -extern int rrdTime;
> > -extern int rrdNoAverage;
> > -extern int syslogFacility;
> > -extern int doScan;
> > -extern int doSet;
> > -extern int doCGI;
> > -extern int doLoad;
> > -extern int debug;
> > -extern sensors_chip_name chipNames[];
> > -extern int numChipNames;
> > -
> >  extern int parseArgs(int argc, char **argv);
> >  extern int parseChips(int argc, char **argv);
> >  
> 
> All the rest looks OK to me.
> 
> -- 
> Jean Delvare



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux