From: Oliver Ertl Date: Sun, 22 Jan 2006 11:44:35 +0000 (+0000) Subject: fix rrdcollect bug (closes #220) X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=0840a44a4f1906f238d4ba68aff3d1f2366e0bd6 fix rrdcollect bug (closes #220) SVN-Revision: 3033 --- diff --git a/openwrt/package/rrdcollect/files/rrdcollect.conf b/openwrt/package/rrdcollect/files/rrdcollect.conf index 1b374548ee..e34c9bff7b 100644 --- a/openwrt/package/rrdcollect/files/rrdcollect.conf +++ b/openwrt/package/rrdcollect/files/rrdcollect.conf @@ -19,15 +19,15 @@ exec:///bin/df # LAN: vlan0, WAN: vlan1, WIFI: eth1 file:///proc/net/dev -"vlan0: %d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:Labi,Lapi,Labo,Lapo -"vlan1: %d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:Wabi,Wapi,Wabo,Wapo -"eth1: %d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:Wibi,Wipi,Wibo,Wipo -#"tun0: %d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:tbi,tpi,tbo,tpo +" vlan0:%d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:Labi,Lapi,Labo,Lapo +" vlan1:%d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:Wabi,Wapi,Wabo,Wapo +" eth1:%d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:Wibi,Wipi,Wibo,Wipo +#" tun0:%d %d %*d %*d %*d %*d %*d %*d %d %d" IF.rrd:tbi,tpi,tbo,tpo file:///proc/slabinfo "ip_conntrack %d %*d %*d %*d %*d %*d" SYS.rrd:con "arp_cache %d %*d %*d %*d %*d %*d" SYS.rrd:arp file:///proc/interrupts -"4: %d MIPS eth1" SYS.rrd:irw -"5: %d MIPS eth0" SYS.rrd:ire +" 4: %d MIPS eth1" SYS.rrd:irw +" 5: %d MIPS eth0" SYS.rrd:ire diff --git a/openwrt/package/rrdcollect/patches/rrdcollect-scan.patch b/openwrt/package/rrdcollect/patches/rrdcollect-scan.patch new file mode 100644 index 0000000000..f47301ed13 --- /dev/null +++ b/openwrt/package/rrdcollect/patches/rrdcollect-scan.patch @@ -0,0 +1,66 @@ +diff -ruN rrdcollect-0.2.3.orig/src/scan.c rrdcollect-0.2.3/src/scan.c +--- rrdcollect-0.2.3.orig/src/scan.c 2005-01-20 18:42:17.000000000 +0100 ++++ rrdcollect-0.2.3/src/scan.c 2006-01-22 00:51:52.000000000 +0100 +@@ -74,6 +74,11 @@ + } while (isdigit(*fmt)); + } + ++ /* skip white spaces like scanf does */ ++ if (strchr("difuoxX", *fmt)) ++ while (isspace(*buf)) ++ buf++; ++ + /* FIXME: we should check afterward: + * if (start == buf || start == '-' && buf-start == 1) + * die("WTF??? zero-length number???"); +@@ -150,27 +155,22 @@ + buf++, length--; + } + +- /* ignore if value not found */ +- if(value == 0) +- return 0; +- + if (!ignore) +- counter[i++]->value = valuedup(value); ++ counter[i++]->value = strndup(start, buf - start); + break; + + case 'c': ++ if (length < 0) ++ length = 1; // default length is 1 ++ + while (*buf && length > 0) { + buf++, length--; + } + if (length > 0) + return 2; + +- /* ignore if value not found */ +- if(value == 0) +- return 0; +- + if (!ignore) +- counter[i++]->value = valuedup(value); ++ counter[i++]->value = strndup(start, buf - start); + break; + + +@@ -192,7 +192,7 @@ + case '\f': + case '\v': + /* don't match if not at least one space */ +- if(!isspace(*(buf))) ++ if(!isspace(*buf)) + return 0; + else + buf++; +@@ -208,7 +208,7 @@ + case '\v': + break; + default: +- while (isspace(*(buf))) ++ while (isspace(*buf)) + buf++; + } + fmt++;