Small fixes, code cleanup

This commit is contained in:
Michiel Broek 2002-02-04 21:22:27 +00:00
parent dd62eda1b4
commit 54df4da730
2 changed files with 88 additions and 80 deletions

View File

@ -1169,7 +1169,7 @@ void scheduler(void)
static char doing[32], buf[2048];
time_t now;
struct tm *tm, *utm;
#if !defined(__FreeBSD__) && !defined(__NetBSD__)
#if defined(__linux__)
FILE *fp;
#endif
struct pollfd pfd;
@ -1277,16 +1277,17 @@ void scheduler(void)
/*
* Check the systems load average. FIXME: doesn't work in FreeBSD !!!
*/
Load = 0.0;
loadavg[0] = loadavg[1] = loadavg[2] = 0.0;
Load = loadavg[0] = loadavg[1] = loadavg[2] = 0.0;
#if defined(__FreeBSD__) || defined(__NetBSD__)
if (getloadavg(loadavg, 3) == 3) {
Load = loadavg[0];
}
#else
#elif defined(__linux__)
if ((fp = fopen((char *)"/proc/loadavg", "r"))) {
if (fscanf(fp, "%f %f %f", &loadavg[0], &loadavg[1], &loadavg[2]) == 3) {
if (fscanf(fp, "%lf %lf %lf", &loadavg[0], &loadavg[1], &loadavg[2]) == 3) {
Load = loadavg[0];
} else {
tasklog('-', "error");
}
fclose(fp);
}

View File

@ -60,13 +60,13 @@ char *get_diskstat()
#if defined (__linux__)
mtab = calloc(PATH_MAX, sizeof(char));
if ((fp = fopen((char *)"/etc/mtab", "r")) == 0) {
if ((fp = fopen((char *)"/etc/mtab", "r")) == NULL) {
sprintf(buf, "100:0;");
return buf;
}
while (fgets(mtab, 255, fp)) {
mtab = calloc(PATH_MAX, sizeof(char));
while (fgets(mtab, PATH_MAX - 1, fp)) {
dev = strtok(mtab, " \t");
fs = strtok(NULL, " \t");
type = strtok(NULL, " \t");
@ -90,6 +90,7 @@ char *get_diskstat()
}
}
fclose(fp);
free(mtab);
if (strlen(tmp) > (SS_BUFSIZE - 8))
sprintf(buf, "100:0;");
@ -98,7 +99,10 @@ char *get_diskstat()
#elif defined(__FreeBSD__) || (__NetBSD__)
mntsize = getmntinfo(&mntbuf, MNT_NOWAIT);
if ((mntsize = getmntinfo(&mntbuf, MNT_NOWAIT)) == 0) {
sprintf(buf, "100:0;");
return buf;
}
for (i = 0; i < mntsize; i++) {
if ((strncmp(mntbuf[i].f_fstypename, (char *)"kernfs", 6)) &&
@ -116,7 +120,7 @@ char *get_diskstat()
mntbuf[i].f_mntonname, mntbuf[i].f_fstypename);
tmp = xstrcat(tmp, tt);
j++;
if (j == 10)
if (j == 10) /* No more then 10 filesystems */
break;
}
}
@ -131,6 +135,9 @@ char *get_diskstat()
sprintf(buf, "100:0;");
#endif
if (tmp != NULL)
free(tmp);
return buf;
}