diff --recursive --unified --ignore-space-change mrtg-2.9.0pre24/bin/mrtg mrtg-2.9.0pre24-ds/bin/mrtg --- mrtg-2.9.0pre24/bin/mrtg Tue Sep 5 17:07:51 2000 +++ mrtg-2.9.0pre24-ds/bin/mrtg Tue Sep 12 22:15:03 2000 @@ -424,7 +424,7 @@ @exec = ("${FindBin::Bin}${MRTG_lib::SL}rateup", "$$cfg{'logdir'}$$rcfg{'directory'}{$router}","$router", $time, $$rcfg{'options'}{'unknaszero'}{$router} ? '-z':'-Z', - "$up_abs"."p", $inlast, $outlast, $absmax, + "$up_abs"."p", $inlast, $outlast, $absmax, $$rcfg{'options'}{'nomax'}{$router} ? '1' : '0', "C", $$rcfg{'rgb1'}{$router},$$rcfg{'rgb2'}{$router}, $$rcfg{'rgb3'}{$router},$$rcfg{'rgb4'}{$router}, $$rcfg{'rgb5'}{$router}); @@ -432,7 +432,7 @@ @exec = ("${FindBin::Bin}${MRTG_lib::SL}rateup", "$$cfg{'logdir'}$$rcfg{'directory'}{$router}","$router", $time, $$rcfg{'options'}{'unknaszero'}{$router} ? '-z':'-Z', - "$up_abs", $inlast, $outlast, $absmax, + "$up_abs", $inlast, $outlast, $absmax, $$rcfg{'options'}{'nomax'}{$router} ? '1' : '0', "c", $$rcfg{'rgb1'}{$router},$$rcfg{'rgb2'}{$router}, $$rcfg{'rgb3'}{$router},$$rcfg{'rgb4'}{$router}); } diff --recursive --unified --ignore-space-change mrtg-2.9.0pre24/lib/mrtg2/MRTG_lib.pm mrtg-2.9.0pre24-ds/lib/mrtg2/MRTG_lib.pm --- mrtg-2.9.0pre24/lib/mrtg2/MRTG_lib.pm Tue Sep 5 17:07:56 2000 +++ mrtg-2.9.0pre24-ds/lib/mrtg2/MRTG_lib.pm Tue Sep 12 22:02:00 2000 @@ -514,7 +514,7 @@ my ($rou, $confname, $one_option); my $error="no"; my(@known_options) = qw(growright bits noinfo absolute gauge nopercent - integer perhour perminute transparent dorelpercent unknaszero withzeros); + integer perhour perminute transparent dorelpercent unknaszero withzeros nomax); if (defined $$cfg{workdir}) { ensureSL(\$$cfg{workdir}); diff --recursive --unified --ignore-space-change mrtg-2.9.0pre24/src/rateup.c mrtg-2.9.0pre24-ds/src/rateup.c --- mrtg-2.9.0pre24/src/rateup.c Tue Sep 5 17:07:56 2000 +++ mrtg-2.9.0pre24-ds/src/rateup.c Tue Sep 12 22:14:58 2000 @@ -896,10 +896,11 @@ } } -void update(in, out, abs_max, absupdate) +void update(in, out, abs_max, absupdate, noabsmax) char *in, *out; unsigned long abs_max; int absupdate; +int noabsmax; { FILE *fo; char buf[128],buf1[128],buf2[128]; @@ -956,6 +957,10 @@ outrate = diff(out,last.out) / period; } } + +if(noabsmax) + abs_max = (unsigned long)-1; + if (inrate < 0 || inrate > abs_max) { if (unknaszero == 1) { inrate = 0; /* sync unknown to zero */ @@ -1268,36 +1273,36 @@ if (argv[argi][1] == 'p') { dorelpercent = 1; } - update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),0); - used = 4; + update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),0, atoi(argv[argi+4])); + used = 5; break; case 'a': /* Absolute Update file */ if (argv[argi][1] == 'p') { dorelpercent = 1; } - update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),1); - used = 4; + update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),1, atoi(argv[argi+4])); + used = 5; break; case 'g': /* Gauge Update file */ if (argv[argi][1] == 'p') { dorelpercent = 1; } - update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),2); - used = 4; + update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),2, atoi(argv[argi+4])); + used = 5; break; case 'h': if (argv[argi][1] == 'p') { dorelpercent = 1; } - update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),3); - used = 4; + update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),3, atoi(argv[argi+4])); + used = 5; break; case 'm': if (argv[argi][1] == 'p') { dorelpercent = 1; } - update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),4); - used = 4; + update(argv[argi+1],argv[argi+2],atol(argv[argi+3]),4, atoi(argv[argi+4])); + used = 5; break; case 'W': /* Week format */ weekformat = argv[argi+1][0];