diff -ruN inn-1.4unoff4.orig/nnrpd/loadave.c inn-1.4unoff4/nnrpd/loadave.c --- inn-1.4unoff4.orig/nnrpd/loadave.c Fri Jan 29 17:51:58 1993 +++ inn-1.4unoff4/nnrpd/loadave.c Sun Apr 7 16:17:07 1996 @@ -3,6 +3,36 @@ */ #include "nnrpd.h" #if NNRP_LOADLIMIT > 0 + +#ifdef __linux__ + +/* +** Get the current load average as an integer. +*/ +int +GetLoadAverage() +{ + int fd, n; + char buf[16]; + double avenrun; + char *s; + + if ((fd = open("/proc/loadavg", O_RDONLY)) < 0) + return 0; + n = read(fd, buf, sizeof(buf) - 1); + close(fd); + if (n < 0) return 0; + buf[n] = 0; + if ((s = strchr(buf, ' ')) != NULL) + *s = 0; + sscanf(buf, "%lf", &avenrun); + + return (int)(avenrun + 0.5); +} + +#else /* __linux__ */ + + #include STATIC struct nlist NameList[] = { { "_avenrun" }, @@ -55,4 +85,7 @@ return (int)(avenrun[0] + 0.5); #endif /* defined(FSCALE) */ } + +#endif /* __linux__ */ + #endif /* NNRP_LOADLIMIT > 0 */