diff options
author | mfechner <mfechner@FreeBSD.org> | 2018-11-08 03:40:59 +0800 |
---|---|---|
committer | mfechner <mfechner@FreeBSD.org> | 2018-11-08 03:40:59 +0800 |
commit | ba2e01a242e4ec4b3a7094eae8c0d451abde5e85 (patch) | |
tree | 3b705599c0d7b4175a5d486db48aed673ea86368 /net | |
parent | b1869f837ac1ccd09724cc8a116c3521db290d08 (diff) | |
download | freebsd-ports-gnome-ba2e01a242e4ec4b3a7094eae8c0d451abde5e85.tar.gz freebsd-ports-gnome-ba2e01a242e4ec4b3a7094eae8c0d451abde5e85.tar.zst freebsd-ports-gnome-ba2e01a242e4ec4b3a7094eae8c0d451abde5e85.zip |
* Fix runtime PHP errors that stop the code working if short_opentag is disabled (default!)
* Remove most PHP warnings/notices that go to error_log
* Convert patches to new format where needed
* Fix HTML output to be valid
* Fix quoting of SQL objects
* Fix escaping of user-provided SQL data (potential sql injection)
* Widen fields in 95.php and 95.pl for interface and router names
* Fix warnings in perl modules in newer perl versions
* Fix createdb script to use CREATE USER/GRANT not manipulate user db directly
* Add "Update_desc" config entry to auto-update port descriptions from snmp
* Update default SNMP version to 2
* Although this doesn't reference any CVE's, it does contain fixes for potential security issues
PR: 227376
Submitted by: freebsd-ports@dan.me.uk (maintainer)
Reported by: freebsd-ports@dan.me.uk (maintainer)
Reviewed by: mfechner
Approved by: mentors (timeout), portmgr (timeout)
MFC after: 2 days
Differential Revision: https://reviews.freebsd.org/D17637
Diffstat (limited to 'net')
25 files changed, 1366 insertions, 359 deletions
diff --git a/net/rtg/Makefile b/net/rtg/Makefile index c05c4e49c3b0..9ba19c74c060 100644 --- a/net/rtg/Makefile +++ b/net/rtg/Makefile @@ -3,7 +3,7 @@ PORTNAME= rtg PORTVERSION= 0.7.4 -PORTREVISION= 14 +PORTREVISION= 15 CATEGORIES= net MASTER_SITES= SF \ ftp://ftpmirror.uk/freebsd-ports/rtg/ @@ -17,9 +17,13 @@ LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp RUN_DEPENDS= p5-DBI>=0:databases/p5-DBI \ p5-DBD-mysql>=0:databases/p5-DBD-mysql +FLAVORS= web noweb +noweb_PKGNAMESUFFIX= poller +web_PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX} + +USES= shebangfix perl5 mysql:client ssl USE_RC_SUBR= rtgpoll -WANT_PERL= yes -USES= shebangfix mysql:client ssl + SHEBANG_FILES= etc/95.pl etc/report.pl etc/rtgtargmkr.pl.in SUB_FILES= pkg-message GNU_CONFIGURE= yes @@ -30,19 +34,22 @@ CONFIGURE_ARGS+= --sysconfdir=${PREFIX}/etc/${PORTNAME} \ USERS= rtg GROUPS= rtg -OPTIONS_DEFINE= WEB MYSQL -OPTIONS_DEFAULT=WEB +.if ${FLAVOR:U} == web +USES+= php:web,flavors +USE_PHP= mysqli spl +.endif + +OPTIONS_DEFINE= MYSQL MYSQL_DESC= Pull MySQL server in as a dependancy for local setups -WEB_DESC= Include PHP-based web client interface pre-requisites MYSQL_USES= mysql:server -WEB_USES= php -USE_PHP= mysqli spl - CFLAGS+= -fstack-protector LDFLAGS+= -fstack-protector +pre-configure: + ${REINPLACE_CMD} -e 's/my_thread_init/mysql_thread_init/' ${WRKSRC}/configure + post-patch: @${MV} ${WRKSRC}/etc/rtg.conf ${WRKSRC}/etc/rtg.conf.sample @${MV} ${WRKSRC}/etc/routers ${WRKSRC}/etc/routers.sample diff --git a/net/rtg/files/patch-cgilib-cgi.c b/net/rtg/files/patch-cgilib-0.4_cgi.c index b50c913a03b4..7d55f8780b06 100644 --- a/net/rtg/files/patch-cgilib-cgi.c +++ b/net/rtg/files/patch-cgilib-0.4_cgi.c @@ -1,5 +1,5 @@ ---- cgilib-0.4/cgi.c.orig Thu Sep 25 08:21:06 2003 -+++ cgilib-0.4/cgi.c Sat May 14 01:28:33 2005 +--- cgilib-0.4/cgi.c.orig 2003-09-25 15:21:06 UTC ++++ cgilib-0.4/cgi.c @@ -33,9 +33,12 @@ #ifdef HAVE_CTYPE_H # include <ctype.h> diff --git a/net/rtg/files/patch-config-config.h.in b/net/rtg/files/patch-config_config.h.in index 3c624c4c1b14..3c624c4c1b14 100644 --- a/net/rtg/files/patch-config-config.h.in +++ b/net/rtg/files/patch-config_config.h.in diff --git a/net/rtg/files/patch-etc-95.php b/net/rtg/files/patch-etc-95.php deleted file mode 100644 index 9831f54f01cc..000000000000 --- a/net/rtg/files/patch-etc-95.php +++ /dev/null @@ -1,72 +0,0 @@ ---- etc/95.php.orig 2003-09-24 20:40:57 UTC -+++ etc/95.php -@@ -4,10 +4,8 @@ - print "<HTML>\n<!-- RTG Version $VERSION -->\n<HEAD>\n"; - - /* Connect to RTG MySQL Database */ -- $dbc=@mysql_connect ($host, $user, $pass) or -- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or -+ $dbc=@mysqli_connect ($host, $user, $pass, $db) or - die ("MySQL Connection Failed, Check Configuration."); -- mysql_select_db($db,$dbc); - - if ($PHP_SELF == "") { - $PHP_SELF = "95.php"; -@@ -50,8 +48,8 @@ function int_stats($statement, $dbc) { - $max = $avg = $nintyfifth = 0; - $rate = array(); - -- $selectResult=mysql_query($statement, $dbc); -- while ($selectRow=mysql_fetch_object($selectResult)){ -+ $selectResult=mysqli_query($dbc, $statement); -+ while ($selectRow=mysqli_fetch_object($selectResult)){ - $counter = $selectRow->counter; - $sample_secs = $selectRow->unixtime; - $total += $counter; -@@ -89,9 +87,8 @@ Report: 95th percentile<BR> - <?php - echo "<FORM ACTION=\"$PHP_SELF\" METHOD=\"GET\">\n"; - if (($bt || $smonth)) { -- $dbc=@mysql_connect ($host, $user, $pass) or -- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or die ("MySQL Connection Failed, Check Configuration."); -- mysql_select_db($db,$dbc); -+ $dbc=@mysqli_connect ($host, $user, $pass, $db) or -+ die ("MySQL Connection Failed, Check Configuration."); - /* Format into GNU date syntax */ - if ($bt == "") { - $bt = strtotime("$syear-$smonth-$sday $shour:$smin:00"); -@@ -104,11 +101,11 @@ Report: 95th percentile<BR> - $range="dtime>FROM_UNIXTIME($bt) AND dtime<=FROM_UNIXTIME($et)"; - - $selectQuery="SELECT id, name, description, rid FROM interface WHERE description LIKE \"%$customer%\""; -- $selectResult=mysql_query($selectQuery, $dbc); -- if (mysql_num_rows($selectResult) <= 0) -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ if (mysqli_num_rows($selectResult) <= 0) - print "<BR>No Such Customer Found.<BR>\n"; - else { -- while ($selectRow=mysql_fetch_object($selectResult)){ -+ while ($selectRow=mysqli_fetch_object($selectResult)){ - $ids[$selectRow->id] = $selectRow->name; - $rids[$selectRow->id] = $selectRow->rid; - $desc[$selectRow->id] = $selectRow->description; -@@ -127,8 +124,8 @@ Report: 95th percentile<BR> - foreach($ids as $iid=>$name) { - - $selectQuery="SELECT name FROM router WHERE rid=$rids[$iid]"; -- $selectResult=mysql_query($selectQuery, $dbc); -- $selectRow=mysql_fetch_object($selectResult); -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ $selectRow=mysqli_fetch_object($selectResult); - $router = $selectRow->name; - - if ($yellow) $yellow = 0; -@@ -201,7 +198,7 @@ Report: 95th percentile<BR> - echo "<P><INPUT TYPE=\"SUBMIT\" VALUE=\"Ok\">"; - } - -- if ($dbc) mysql_close($dbc); -+ if ($dbc) mysqli_close($dbc); - echo "</FORM>\n"; - ?> - <BR> diff --git a/net/rtg/files/patch-etc-rtg.php b/net/rtg/files/patch-etc-rtg.php deleted file mode 100644 index 524ce7699fc5..000000000000 --- a/net/rtg/files/patch-etc-rtg.php +++ /dev/null @@ -1,122 +0,0 @@ ---- etc/rtg.php.orig 2003-09-24 20:42:03 UTC -+++ etc/rtg.php -@@ -4,10 +4,8 @@ - print "<HTML>\n<!-- RTG Version $VERSION -->\n<HEAD>\n"; - - /* Connect to RTG MySQL Database */ -- $dbc=@mysql_connect ($host, $user, $pass) or -- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or -+ $dbc=@mysqli_connect ($host, $user, $pass, $db) or - die ("MySQL Connection Failed, Check Configuration."); -- mysql_select_db($db,$dbc); - - if ($PHP_SELF == "") { - $PHP_SELF = "rtg.php"; -@@ -37,17 +35,17 @@ - # Determine router, interface names as necessary - if ($rid && $iid) { - $selectQuery="SELECT a.name, a.description, a.speed, b.name AS router FROM interface a, router b WHERE a.rid=b.rid AND a.rid=$rid AND a.id=$iid[0]"; -- $selectResult=mysql_query($selectQuery, $dbc); -- $selectRow=mysql_fetch_object($selectResult); -- $interfaces = mysql_num_rows($selectResult); -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ $selectRow=mysqli_fetch_object($selectResult); -+ $interfaces = mysqli_num_rows($selectResult); - $name = $selectRow->name; - $description = $selectRow->description; - $speed = ($selectRow->speed)/1000000; - $router = $selectRow->router; - } else if ($rid && !$iid) { - $selectQuery="SELECT name AS router from router where rid=$rid"; -- $selectResult=mysql_query($selectQuery, $dbc); -- $selectRow=mysql_fetch_object($selectResult); -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ $selectRow=mysqli_fetch_object($selectResult); - $router = $selectRow->router; - } - -@@ -71,8 +69,8 @@ echo "<FORM ACTION=\"$PHP_SELF\" METHOD= - if (!$rid && !$iid) { - echo "<SELECT NAME=\"rid\" SIZE=10>\n"; - $selectQuery="SELECT DISTINCT name, rid FROM router ORDER BY name"; -- $selectResult=mysql_query($selectQuery, $dbc); -- while ($selectRow=mysql_fetch_object($selectResult)){ -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ while ($selectRow=mysqli_fetch_object($selectResult)){ - echo "<OPTION VALUE=\"$selectRow->rid\">$selectRow->name\n"; - } - echo "</SELECT>\n"; -@@ -91,8 +89,8 @@ if ($rid && !$iid) { - - echo "<SELECT MULTIPLE NAME=\"iid[]\" SIZE=10>\n"; - $selectQuery="SELECT id, name, description FROM interface WHERE rid=$rid ORDER BY name"; -- $selectResult=mysql_query($selectQuery, $dbc); -- while ($selectRow=mysql_fetch_object($selectResult)){ -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ while ($selectRow=mysqli_fetch_object($selectResult)){ - echo "<OPTION VALUE=\"$selectRow->id\">$selectRow->name ($selectRow->description)\n"; - } - echo "</SELECT>\n"; -@@ -152,8 +150,8 @@ if (($bt || $smonth) && $iid) { - $range="$range AND id=$iid[0]"; - - $selectQuery="SELECT description, name, speed FROM interface WHERE rid=$rid AND id=$iid[0]"; -- $selectResult=mysql_query($selectQuery, $dbc); -- $selectRow=mysql_fetch_object($selectResult); -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ $selectRow=mysqli_fetch_object($selectResult); - echo "<TABLE BORDER=0>\n"; - echo "<TD><I>Device</I>:</TD><TD>$router ($rid)</TD><TR>\n"; - echo "<TD><I>Interface</I>:</TD><TD>$selectRow->name ($iid[0])</TD><TR>\n"; -@@ -165,12 +163,15 @@ if (($bt || $smonth) && $iid) { - echo "<P>\n"; - - #$selectQuery="SELECT DISTINCT id FROM ifInOctets_$rid WHERE $range"; -- #$selectResult=mysql_query($selectQuery, $dbc); -- #if (mysql_num_rows($selectResult) <= 0) { -+ #$selectResult=mysqli_query($dbc, $selectQuery); -+ #if (mysqli_num_rows($selectResult) <= 0) { - # print "<BR>No Data Found on Interface for Given Range.<BR>\n"; - #} - #else { - $args = "t1=ifInOctets_$rid&t2=ifOutOctets_$rid&begin=$bt&end=$et&units=bits/s&factor=8"; -+ $args .= "&title=" . urlencode($selectRow->description); -+ $args .= "&t1_name=" . urlencode("Input Octets"); -+ $args .= "&t2_name=" . urlencode("Output Octets"); - foreach ($iid as $value) { - $args="$args&iid=$value"; - } -@@ -181,8 +182,11 @@ if (($bt || $smonth) && $iid) { - if ($borderb) $args = "$args&borderb=$borderb"; - if ($aggr) $args = "$args&aggr=yes"; - if ($percentile) $args = "$args&percentile=$nth"; -- print "<IMG SRC=rtgplot.cgi?$args><BR>\n"; -+ print "<IMG SRC=/cgi-bin/rtgplot.cgi?$args><BR>\n"; - $args = "t1=ifInUcastPkts_$rid&t2=ifOutUcastPkts_$rid&begin=$bt&end=$et&units=pkts/s"; -+ $args .= "&title=" . urlencode($selectRow->description); -+ $args .= "&t1_name=" . urlencode("Input Packets"); -+ $args .= "&t2_name=" . urlencode("Output Packets"); - foreach ($iid as $value) { - $args="$args&iid=$value"; - } -@@ -192,13 +196,17 @@ if (($bt || $smonth) && $iid) { - if ($borderb) $args = "$args&borderb=$borderb"; - if ($aggr) $args = "$args&aggr=yes"; - if ($percentile) $args = "$args&percentile=$nth"; -- print "<IMG SRC=rtgplot.cgi?$args><BR>\n"; -+ print "<IMG SRC=/cgi-bin/rtgplot.cgi?$args><BR>\n"; - if ($errors) -- print "<IMG SRC=rtgplot.cgi?t1=ifInErrors_$rid&begin=$bt&end=$et&units=errors&impulses=yes>\n"; -+ { -+ print "<IMG SRC=/cgi-bin/rtgplot.cgi?t1=ifInErrors_$rid&begin=$bt&end=$et&units=errors&impulses=yes"; -+ print "&title=" . urlencode($selectRow->description); -+ print "&t1_name=" . urlencode("Errors") . ">\n"; -+ } - # } - } - --mysql_close($dbc); -+mysqli_close($dbc); - ?> - - <P> diff --git a/net/rtg/files/patch-etc-rtgtargmkr.pl.in b/net/rtg/files/patch-etc-rtgtargmkr.pl.in deleted file mode 100644 index 4664faecbacf..000000000000 --- a/net/rtg/files/patch-etc-rtgtargmkr.pl.in +++ /dev/null @@ -1,29 +0,0 @@ ---- etc/rtgtargmkr.pl.in.orig 2016-11-04 16:36:53 UTC -+++ etc/rtgtargmkr.pl.in -@@ -126,7 +126,7 @@ sub find_router_id { - &sql_insert($sql); - $rid = &find_router_id($router); - foreach $mib ( keys %mibs_of_interest ) { -- $sql = "CREATE TABLE $mib"."_$rid (id INT NOT NULL, dtime DATETIME NOT NULL, counter BIGINT NOT NULL, KEY $mib"."_$rid". "_idx (dtime))"; -+ $sql = "CREATE TABLE $mib"."_$rid (id INT NOT NULL, dtime DATETIME NOT NULL, counter BIGINT NOT NULL, KEY $mib"."_$rid". "_idx (dtime), KEY id_dtime_idx (id,dtime))"; - &sql_insert($sql); - } - } -@@ -289,7 +289,7 @@ sub main { - $year + 1900, $hour, $min; - print CFG "# Host\tOID\tBits\tCommunity\tTable\tID\tDescription\n"; - -- foreach $router (@routers) { -+ POKE: foreach $router (@routers) { - $bits = $counterBits{$router}; - # Sanity check bits - $bits = $defbits if ( ( $bits != 32 ) && ( $bits != 64 ) ); -@@ -304,7 +304,7 @@ sub main { - $system = join ( ' ', @result ); - print "System: $system\n" if $DEBUG; - $session = SNMP_Session->open( $router, $communities{$router}, 161 ) -- || die "Error opening SNMP session to $router"; -+ || ( print "Error opening SNMP session to $router" and next POKE ); - if ( $system =~ /.*Cisco.*WS-.*/ ) { - $system = "Catalyst"; - $session->map_table( $catalyst, \&process ); diff --git a/net/rtg/files/patch-etc-view.php b/net/rtg/files/patch-etc-view.php deleted file mode 100644 index 1642c221c356..000000000000 --- a/net/rtg/files/patch-etc-view.php +++ /dev/null @@ -1,117 +0,0 @@ ---- etc/view.php.orig 2003-09-26 15:58:34 UTC -+++ etc/view.php -@@ -11,10 +11,8 @@ - print "<HTML>\n<!-- RTG Version $VERSION -->\n<HEAD>\n"; - - /* Connect to RTG MySQL Database */ -- $dbc=@mysql_connect ($host, $user, $pass) or -- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or -+ $dbc=@mysqli_connect ($host, $user, $pass, $db) or - die ("MySQL Connection Failed, Check Configuration."); -- mysql_select_db($db,$dbc); - - # Global variables off by default in newer versions of PHP - if (!$PHP_SELF) { -@@ -26,17 +24,17 @@ - # Determine router, interface names as necessary - if ($rid && $iid) { - $selectQuery="SELECT a.name, a.description, a.speed, b.name AS router FROM interface a, router b WHERE a.rid=b.rid AND a.rid=$rid AND a.id=$iid"; -- $selectResult=mysql_query($selectQuery, $dbc); -- $selectRow=mysql_fetch_object($selectResult); -- $interfaces = mysql_num_rows($selectResult); -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ $selectRow=mysqli_fetch_object($selectResult); -+ $interfaces = mysqli_num_rows($selectResult); - $name = $selectRow->name; - $description = $selectRow->description; - $speed = ($selectRow->speed)/1000000; - $router = $selectRow->router; - } else if ($rid && !$iid) { - $selectQuery="SELECT name AS router from router where rid=$rid"; -- $selectResult=mysql_query($selectQuery, $dbc); -- $selectRow=mysql_fetch_object($selectResult); -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ $selectRow=mysqli_fetch_object($selectResult); - $router = $selectRow->router; - } - -@@ -68,12 +66,12 @@ - if (!$rid) { - print "Monitored Devices: <P>\n"; - $selectQuery="SELECT rid, name FROM router"; -- $selectResult=mysql_query($selectQuery, $dbc); -- if (mysql_num_rows($selectResult) <= 0) -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ if (mysqli_num_rows($selectResult) <= 0) - print "<BR>No Routers Found.<BR>\n"; - else { - print "<UL>\n"; -- while ($selectRow=mysql_fetch_object($selectResult)){ -+ while ($selectRow=mysqli_fetch_object($selectResult)){ - print "<LI><A HREF=\"$PHP_SELF?rid=$selectRow->rid\">"; - print "$selectRow->name</A><BR>\n"; - } -@@ -95,19 +93,22 @@ - - $bt = $et - (60*60*24); - print "<B>Day View:</B><BR>\n"; -- print "<IMG SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\">\n"; -+ print "<IMG SRC=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes"; -+ print "&title=" . urlencode("$router: $name ($description)") . "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets") . "\">\n"; - print "<BR><B>$router: $name ($description)</B>\n"; - print "<BR><HR>\n"; - - $bt = $et - (60*60*24*7); - print "<B>Week View:</B><BR>\n"; -- print "<IMG SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\">\n"; -+ print "<IMG SRC=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes"; -+ print "&title=" . urlencode("$router: $name ($description)") . "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets") . "\">\n"; - print "<BR><B>$router: $name ($description)</B>\n"; - print "<BR><HR>\n"; - - $bt = $et - (60*60*24*30); - print "<B>Month View:</B><BR>\n"; -- print "<IMG SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\">\n"; -+ print "<IMG SRC=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes"; -+ print "&title=" . urlencode("$router: $name ($description)") . "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets") . "\">\n"; - print "<BR><B>$router: $name ($description)</B>\n"; - print "<BR><BR>\n"; - } -@@ -116,8 +117,8 @@ - - if ($rid && !$iid) { - $selectQuery="SELECT id, name, description FROM interface WHERE rid=$rid"; -- $selectResult=mysql_query($selectQuery, $dbc); -- $interfaces = mysql_num_rows($selectResult); -+ $selectResult=mysqli_query($dbc, $selectQuery); -+ $interfaces = mysqli_num_rows($selectResult); - if ($interfaces <= 0) - print "<BR>No Interfaces Found for Router $router (ID: $rid).<BR>\n"; - else { -@@ -129,12 +130,15 @@ - print gmdate('D, d M Y H:i:s \G\M\T', time())."\n"; - print "</TABLE><HR>\n"; - print "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"10\">\n"; -- while ($selectRow=mysql_fetch_object($selectResult)){ -+ while ($selectRow=mysqli_fetch_object($selectResult)){ - $ids[$selectRow->id] = $selectRow->name; - $desc[$selectRow->id] = $selectRow->description; - $iid = $selectRow->id; - print "<TD><A HREF=\"$PHP_SELF?rid=$rid&iid=$iid\">\n"; -- print "<IMG HEIGHT=\"135\" WIDTH=\"500\" SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\" BORDER=\"0\">\n"; -+ print "<IMG HEIGHT=\"135\" WIDTH=\"500\" SRC=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid; -+ print "&title=" . urlencode("$router: " . $selectRow->name . " (" . $selectRow->description . ")"); -+ print "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets"); -+ print "&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\" BORDER=\"0\">\n"; - print "</A><BR>\n"; - print "<B>$selectRow->name ($selectRow->description)</B>\n"; - if ($even) { -@@ -148,7 +152,7 @@ - print "<INPUT TYPE=\"SUBMIT\" VALUE=\"Back to Main\">\n"; - } - -- if ($dbc) mysql_close($dbc); -+ if ($dbc) mysqli_close($dbc); - echo "</FORM>\n"; - ?> - diff --git a/net/rtg/files/patch-etc_95.php b/net/rtg/files/patch-etc_95.php new file mode 100644 index 000000000000..7e870b7d2d27 --- /dev/null +++ b/net/rtg/files/patch-etc_95.php @@ -0,0 +1,288 @@ +--- etc/95.php.orig 2003-09-24 20:40:57 UTC ++++ etc/95.php +@@ -1,41 +1,37 @@ + <?php + include('./common.php'); + +- print "<HTML>\n<!-- RTG Version $VERSION -->\n<HEAD>\n"; ++ print "<html>\n<!-- RTG Version $VERSION -->\n<head>\n"; + + /* Connect to RTG MySQL Database */ +- $dbc=@mysql_connect ($host, $user, $pass) or +- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or ++ $dbc=@mysqli_connect ($host, $user, $pass, $db) or + die ("MySQL Connection Failed, Check Configuration."); +- mysql_select_db($db,$dbc); + +- if ($PHP_SELF == "") { ++ if (!isset($PHP_SELF) || ($PHP_SELF == "")) { + $PHP_SELF = "95.php"; +- $customer = $_GET['customer']; +- $syear = $_GET['syear']; +- $eyear = $_GET['eyear']; +- $smonth = $_GET['smonth']; +- $emonth = $_GET['emonth']; +- $sday = $_GET['sday']; +- $eday = $_GET['eday']; +- $shour = $_GET['shour']; +- $ehour = $_GET['ehour']; +- $smin = $_GET['smin']; +- $emin = $_GET['emin']; +- $debug = $_GET['debug']; ++ $customer = isset($_GET['customer'])?$_GET['customer']:""; ++ $syear = isset($_GET['syear'])?$_GET['syear']:""; ++ $eyear = isset($_GET['eyear'])?$_GET['eyear']:""; ++ $smonth = isset($_GET['smonth'])?$_GET['smonth']:""; ++ $emonth = isset($_GET['emonth'])?$_GET['emonth']:""; ++ $sday = isset($_GET['sday'])?$_GET['sday']:""; ++ $eday = isset($_GET['eday'])?$_GET['eday']:""; ++ $shour = isset($_GET['shour'])?$_GET['shour']:""; ++ $ehour = isset($_GET['ehour'])?$_GET['ehour']:""; ++ $smin = isset($_GET['smin'])?$_GET['smin']:""; ++ $emin = isset($_GET['emin'])?$_GET['emin']:""; ++ $debug = isset($_GET['debug'])?$_GET['debug']:""; + } + +- print "<TITLE>RTG: "; +- if ($customer) print "$customer\n"; ++ print "<title>RTG: "; ++ if ($customer != "") print "$customer\n"; + ?> + +-</TITLE> +-</HEAD> +-<BODY BGCOLOR="ffffff"> +-<A HREF="http://rtg.sourceforge.net" ALT="[RTG Home Page]"> +-<IMG SRC="rtg.png" BORDER="0"> +-</A> +-<P> ++</title> ++</head> ++<body bgcolor="ffffff"> ++<a href="http://rtg.sourceforge.net"><img src="rtg.png" border="0" alt="[RTG Home Page]" /></a> ++<p> + + <?php + function cmp($c1, $c2) { +@@ -50,8 +46,8 @@ function int_stats($statement, $dbc) { + $max = $avg = $nintyfifth = 0; + $rate = array(); + +- $selectResult=mysql_query($statement, $dbc); +- while ($selectRow=mysql_fetch_object($selectResult)){ ++ $selectResult=mysqli_query($dbc, $statement); ++ while ($selectRow=mysqli_fetch_object($selectResult)){ + $counter = $selectRow->counter; + $sample_secs = $selectRow->unixtime; + $total += $counter; +@@ -83,132 +79,136 @@ function int_stats($statement, $dbc) { + } + ?> + +-<HR> +-Report: 95th percentile<BR> ++<hr /> ++Report: 95th percentile<br /> + + <?php +- echo "<FORM ACTION=\"$PHP_SELF\" METHOD=\"GET\">\n"; +- if (($bt || $smonth)) { +- $dbc=@mysql_connect ($host, $user, $pass) or +- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or die ("MySQL Connection Failed, Check Configuration."); +- mysql_select_db($db,$dbc); ++ echo "<form action=\"$PHP_SELF\" method=\"get\">\n"; ++ if (($bt != "") || ($smonth != "")) { ++ $dbc=@mysqli_connect ($host, $user, $pass, $db) or ++ die ("MySQL Connection Failed, Check Configuration."); + /* Format into GNU date syntax */ + if ($bt == "") { + $bt = strtotime("$syear-$smonth-$sday $shour:$smin:00"); + $et = strtotime("$eyear-$emonth-$eday $ehour:$emin:59"); + } +- echo "Customer: $customer <BR>\n"; ++ echo "Customer: $customer <br />\n"; + print strftime("Period: %m/%d/%Y %H:%M - ", $bt); + print strftime("%m/%d/%Y %H:%M<P>\n", $et); + +- $range="dtime>FROM_UNIXTIME($bt) AND dtime<=FROM_UNIXTIME($et)"; ++ $range="`dtime`>FROM_UNIXTIME(" . mysqli_real_escape_string($dbc, $bt) . ++ ") AND `dtime`<=FROM_UNIXTIME(" . mysqli_real_escape_string($dbc, $et) . ")"; + +- $selectQuery="SELECT id, name, description, rid FROM interface WHERE description LIKE \"%$customer%\""; +- $selectResult=mysql_query($selectQuery, $dbc); +- if (mysql_num_rows($selectResult) <= 0) +- print "<BR>No Such Customer Found.<BR>\n"; ++ $selectQuery="SELECT `id`, `name`, `description`, `rid` FROM `interface` WHERE " . ++ "`description` LIKE \"%" . mysqli_real_escape_string($dbc, $customer) . "%\""; ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ if (mysqli_num_rows($selectResult) <= 0) ++ print "<br />No Such Customer Found.<br />\n"; + else { +- while ($selectRow=mysql_fetch_object($selectResult)){ ++ while ($selectRow=mysqli_fetch_object($selectResult)){ + $ids[$selectRow->id] = $selectRow->name; + $rids[$selectRow->id] = $selectRow->rid; + $desc[$selectRow->id] = $selectRow->description; + } +- echo "<TABLE BORDER=\"1\">\n"; +- echo "<TR BGCOLOR=\"#E0E0E0\">\n"; +- echo "<TH COLSPAN=\"3\">Interface<TH COLSPAN=\"2\">Current Rate<TH COLSPAN=\"2\">Max Rate<TH COLSPAN=\"2\">95th %\n"; ++ echo "<table border=\"1\">\n"; ++ echo "<tr bgcolor=\"#E0E0E0\">\n"; ++ echo "<th colspan=\"3\">Interface</th><th colspan=\"2\">Current Rate</th><th colspan=\"2\">Max Rate</th><th colspan=\"2\">95th %</th>\n"; + if ($debug) +- echo "<TH COLSPAN=\"2\">Samples<TH COLSPAN=\"2\">Ignore Top\n"; +- echo "<TR BGCOLOR=\"#E0E0E0\">\n"; +- echo "<TH>Name<TH>Description<TH>Router<TH>In (Mbps)<TH>Out (Mbps)<TH>In<TH>Out<TH>In<TH>Out\n"; ++ echo "<th colspan=\"2\">Samples</th><th colspan=\"2\">Ignore Top</th>\n"; ++ echo "</tr>\n"; ++ echo "<tr bgcolor=\"#E0E0E0\">\n"; ++ echo "<th>Name</th><th>Description</th><th>Router</th><th>In (Mbps)</th><th>Out (Mbps)</th><th>In</th><th>Out</th><th>In</th><th>Out</th>\n"; + if ($debug) +- echo "<TH>In<TH>Out<TH>In<TH>Out\n"; +- echo "<TR BGCOLOR=\"#ffffcc\">\n"; ++ echo "<th>In</th><th>Out</th><th>In</th><th>Out</th>\n"; ++ echo "</tr>\n"; ++ echo "<tr bgcolor=\"#ffffcc\">\n"; + $yellow = 1; + foreach($ids as $iid=>$name) { + +- $selectQuery="SELECT name FROM router WHERE rid=$rids[$iid]"; +- $selectResult=mysql_query($selectQuery, $dbc); +- $selectRow=mysql_fetch_object($selectResult); ++ $selectQuery="SELECT `name` FROM `router` WHERE `rid`=$rids[$iid]"; ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ $selectRow=mysqli_fetch_object($selectResult); + $router = $selectRow->name; + + if ($yellow) $yellow = 0; + else $yellow = 1; + +- echo "<TD>$name<TD>$desc[$iid]<TD>$router"; ++ echo "<td>$name</td><td>$desc[$iid]</td><td>$router</td>"; + +- $selectQuery="SELECT counter, UNIX_TIMESTAMP(dtime) as unixtime, dtime from ifInOctets_$rids[$iid] WHERE $range AND id=$iid ORDER BY dtime"; ++ $selectQuery="SELECT `counter`, UNIX_TIMESTAMP(`dtime`) AS `unixtime`, `dtime` FROM `ifInOctets_$rids[$iid]` WHERE $range AND `id`=$iid ORDER BY `dtime`"; + list ($intbytes_in, $maxin, $avgin, $nfin,$insamples,$inignore) = int_stats($selectQuery, $dbc); + $bytesin = round($intbytes_in/1000000); + +- $selectQuery="SELECT counter, UNIX_TIMESTAMP(dtime) as unixtime, dtime from ifOutOctets_$rids[$iid] WHERE $range AND id=$iid ORDER BY dtime"; ++ $selectQuery="SELECT `counter`, UNIX_TIMESTAMP(`dtime`) AS `unixtime`, `dtime` FROM `ifOutOctets_$rids[$iid]` WHERE $range AND `id`=$iid ORDER BY `dtime`"; + list ($intbytes_out, $maxout, $avgout, $nfout,$outsamples,$outignore) = int_stats($selectQuery, $dbc); + $bytesout = round($intbytes_in/1000000); + +- printf("<TD ALIGN=\"right\">%2.2f", $avgin/1000000); +- printf("<TD ALIGN=\"right\">%2.2f", $avgout/1000000); +- printf("<TD ALIGN=\"right\">%2.2f", $maxin/1000000); +- printf("<TD ALIGN=\"right\">%2.2f", $maxout/1000000); +- printf("<TD ALIGN=\"right\">%2.2f", $nfin/1000000); +- printf("<TD ALIGN=\"right\">%2.2f", $nfout/1000000); ++ printf("<td align=\"right\">%2.2f</td>", $avgin/1000000); ++ printf("<td align=\"right\">%2.2f</td>", $avgout/1000000); ++ printf("<td align=\"right\">%2.2f</td>", $maxin/1000000); ++ printf("<td align=\"right\">%2.2f</td>", $maxout/1000000); ++ printf("<td align=\"right\">%2.2f</td>", $nfin/1000000); ++ printf("<td align=\"right\">%2.2f</td>", $nfout/1000000); + if ($debug) { +- echo "<TD ALIGN=\"right\">$insamples<TD ALIGN=\"right\">$outsamples<TD ALIGN=\"right\">$inignore<TD ALIGN=\"right\">$outignore"; ++ echo "<td align=\"right\">$insamples</td><td align=\"right\">$outsamples</td><td align=\"right\">$inignore</td><td align=\"right\">$outignore</td>"; + } +- if ($yellow) echo "<TR BGCOLOR=\"#ffffcc\">\n"; +- else echo "<TR BGCOLOR=\"#94D6E7\">\n"; ++ echo "</tr>\n"; ++ if ($yellow) echo "<tr bgcolor=\"#ffffcc\">\n"; ++ else echo "<tr bgcolor=\"#94D6E7\">\n"; + } +- echo "</TABLE>\n"; ++ echo "</table>\n"; + } + } else { +- echo "Customer Name: <INPUT TYPE=\"text\" NAME=\"customer\"><BR>\n"; +- echo "<P><TABLE>\n"; +- echo "<TD>From: \n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"smonth\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "Customer Name: <input type=\"text\" name=\"customer\" /><br />\n"; ++ echo "<p><table>\n"; ++ echo "<tr><td>From: </td>\n"; ++ echo "<td><input type=\"text\" name=\"smonth\" size=\"3\" maxlength=\"2\" value=\""; + print (date("m")); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"sday\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"sday\" size=\"3\" maxlength=\"2\" value=\""; + printf("%02d", (date("d") - 1)); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"syear\" SIZE=5 MAXLENGTH=4 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"syear\" size=\"5\" maxlength=\"4\" value=\""; + print (date("Y")); +- echo "\">\n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"shour\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" /></td>\n"; ++ echo "<td><input type=\"text\" name=\"shour\" size=\"3\" maxlength=\"2\" value=\""; + print (date("H")); +- echo "\">:\n"; +- echo "<INPUT TYPE=TEXT NAME=\"smin\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" />:\n"; ++ echo "<input type=\"text\" name=\"smin\" size=\"3\" maxlength=\"2\" value=\""; + print (date("i")); +- echo "\">\n"; ++ echo "\" /></td></tr>\n"; + +- echo "<TR><TD>To: \n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"emonth\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "<tr><td>To: </td>\n"; ++ echo "<td><input type=\"text\" name=\"emonth\" size=\"3\" maxlength=\"2\" value=\""; + print (date("m")); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"eday\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"eday\" size=\"3\" maxlength=\"2\" value=\""; + print (date("d")); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"eyear\" SIZE=5 MAXLENGTH=4 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"eyear\" size=\"5\" maxlength=\"4\" value=\""; + print (date("Y")); +- echo "\">\n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"ehour\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" /></td>\n"; ++ echo "<td><input type=\"text\" name=\"ehour\" size=\"3\" maxlength=\"2\" value=\""; + print (date("H")); +- echo "\">:\n"; +- echo "<INPUT TYPE=TEXT NAME=\"emin\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" />:\n"; ++ echo "<input type=\"text\" name=\"emin\" size=\"3\" maxlength=\"2\" value=\""; + print (date("i")); +- echo "\">\n"; +- echo "<TR><TD>Debug: \n"; +- echo "<TD><INPUT TYPE=CHECKBOX NAME=\"debug\">\n"; +- echo "</TABLE>\n"; ++ echo "\" /></td></tr>\n"; ++ echo "<tr><td>Debug: </td>\n"; ++ echo "<td><input type=\"checkbox\" name=\"debug\" /></td></tr>\n"; ++ echo "</table>\n"; + +- echo "<P><INPUT TYPE=\"SUBMIT\" VALUE=\"Ok\">"; ++ echo "<p><input type=\"submit\" VALUE=\"Ok\" />"; + } + +- if ($dbc) mysql_close($dbc); +- echo "</FORM>\n"; ++ if ($dbc) mysqli_close($dbc); ++ echo "</form>\n"; + ?> +-<BR> +-<HR> +-<FONT FACE="Arial" SIZE="2"> ++<br /> ++<hr /> ++<font face="Arial" size="2"> + <?php +- print "<A HREF=\"http://rtg.sourceforge.net\">RTG</A> Version $VERSION</FONT>"; ++ print "<a href=\"http://rtg.sourceforge.net\">RTG</a> Version $VERSION</font>"; + ?> +-</BODY> +-</HTML> ++</body> ++</html> diff --git a/net/rtg/files/patch-etc_95.pl b/net/rtg/files/patch-etc_95.pl index f780a3e8e57c..68240e611394 100644 --- a/net/rtg/files/patch-etc_95.pl +++ b/net/rtg/files/patch-etc_95.pl @@ -1,4 +1,4 @@ ---- etc/95.pl.orig 2016-11-04 16:36:01 UTC +--- etc/95.pl.orig 2018-04-02 20:14:41 UTC +++ etc/95.pl @@ -31,7 +31,7 @@ $pass="rtgdefault"; $onedaysec=60*60*24; @@ -9,3 +9,52 @@ foreach $conf (@configs) { if (open CONF, "<$conf") { print "Reading [$conf].\n" if $DEBUG; +@@ -207,13 +207,13 @@ print "Period: [", format_dt($startdate) + write; + ($name,$router, $ratein, $rateout, $maxratein, $maxrateout, $nfratein, $nfrateout) = ("Connection", "", "Mbps", "Mbps", "Mbps", "Mbps", "Mbps", "Mbps"); + write; +-print "--------------------------------------------------------------------------------\n"; ++print "----------------------------------------------------------------------------------------------------\n"; + + $dbh= DBI->connect("DBI:mysql:$db:host=$host", $user, $pass); + $dbh2= DBI->connect("DBI:mysql:$db:host=$host", $user, $pass); +-$range="dtime>$startdate and dtime<=$enddate"; ++$range="`dtime`>$startdate AND `dtime`<=$enddate"; + +-$statement="SELECT id FROM interface WHERE description LIKE \"%$cust%\""; ++$statement="SELECT `id` FROM `interface` WHERE `description` LIKE \"%$cust%\""; + $sth = $dbh->prepare($statement) + or die "Can't prepare $statement: $dbh->errstr\n"; + $rv = $sth->execute +@@ -223,19 +223,19 @@ while (@row = $sth->fetchrow_array ()) { + } + + foreach $interface (@interfaces) { +- $statement="SELECT rid, name, speed FROM interface WHERE id=$interface"; ++ $statement="SELECT `rid`, `name`, `speed` FROM `interface` WHERE `id`=$interface"; + &run_query($statement); + ($rid, $name, $speed) = @row; + +- $statement="SELECT rid, name FROM router WHERE rid=$rid"; ++ $statement="SELECT `rid`, `name` FROM `router` WHERE `rid`=$rid"; + &run_query($statement); + ($rid, $router) = @row; + +- $statement="SELECT counter, UNIX_TIMESTAMP(dtime), dtime FROM ifInOctets_".$rid." WHERE $range AND id=$interface ORDER BY dtime"; ++ $statement="SELECT `counter`, UNIX_TIMESTAMP(`dtime`), `dtime` FROM `ifInOctets_".$rid."` WHERE $range AND `id`=$interface ORDER BY `dtime`"; + ($intbytes_in, $maxin, $avgin, $nfin) = &interface_stats($statement); + $bytesin = int($intbytes_in/1000000 + .5); + +- $statement="SELECT counter, UNIX_TIMESTAMP(dtime), dtime FROM ifOutOctets_".$rid." WHERE $range AND id=$interface ORDER BY dtime"; ++ $statement="SELECT `counter`, UNIX_TIMESTAMP(`dtime`), `dtime` FROM `ifOutOctets_".$rid."` WHERE $range AND `id`=$interface ORDER BY `dtime`"; + ($intbytes_out, $maxout, $avgout, $nfout) = &interface_stats($statement); + $bytesout = int($intbytes_out/1000000 + .5); + +@@ -279,6 +279,6 @@ $rc = $dbh->disconnect; + exit; + + format STDOUT = +-@<<<<<<<<<<< @<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> @>>>>>> @>>>>>> @>>>>>> ++@<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> @>>>>>> @>>>>>> @>>>>>> + $name,$router, $ratein, $rateout, $maxratein, $maxrateout, $nfratein, $nfrateout + . diff --git a/net/rtg/files/patch-etc-Makefile.in b/net/rtg/files/patch-etc_Makefile.in index b7e64a203715..b7e64a203715 100644 --- a/net/rtg/files/patch-etc-Makefile.in +++ b/net/rtg/files/patch-etc_Makefile.in diff --git a/net/rtg/files/patch-etc_SNMP__util.pm b/net/rtg/files/patch-etc_SNMP__util.pm new file mode 100644 index 000000000000..09c703fc7f84 --- /dev/null +++ b/net/rtg/files/patch-etc_SNMP__util.pm @@ -0,0 +1,22 @@ +--- etc/SNMP_util.pm.orig 2018-04-02 22:51:02 UTC ++++ etc/SNMP_util.pm +@@ -1129,16 +1129,16 @@ sub snmpMIB_to_OID ($) { + $buf =~ s/OBJECT-GROUP/OBJECT IDENTIFIER/; + $buf =~ s/MODULE-IDENTITY/OBJECT IDENTIFIER/; + $buf =~ s/ IMPORTS .*\;//; +- $buf =~ s/ SEQUENCE {.*}//; ++ $buf =~ s/ SEQUENCE \{.*}//; + $buf =~ s/ SYNTAX .*//; + $buf =~ s/ [\w-]+ ::= OBJECT IDENTIFIER//; +- $buf =~ s/ OBJECT IDENTIFIER .* ::= {/ OBJECT IDENTIFIER ::= {/; ++ $buf =~ s/ OBJECT IDENTIFIER .* ::= \{/ OBJECT IDENTIFIER ::= {/; + $buf =~ s/".*"//; + if ($buf =~ /"/) { + $quote = 1; + } + +- if ($buf =~ / ([\w\-]+) OBJECT IDENTIFIER ::= {([^}]+)}/) { ++ if ($buf =~ / ([\w\-]+) OBJECT IDENTIFIER ::= \{([^}]+)}/) { + $var = $1; + $buf = $2; + undef $val; diff --git a/net/rtg/files/patch-etc_common.php.in b/net/rtg/files/patch-etc_common.php.in index 75772fb16866..b06f25c12d10 100644 --- a/net/rtg/files/patch-etc_common.php.in +++ b/net/rtg/files/patch-etc_common.php.in @@ -1,5 +1,11 @@ --- etc/common.php.in.orig 2003-09-26 15:52:29 UTC +++ etc/common.php.in +@@ -1,4 +1,4 @@ +-<? ++<?php + /* Begin with reasonable defaults */ + $VERSION = "@VERSION@"; + $host="localhost"; @@ -6,10 +6,13 @@ $pass="rtgdefault"; $db="rtg"; diff --git a/net/rtg/files/patch-etc_createdb.in b/net/rtg/files/patch-etc_createdb.in new file mode 100644 index 000000000000..4c9826397a6b --- /dev/null +++ b/net/rtg/files/patch-etc_createdb.in @@ -0,0 +1,146 @@ +--- etc/createdb.in.orig 2018-04-02 22:52:32 UTC ++++ etc/createdb.in +@@ -23,11 +23,8 @@ echo "" + + # Create the necessary SQL in two /tmp files + cat <<EOT >/tmp/mysql.sql +-INSERT INTO user (Host, User, Password) VALUES ('$HOST','$USER',PASSWORD("$RTGPASS")); +-INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, +-Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv) +-VALUES ('$HOST','$DATABASE','$USER','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); +-FLUSH PRIVILEGES; ++CREATE USER '$USER'@'$HOST' IDENTIFIED BY '$RTG_PASS'; ++GRANT ALL ON '$DATABASE'.* TO '$USER'@'$HOST'; + EOT + + cat <<EOT >/tmp/rtg.sql +@@ -35,81 +32,81 @@ cat <<EOT >/tmp/rtg.sql + # Table structure for table 'router' + # + +-CREATE TABLE router ( +- rid int(11) unsigned NOT NULL auto_increment, +- name char(120) NOT NULL default '', +- pop char(10) NOT NULL default '', +- popid tinyint(3) unsigned NOT NULL default '0', +- PRIMARY KEY (rid) ++CREATE TABLE `router` ( ++ `rid` int(11) unsigned NOT NULL auto_increment, ++ `name` char(120) NOT NULL default '', ++ `pop` char(10) NOT NULL default '', ++ `popid` tinyint(3) unsigned NOT NULL default '0', ++ PRIMARY KEY (`rid`) + ); + + # + # Table structure for table 'interface' + # + +-CREATE TABLE interface ( +- id int(11) unsigned NOT NULL auto_increment, +- name char(255) NOT NULL default '', +- rid int(11) NOT NULL default '0', +- speed bigint(11) default NULL, +- description char(255) default NULL, +- status enum('active','inactive') default 'active', +- PRIMARY KEY (id) ++CREATE TABLE `interface` ( ++ `id` int(11) unsigned NOT NULL auto_increment, ++ `name` char(255) NOT NULL default '', ++ `rid` int(11) NOT NULL default '0', ++ `speed` bigint(11) default NULL, ++ `description` char(255) default NULL, ++ `status` enum('active','inactive') default 'active', ++ PRIMARY KEY (`id`) + ); + + # + # Table structure for table 'ifInOctets' + # + +-CREATE TABLE ifInOctets ( +- id int(11) NOT NULL default '0', +- dtime datetime NOT NULL default '0000-00-00 00:00:00', +- counter bigint(20) NOT NULL default '0', +- KEY ifInOctets_idx (dtime) ++CREATE TABLE `ifInOctets` ( ++ `id` int(11) NOT NULL default '0', ++ `dtime` datetime NOT NULL default '0000-00-00 00:00:00', ++ `counter` bigint(20) NOT NULL default '0', ++ KEY `ifInOctets_idx` (`dtime`) + ); + + # + # Table structure for table 'ifOutOctets' + # + +-CREATE TABLE ifOutOctets ( +- id int(11) NOT NULL default '0', +- dtime datetime NOT NULL default '0000-00-00 00:00:00', +- counter bigint(20) NOT NULL default '0', +- KEY ifOutOctets_idx (dtime) ++CREATE TABLE `ifOutOctets` ( ++ `id` int(11) NOT NULL default '0', ++ `dtime` datetime NOT NULL default '0000-00-00 00:00:00', ++ `counter` bigint(20) NOT NULL default '0', ++ KEY `ifOutOctets_idx` (`dtime`) + ); + + # + # Table structure for table 'ifInUcastPkts' + # + +-CREATE TABLE ifInUcastPkts ( +- id int(11) NOT NULL default '0', +- dtime datetime NOT NULL default '0000-00-00 00:00:00', +- counter bigint(20) NOT NULL default '0', +- KEY ifInUcastPkts_idx (dtime) ++CREATE TABLE `ifInUcastPkts` ( ++ `id` int(11) NOT NULL default '0', ++ `dtime` datetime NOT NULL default '0000-00-00 00:00:00', ++ `counter` bigint(20) NOT NULL default '0', ++ KEY `ifInUcastPkts_idx` (`dtime`) + ); + + # + # Table structure for table 'ifOutUcastPkts' + # + +-CREATE TABLE ifOutUcastPkts ( +- id int(11) NOT NULL default '0', +- dtime datetime NOT NULL default '0000-00-00 00:00:00', +- counter bigint(20) NOT NULL default '0', +- KEY ifOutUcastPkts_idx (dtime) ++CREATE TABLE `ifOutUcastPkts` ( ++ `id` int(11) NOT NULL default '0', ++ `dtime` datetime NOT NULL default '0000-00-00 00:00:00', ++ `counter` bigint(20) NOT NULL default '0', ++ KEY `ifOutUcastPkts_idx` (`dtime`) + ); + + # + # Table structure for table 'ifInErrors' + # + +-CREATE TABLE ifInErrors ( +- id int(11) NOT NULL default '0', +- dtime datetime NOT NULL default '0000-00-00 00:00:00', +- counter bigint(20) NOT NULL default '0', +- KEY ifInErrors_idx (dtime) ++CREATE TABLE `ifInErrors` ( ++ `id` int(11) NOT NULL default '0', ++ `dtime` datetime NOT NULL default '0000-00-00 00:00:00', ++ `counter` bigint(20) NOT NULL default '0', ++ KEY `ifInErrors_idx` (`dtime`) + ); + EOT + +@@ -117,8 +114,6 @@ echo "Adding user \"$USER\" to MySQL dat + cat /tmp/mysql.sql | $MYSQLBIN/mysql -u root -p$ROOTPASS mysql + echo "Creating RTG database \"$DATABASE\"..." + $MYSQLBIN/mysqladmin -u root -p$ROOTPASS create $DATABASE +-echo "Reloading MySQL privileges..." +-$MYSQLBIN/mysqladmin -u root -p$ROOTPASS flush-privileges + echo "Creating RTG tables..." + cat /tmp/rtg.sql | $MYSQLBIN/mysql -u $USER -p$RTGPASS $DATABASE + echo "Done." diff --git a/net/rtg/files/patch-etc_report.pl b/net/rtg/files/patch-etc_report.pl index 5e30d12fbac7..2256ca9b620a 100644 --- a/net/rtg/files/patch-etc_report.pl +++ b/net/rtg/files/patch-etc_report.pl @@ -1,4 +1,4 @@ ---- etc/report.pl.orig 2016-11-04 16:36:08 UTC +--- etc/report.pl.orig 2018-04-02 20:14:41 UTC +++ etc/report.pl @@ -30,7 +30,7 @@ $pass="rtgdefault"; $onedaysec=60*60*24; @@ -9,3 +9,52 @@ foreach $conf (@configs) { if (open CONF, "<$conf") { print "Reading [$conf].\n" if $DEBUG; +@@ -192,13 +192,13 @@ print "Period: [", format_dt($startdate) + write; + ($router,$name,$bytesin, $bytesout, $ratein, $rateout, $utilin, $utilout, $maxratein, $maxrateout, $maxutilin, $maxutilout) = ("","Connection", "MBytes", "MBytes", "Mbps", "Mbps", "In %", "Out%", "Mbps", "Mbps", "In%", "Out%"); + write; +-print "----------------------------------------------------------------------------------------------------------\n"; ++print "------------------------------------------------------------------------------------------------------------------------------\n"; + + $dbh= DBI->connect("DBI:mysql:$db:host=$host", $user, $pass); + $dbh2= DBI->connect("DBI:mysql:$db:host=$host", $user, $pass); +-$range="dtime>$startdate and dtime<=$enddate"; ++$range="`dtime`>$startdate and `dtime`<=$enddate"; + +-$statement="SELECT id FROM interface WHERE description LIKE \"%$cust%\""; ++$statement="SELECT `id` FROM `interface` WHERE `description` LIKE \"%$cust%\""; + $sth = $dbh->prepare($statement) + or die "Can't prepare $statement: $dbh->errstr\n"; + $rv = $sth->execute +@@ -209,19 +209,19 @@ while (@row = $sth->fetchrow_array ()) + } + + foreach $interface (@interfaces) { +- $statement="SELECT rid, name, speed FROM interface WHERE id=$interface"; ++ $statement="SELECT `rid`, `name`, `speed` FROM `interface` WHERE `id`=$interface"; + &run_query($statement); + ($rid, $name, $speed) = @row; + +- $statement="SELECT rid, name FROM router WHERE rid=$rid"; ++ $statement="SELECT `rid`, `name` FROM `router` WHERE `rid`=$rid"; + &run_query($statement); + ($rid, $router) = @row; + +- $statement="SELECT counter, UNIX_TIMESTAMP(dtime), dtime FROM ifInOctets_".$rid." WHERE $range AND id=$interface ORDER BY dtime"; ++ $statement="SELECT `counter`, UNIX_TIMESTAMP(`dtime`), `dtime` FROM `ifInOctets_".$rid."` WHERE $range AND `id`=$interface ORDER BY `dtime`"; + ($intbytes_in, $maxin, $avgin) = &interface_stats($statement); + $bytesin = int($intbytes_in/1000000 + .5); + +- $statement="SELECT counter, UNIX_TIMESTAMP(dtime), dtime FROM ifOutOctets_".$rid." WHERE $range AND id=$interface ORDER BY dtime"; ++ $statement="SELECT `counter`, UNIX_TIMESTAMP(`dtime`), `dtime` FROM `ifOutOctets_".$rid."` WHERE $range AND `id`=$interface ORDER BY `dtime`"; + ($intbytes_out, $maxout, $avgout) = &interface_stats($statement); + $bytesout = int($intbytes_out/1000000 + .5); + +@@ -267,6 +267,6 @@ $rc = $dbh->disconnect; + exit; + + format STDOUT = +-@<<<<<<<<<<< @<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> @>>>>>> @>>>>> @>>>>> @>>>>>> @>>>>>> @>>>>> @>>>>> ++@<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> @>>>>>> @>>>>> @>>>>> @>>>>>> @>>>>>> @>>>>> @>>>>> + $name,$router,&commify($bytesin), &commify($bytesout), $ratein, $rateout, $utilin, $utilout, $maxratein, $maxrateout, $maxutilin, $maxutilout + . diff --git a/net/rtg/files/patch-etc_rtg.conf b/net/rtg/files/patch-etc_rtg.conf new file mode 100644 index 000000000000..5cb1317f249a --- /dev/null +++ b/net/rtg/files/patch-etc_rtg.conf @@ -0,0 +1,10 @@ +--- etc/rtg.conf.orig 2018-04-02 23:07:32 UTC ++++ etc/rtg.conf +@@ -12,3 +12,7 @@ DB_Database rtg + DB_User snmp + DB_Pass rtgdefault + Threads 5 ++# Set Update_desc to 1 to cause rtgtargmkr.pl to auto-update descriptions from ++# SNMP port data ++Update_desc 0 ++ diff --git a/net/rtg/files/patch-etc_rtg.php b/net/rtg/files/patch-etc_rtg.php new file mode 100644 index 000000000000..ee6843c44de7 --- /dev/null +++ b/net/rtg/files/patch-etc_rtg.php @@ -0,0 +1,389 @@ +--- etc/rtg.php.orig 2003-09-24 20:42:03 UTC ++++ etc/rtg.php +@@ -1,146 +1,152 @@ + <?php + include('./common.php'); + +- print "<HTML>\n<!-- RTG Version $VERSION -->\n<HEAD>\n"; ++ print "<html>\n<!-- RTG Version $VERSION -->\n<head>\n"; + + /* Connect to RTG MySQL Database */ +- $dbc=@mysql_connect ($host, $user, $pass) or +- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or ++ $dbc=@mysqli_connect ($host, $user, $pass, $db) or + die ("MySQL Connection Failed, Check Configuration."); +- mysql_select_db($db,$dbc); + +- if ($PHP_SELF == "") { ++ if (!isset($PHP_SELF) || $PHP_SELF == "") { + $PHP_SELF = "rtg.php"; +- $errors = $_GET['errors']; +- $scalex = $_GET['scalex']; +- $scaley = $_GET['scaley']; +- $aggr = $_GET['aggr']; +- $percentile = $_GET['percentile']; +- $nth = $_GET['nth']; +- $xplot = $_GET['xplot']; +- $yplot = $_GET['yplot']; +- $borderb = $_GET['borderb']; +- $iid = $_GET['iid']; +- $rid = $_GET['rid']; +- $syear = $_GET['syear']; +- $eyear = $_GET['eyear']; +- $smonth = $_GET['smonth']; +- $emonth = $_GET['emonth']; +- $sday = $_GET['sday']; +- $eday = $_GET['eday']; +- $shour = $_GET['shour']; +- $ehour = $_GET['ehour']; +- $smin = $_GET['smin']; +- $emin = $_GET['emin']; ++ $errors = isset($_GET['errors'])?$_GET['errors']:""; ++ $scalex = isset($_GET['scalex'])?$_GET['scalex']:""; ++ $scaley = isset($_GET['scaley'])?$_GET['scaley']:""; ++ $aggr = isset($_GET['aggr'])?$_GET['aggr']:""; ++ $percentile = isset($_GET['percentile'])?$_GET['percentile']:""; ++ $nth = isset($_GET['nth'])?$_GET['nth']:""; ++ $xplot = isset($_GET['xplot'])?$_GET['xplot']:""; ++ $yplot = isset($_GET['yplot'])?$_GET['yplot']:""; ++ $borderb = isset($_GET['borderb'])?$_GET['borderb']:""; ++ $iid = isset($_GET['iid'])?$_GET['iid']:""; ++ $rid = isset($_GET['rid'])?$_GET['rid']:""; ++ $syear = isset($_GET['syear'])?$_GET['syear']:""; ++ $eyear = isset($_GET['eyear'])?$_GET['eyear']:""; ++ $smonth = isset($_GET['smonth'])?$_GET['smonth']:""; ++ $emonth = isset($_GET['emonth'])?$_GET['emonth']:""; ++ $sday = isset($_GET['sday'])?$_GET['sday']:""; ++ $eday = isset($_GET['eday'])?$_GET['eday']:""; ++ $shour = isset($_GET['shour'])?$_GET['shour']:""; ++ $ehour = isset($_GET['ehour'])?$_GET['ehour']:""; ++ $smin = isset($_GET['smin'])?$_GET['smin']:""; ++ $emin = isset($_GET['emin'])?$_GET['emin']:""; + } + + # Determine router, interface names as necessary +- if ($rid && $iid) { +- $selectQuery="SELECT a.name, a.description, a.speed, b.name AS router FROM interface a, router b WHERE a.rid=b.rid AND a.rid=$rid AND a.id=$iid[0]"; +- $selectResult=mysql_query($selectQuery, $dbc); +- $selectRow=mysql_fetch_object($selectResult); +- $interfaces = mysql_num_rows($selectResult); ++ if (($rid != "") && ($iid != "")) { ++ $selectQuery="SELECT `a`.`name`, `a`.`description`, `a`.`speed`, `b`.`name` " . ++ "AS `router` FROM `interface` `a`, `router` `b` WHERE `a`.`rid`=`b`.`rid` " . ++ "AND `a`.`rid`=" . mysqli_real_escape_string($dbc, $rid) . " AND `a`.`id`=" . ++ mysqli_real_escape_string($dbc, $iid[0]); ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ $selectRow=mysqli_fetch_object($selectResult); ++ $interfaces = mysqli_num_rows($selectResult); + $name = $selectRow->name; + $description = $selectRow->description; + $speed = ($selectRow->speed)/1000000; + $router = $selectRow->router; +- } else if ($rid && !$iid) { +- $selectQuery="SELECT name AS router from router where rid=$rid"; +- $selectResult=mysql_query($selectQuery, $dbc); +- $selectRow=mysql_fetch_object($selectResult); ++ } else if (($rid != "") && ($iid == "")) { ++ $selectQuery="SELECT `name` AS `router` FROM `router` WHERE `rid`=" . ++ mysqli_real_escape_string($dbc, $rid); ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ $selectRow=mysqli_fetch_object($selectResult); + $router = $selectRow->router; + } + + # Generate Title +- echo "<TITLE>RTG: "; +- if ($rid && $iid) echo "$router: $name"; +- else if ($rid && !$iid) echo "$router"; +- echo "</TITLE>\n"; ++ echo "<title>RTG: "; ++ if (($rid != "") && ($iid != "")) echo "$router: $name"; ++ else if (($rid != "") && ($iid == "")) echo "$router"; ++ echo "</title>\n"; + ?> + +-</HEAD> +-<BODY BACKGROUND="rtgback.png" BGCOLOR="ffffff"> +-<A HREF="http://rtg.sourceforge.net" ALT="[RTG Home Page]"> +-<IMG SRC="rtg.png" BORDER="0"> +-</A> +-<P> ++</head> ++<body background="rtgback.png" bgcolor="ffffff"> ++<a href="http://rtg.sourceforge.net" alt="[RTG Home Page]"><img src="rtg.png" border="0" /></a> ++<p> + + <?php +-echo "<FORM ACTION=\"$PHP_SELF\" METHOD=\"get\">\n"; ++echo "<form action=\"$PHP_SELF\" method=\"get\">\n"; + +-if (!$rid && !$iid) { +- echo "<SELECT NAME=\"rid\" SIZE=10>\n"; +- $selectQuery="SELECT DISTINCT name, rid FROM router ORDER BY name"; +- $selectResult=mysql_query($selectQuery, $dbc); +- while ($selectRow=mysql_fetch_object($selectResult)){ +- echo "<OPTION VALUE=\"$selectRow->rid\">$selectRow->name\n"; ++if (($rid == "") && ($iid == "")) { ++ echo "<select name=\"rid\" size=\"10\">\n"; ++ $selectQuery="SELECT DISTINCT `name`, `rid` FROM `router` ORDER BY `name`"; ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ while ($selectRow=mysqli_fetch_object($selectResult)){ ++ echo "<option value=\"$selectRow->rid\">$selectRow->name</option>\n"; + } +- echo "</SELECT>\n"; ++ echo "</select>\n"; + } + +-if ($smonth != "" && $iid == "") { +- echo "<BLOCKQUOTE><FONT SIZE=+1><STRONG>\n"; ++if (($smonth != "") && ($iid == "")) { ++ echo "<blockquote><font size=\"+1\"><b>\n"; + echo "Please select an interface!\n"; +- echo "</FONT></STRONG></BLOCKQUOTE>\n"; ++ echo "</b></font></blockquote>\n"; + } + +-if ($rid && !$iid) { +- echo "<SELECT NAME=\"rid\" SIZE=10>\n"; +- echo "<OPTION SELECTED VALUE=\"$rid\">$router\n"; +- echo "</SELECT>\n"; ++if (($rid != "") && ($iid == "")) { ++ echo "<select name=\"rid\" size=\"10\">\n"; ++ echo "<option selected value=\"$rid\">$router</option>\n"; ++ echo "</select>\n"; + +- echo "<SELECT MULTIPLE NAME=\"iid[]\" SIZE=10>\n"; +- $selectQuery="SELECT id, name, description FROM interface WHERE rid=$rid ORDER BY name"; +- $selectResult=mysql_query($selectQuery, $dbc); +- while ($selectRow=mysql_fetch_object($selectResult)){ +- echo "<OPTION VALUE=\"$selectRow->id\">$selectRow->name ($selectRow->description)\n"; ++ echo "<select multiple name=\"iid[]\" size=\"10\">\n"; ++ $selectQuery="SELECT `id`, `name`, `description` FROM `interface` WHERE " . ++ "`rid`=" . mysqli_real_escape_string($dbc, $rid) . " ORDER BY `name`"; ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ while ($selectRow=mysqli_fetch_object($selectResult)){ ++ echo "<option value=\"$selectRow->id\">$selectRow->name ($selectRow->description)</option>\n"; + } +- echo "</SELECT>\n"; ++ echo "</select>\n"; + +- echo "<P><TABLE>\n"; +- echo "<TD>From: \n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"smonth\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "<p><table>\n"; ++ echo "<tr><td>From: </td>\n"; ++ echo "<td><input type=\"text\" name=\"smonth\" size=\"3\" maxlength=\"2\" value=\""; + print (date("m")); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"sday\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"sday\" size=\"3\" maxlength=\"2\" value=\""; + print (date("d")); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"syear\" SIZE=5 MAXLENGTH=4 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"syear\" size=\"5\" maxlength=\"4\" value=\""; + print (date("Y")); +- echo "\">\n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"shour\" SIZE=3 MAXLENGTH=2 VALUE=\"00\">:\n"; +- echo "<INPUT TYPE=TEXT NAME=\"smin\" SIZE=3 MAXLENGTH=2 VALUE=\"00\">\n"; ++ echo "\" />\n"; ++ echo "</td>"; ++ echo "<td><input type=\"text\" name=\"shour\" size=\"3\" maxlength=\"2\" value=\"00\" />:\n"; ++ echo "<input type=\"text\" name=\"smin\" size=\"3\" maxlength=\"2\" value=\"00\" />\n"; ++ echo "</td></tr>\n"; + +- echo "<TR><TD>To: \n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"emonth\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "<tr><td>To: </td>\n"; ++ echo "<td><input type=\"text\" name=\"emonth\" size=\"3\" maxlength=\"2\" value=\""; + print (date("m")); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"eday\" SIZE=3 MAXLENGTH=2 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"eday\" size=\"3\" maxlength=\"2\" value=\""; + print (date("d")); +- echo "\"> / \n"; +- echo "<INPUT TYPE=TEXT NAME=\"eyear\" SIZE=5 MAXLENGTH=4 VALUE=\""; ++ echo "\" /> / \n"; ++ echo "<input type=\"text\" name=\"eyear\" size=\"5\" maxlength=\"4\" value=\""; + print (date("Y")); +- echo "\">\n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"ehour\" SIZE=3 MAXLENGTH=2 VALUE=\"23\">:\n"; +- echo "<INPUT TYPE=TEXT NAME=\"emin\" SIZE=3 MAXLENGTH=2 VALUE=\"59\">\n"; +- echo "<TR><TD>Aggregate Interfaces: \n"; +- echo "<TD><INPUT TYPE=CHECKBOX NAME=\"aggr\">\n"; +- echo "<TR><TD><INPUT TYPE=TEXT NAME=\"nth\" SIZE=2 MAXLENGTH=2 VALUE=\"95\">th Percentile: \n"; +- echo "<TD><INPUT TYPE=CHECKBOX NAME=\"percentile\">\n"; +- echo "<TR><TD>Fit to Data: \n"; +- echo "<TD><INPUT TYPE=CHECKBOX NAME=\"scalex\">\n"; +- echo "<TR><TD>Fit to Speed: \n"; +- echo "<TD><INPUT TYPE=CHECKBOX NAME=\"scaley\">\n"; +- echo "<TR><TD>X Size: \n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"xplot\" SIZE=3 VALUE=\"500\">\n"; +- echo "<TR><TD>Y Size: \n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"yplot\" SIZE=3 VALUE=\"150\">\n"; +- echo "<TR><TD>BorderB: \n"; +- echo "<TD><INPUT TYPE=TEXT NAME=\"borderb\" SIZE=3 VALUE=\"70\">\n"; +- echo "</TABLE>\n"; ++ echo "\" />\n"; ++ echo "</td>"; ++ echo "<td><input type=\"text\" name=\"ehour\" size=\"3\" maxlength=\"2\" value=\"23\" />:\n"; ++ echo "<input type=\"text\" name=\"emin\" size=\"3\" maxlength=\"2\" value=\"59\" />\n"; ++ echo "</td></tr>\n"; ++ ++ echo "<tr><td>Aggregate Interfaces: </td>\n"; ++ echo "<td><input type=\"checkbox\" name=\"aggr\" /></td></tr>\n"; ++ echo "<tr><td><input type=\"text\" name=\"nth\" size=\"2\" maxlength=\"2\" value=\"95\" />th Percentile: </td>\n"; ++ echo "<td><input type=\"checkbox\" name=\"percentile\" /></td></tr>\n"; ++ echo "<tr><td>Fit to Data: </td>\n"; ++ echo "<td><input type=\"checkbox\" name=\"scalex\" /></td></tr>\n"; ++ echo "<tr><td>Fit to Speed: </td>\n"; ++ echo "<td><input type=\"checkbox\" name=\"scaley\" /></td></tr>\n"; ++ echo "<tr><td>X Size: </td>\n"; ++ echo "<td><input type=\"text\" name=\"xplot\" size=\"3\" value=\"500\" /></td></tr>\n"; ++ echo "<tr><td>Y Size: </td>\n"; ++ echo "<td><input type=\"text\" name=\"yplot\" size=\"3\" value=\"150\" /></td></tr>\n"; ++ echo "<tr><td>BorderB: </td>\n"; ++ echo "<td><input type=\"text\" name=\"borderb\" size=\"3\" value=\"70\" /></td></tr>\n"; ++ echo "</table>\n"; + } + +-if (($bt || $smonth) && $iid) { ++if (($bt != "" || $smonth != "") && ($iid != "")) { + + /* Format into GNU date syntax */ + if ($bt == "") { +@@ -148,67 +154,84 @@ if (($bt || $smonth) && $iid) { + $et = strtotime("$eyear-$emonth-$eday $ehour:$emin:59"); + } + +- $range="dtime>FROM_UNIXTIME($bt) AND dtime<=FROM_UNIXTIME($et)"; +- $range="$range AND id=$iid[0]"; ++ $range="`dtime`>FROM_UNIXTIME(" . mysqli_real_escape_string($dbc, $bt) . ") AND " . ++ "`dtime`<=FROM_UNIXTIME(" . mysqli_real_escape_string($dbc, $et) . ") " . ++ "AND `id`=" . mysqli_real_escape_string($dbc, $iid[0]); + +- $selectQuery="SELECT description, name, speed FROM interface WHERE rid=$rid AND id=$iid[0]"; +- $selectResult=mysql_query($selectQuery, $dbc); +- $selectRow=mysql_fetch_object($selectResult); +- echo "<TABLE BORDER=0>\n"; +- echo "<TD><I>Device</I>:</TD><TD>$router ($rid)</TD><TR>\n"; +- echo "<TD><I>Interface</I>:</TD><TD>$selectRow->name ($iid[0])</TD><TR>\n"; +- printf ("<TD><I>Speed</I>:</TD><TD>%2.3f Mbps</TD><TR>\n", $selectRow->speed / 1000000); +- echo "<TD><I>Description</I>:</TD><TD>$selectRow->description</TD><TR>\n"; +- print strftime("<TD><I>Period</I>:</TD><TD>%m/%d/%Y %H:%M - ", $bt); +- print strftime("%m/%d/%Y %H:%M</TD>\n", $et); +- echo "</TABLE>\n"; +- echo "<P>\n"; ++ $selectQuery="SELECT `description`, `name`, `speed` FROM `interface` WHERE " . ++ "`rid`=" . mysqli_real_escape_string($dbc, $rid) . " AND `id`=" . ++ mysqli_real_escape_string($dbc, $iid[0]); ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ $selectRow=mysqli_fetch_object($selectResult); ++ echo "<table border=\"0\">\n"; ++ echo "<tr><td><i>Device</i>:</td><td>$router ($rid)</td></tr>\n"; ++ echo "<tr><td><i>Interface</i>:</td><td>$selectRow->name ($iid[0])</td></tr>\n"; ++ printf ("<tr><td><i>Speed</i>:</td><td>%2.3f Mbps</td></tr>\n", $selectRow->speed / 1000000); ++ echo "<tr><td><i>Description</i>:</td><td>$selectRow->description</td></tr>\n"; ++ print strftime("<tr><td><i>Period</i>:</td><td>%m/%d/%Y %H:%M - ", $bt); ++ print strftime("%m/%d/%Y %H:%M</td>\n", $et); ++ echo "</tr>\n"; ++ echo "</table>\n"; ++ echo "<p>\n"; + + #$selectQuery="SELECT DISTINCT id FROM ifInOctets_$rid WHERE $range"; +- #$selectResult=mysql_query($selectQuery, $dbc); +- #if (mysql_num_rows($selectResult) <= 0) { ++ #$selectResult=mysqli_query($dbc, $selectQuery); ++ #if (mysqli_num_rows($selectResult) <= 0) { + # print "<BR>No Data Found on Interface for Given Range.<BR>\n"; + #} + #else { +- $args = "t1=ifInOctets_$rid&t2=ifOutOctets_$rid&begin=$bt&end=$et&units=bits/s&factor=8"; ++ $args = "t1=ifInOctets_$rid&t2=ifOutOctets_$rid&begin=$bt&"; ++ $args .= "end=$et&units=bits/s&factor=8"; ++ $args .= "&title=" . urlencode($selectRow->description); ++ $args .= "&t1_name=" . urlencode("Input Octets"); ++ $args .= "&t2_name=" . urlencode("Output Octets"); + foreach ($iid as $value) { +- $args="$args&iid=$value"; ++ $args="$args&iid=" . urlencode($value); + } +- if ($scalex) $args = "$args&scalex=yes"; +- if ($scaley) $args = "$args&scaley=yes"; +- if ($xplot) $args = "$args&xplot=$xplot"; +- if ($yplot) $args = "$args&yplot=$yplot"; +- if ($borderb) $args = "$args&borderb=$borderb"; +- if ($aggr) $args = "$args&aggr=yes"; +- if ($percentile) $args = "$args&percentile=$nth"; +- print "<IMG SRC=rtgplot.cgi?$args><BR>\n"; +- $args = "t1=ifInUcastPkts_$rid&t2=ifOutUcastPkts_$rid&begin=$bt&end=$et&units=pkts/s"; ++ if ($scalex != "") $args = "$args&scalex=yes"; ++ if ($scaley != "") $args = "$args&scaley=yes"; ++ if ($xplot != "") $args = "$args&xplot=$xplot"; ++ if ($yplot != "") $args = "$args&yplot=$yplot"; ++ if ($borderb != "") $args = "$args&borderb=$borderb"; ++ if ($aggr != "") $args = "$args&aggr=yes"; ++ if ($percentile != "") $args = "$args&percentile=$nth"; ++ print "<img src=\"/cgi-bin/rtgplot.cgi?$args\" alt=\"graph\" /><br />\n"; ++ $args = "t1=ifInUcastPkts_$rid&t2=ifOutUcastPkts_$rid&begin=$bt&"; ++ $args .= "end=$et&units=pkts/s"; ++ $args .= "&title=" . urlencode($selectRow->description); ++ $args .= "&t1_name=" . urlencode("Input Packets"); ++ $args .= "&t2_name=" . urlencode("Output Packets"); + foreach ($iid as $value) { +- $args="$args&iid=$value"; ++ $args="$args&iid=" . urlencode($value); ++ } ++ if ($scalex != "") $args = "$args&scalex=yes"; ++ if ($xplot != "") $args = "$args&xplot=$xplot"; ++ if ($yplot != "") $args = "$args&yplot=$yplot"; ++ if ($borderb != "") $args = "$args&borderb=$borderb"; ++ if ($aggr != "") $args = "$args&aggr=yes"; ++ if ($percentile != "") $args = "$args&percentile=$nth"; ++ print "<img src=\"/cgi-bin/rtgplot.cgi?$args\" alt=\"graph\" /><br />\n"; ++ if ($errors != "") ++ { ++ print "<img src=\"/cgi-bin/rtgplot.cgi?t1=ifInErrors_$rid&begin=$bt"; ++ print "&end=$et&units=errors&impulses=yes"; ++ print "&title=" . urlencode($selectRow->description); ++ print "&t1_name=" . urlencode("Errors") . "\" alt=\"graph\" />\n"; + } +- if ($scalex) $args = "$args&scalex=yes"; +- if ($xplot) $args = "$args&xplot=$xplot"; +- if ($yplot) $args = "$args&yplot=$yplot"; +- if ($borderb) $args = "$args&borderb=$borderb"; +- if ($aggr) $args = "$args&aggr=yes"; +- if ($percentile) $args = "$args&percentile=$nth"; +- print "<IMG SRC=rtgplot.cgi?$args><BR>\n"; +- if ($errors) +- print "<IMG SRC=rtgplot.cgi?t1=ifInErrors_$rid&begin=$bt&end=$et&units=errors&impulses=yes>\n"; + # } + } + +-mysql_close($dbc); ++mysqli_close($dbc); + ?> + +-<P> +-<INPUT TYPE="SUBMIT" VALUE="Ok"> +-</FORM> +-<BR> +-<HR> +-<FONT FACE="Arial" SIZE="2"> ++<p> ++<input type="submit" value="Ok" /> ++</form> ++<br /> ++<hr /> ++<font face="Arial" size="2"> + <?php +- print "<A HREF=\"http://rtg.sourceforge.net\">RTG</A> Version $VERSION</FONT>"; +-?> +-</BODY> +-</HTML> ++ print "<a href=\"http://rtg.sourceforge.net\">RTG</a> Version $VERSION</font>"; ++?></p> ++</body> ++</html> diff --git a/net/rtg/files/patch-etc_rtgtargmkr.pl.in b/net/rtg/files/patch-etc_rtgtargmkr.pl.in new file mode 100644 index 000000000000..0b38986d80f6 --- /dev/null +++ b/net/rtg/files/patch-etc_rtgtargmkr.pl.in @@ -0,0 +1,110 @@ +--- etc/rtgtargmkr.pl.in.orig 2018-04-02 20:14:41 UTC ++++ etc/rtgtargmkr.pl.in +@@ -10,10 +10,11 @@ + # Local customization + + $community = "public"; # Default SNMP community +-$defbits = 32; # Default OID bits: 32/64 ++$defbits = 64; # Default OID bits: 32/64 + $output = "targets.cfg"; # Output target file name + $router_file = "routers"; # Input list of devices to poll + $conf_file = "rtg.conf"; # RTGpoll and RTGplot configurations ++$update_desc = 0; # Update interface descriptions + $INFO = 1; # Print informational messages + $DEBUG = 0; # Print debug messages + $DBOFF = 0; # Turn database queries off (debug) +@@ -77,7 +78,7 @@ $catalyst = [ + ); + + # Default locations to find RTG configuration file +-@configs = ("rtg.conf", "/usr/local/rtg/etc/rtg.conf", "/etc/rtg.conf"); ++@configs = ("rtg.conf", "@RTG_HOME@/etc/rtg.conf", "/usr/local/rtg/etc/rtg.conf", "/etc/rtg.conf"); + foreach $conf (@configs) { + if (open CONF, "<$conf") { + print "Reading [$conf].\n" if $DEBUG; +@@ -93,7 +94,9 @@ foreach $conf (@configs) { + $db_db=$cVals[1]; + } elsif ($cVals[0] =~ /Interval/) { + $interval=$cVals[1]; +- } ++ } elsif ($cVals[0] =~ /Update_desc/) { ++ $update_desc=$cVals[1]; ++ } + } + last; + } +@@ -113,7 +116,7 @@ sub sql_insert { + # exist, create a new entry and corresponding tables. + sub find_router_id { + ($router) = @_; +- $sql = "SELECT DISTINCT rid FROM router WHERE name=\"$router\""; ++ $sql = "SELECT DISTINCT `rid` FROM `router` WHERE `name`=\"$router\""; + print "SQL: $sql\n" if $DEBUG; + my $sth = $dbh->prepare($sql) + or die "Can't prepare $sql: $dbh->errstr\n"; +@@ -121,12 +124,12 @@ sub find_router_id { + or die "can't execute the query: $sth->errstr\n"; + if ( $sth->rows == 0 ) { + print "No router id found for $router..."; +- $sql = "INSERT INTO router (name) VALUES(\"$router\")"; ++ $sql = "INSERT INTO `router` (`name`) VALUES(\"$router\")"; + print "adding.\n"; + &sql_insert($sql); + $rid = &find_router_id($router); + foreach $mib ( keys %mibs_of_interest ) { +- $sql = "CREATE TABLE $mib"."_$rid (id INT NOT NULL, dtime DATETIME NOT NULL, counter BIGINT NOT NULL, KEY $mib"."_$rid". "_idx (dtime))"; ++ $sql = "CREATE TABLE `$mib"."_$rid` (`id` INT NOT NULL, `dtime` DATETIME NOT NULL, `counter` BIGINT NOT NULL, KEY `$mib"."_$rid". "_idx` (`dtime`), KEY `id_dtime_idx` (`id`,`dtime`))"; + &sql_insert($sql); + } + } +@@ -143,7 +146,7 @@ sub find_router_id { + sub find_interface_id { + ( $rid, $int, $desc, $speed ) = @_; + $desc =~ s/ +$//g; #remove trailing whitespace +- $sql = "SELECT id, description FROM interface WHERE rid=$rid AND name=\"$int\""; ++ $sql = "SELECT `id`, `description` FROM `interface` WHERE `rid`=$rid AND `name`=\"$int\""; + print "SQL: $sql\n" if $DEBUG; + my $sth = $dbh->prepare($sql) + or die "Can't prepare $sql: $dbh->errstr\n"; +@@ -152,7 +155,7 @@ sub find_interface_id { + if ( $sth->rows == 0 ) { + print "No id found for $int on device $rid..."; + $desc =~ s/\"/\\\"/g; # Fix " in desc +- $sql = "INSERT INTO interface (name, rid, speed, description) VALUES(\"$int\", $rid, $speed, \"$desc\")"; ++ $sql = "INSERT INTO `interface` (`name`, `rid`, `speed`, `description`) VALUES(\"$int\", $rid, $speed, \"$desc\")"; + print "adding.\n"; + &sql_insert($sql); + $iid = &find_interface_id( $rid, $int, $desc, $speed ); +@@ -164,7 +167,13 @@ sub find_interface_id { + print "Interface description changed.\n"; + print "Was: \"$row[1]\"\n"; + print "Now: \"$desc\"\n"; +- print "Suggest: UPDATE interface SET description='$desc' WHERE id=$iid\n"; ++ if ( $update_desc == 1 ) { ++ $sql = "UPDATE `interface` SET `description`='$desc' WHERE `id`=$iid"; ++ &sql_insert($sql); ++ print "Updated.\n"; ++ } else { ++ print "Suggest: UPDATE `interface` SET `description`='$desc' WHERE `id`=$iid\n"; ++ } + } + } + $sth->finish; +@@ -289,7 +298,7 @@ sub main { + $year + 1900, $hour, $min; + print CFG "# Host\tOID\tBits\tCommunity\tTable\tID\tDescription\n"; + +- foreach $router (@routers) { ++ POKE: foreach $router (@routers) { + $bits = $counterBits{$router}; + # Sanity check bits + $bits = $defbits if ( ( $bits != 32 ) && ( $bits != 64 ) ); +@@ -304,7 +313,7 @@ sub main { + $system = join ( ' ', @result ); + print "System: $system\n" if $DEBUG; + $session = SNMP_Session->open( $router, $communities{$router}, 161 ) +- || die "Error opening SNMP session to $router"; ++ || ( print "Error opening SNMP session to $router" and next POKE ); + if ( $system =~ /.*Cisco.*WS-.*/ ) { + $system = "Catalyst"; + $session->map_table( $catalyst, \&process ); diff --git a/net/rtg/files/patch-etc_view.php b/net/rtg/files/patch-etc_view.php new file mode 100644 index 000000000000..31afc067ffe7 --- /dev/null +++ b/net/rtg/files/patch-etc_view.php @@ -0,0 +1,258 @@ +--- etc/view.php.orig 2003-09-26 15:58:34 UTC ++++ etc/view.php +@@ -8,154 +8,163 @@ + header("Cache-Control: no-cache, must-revalidate"); + header("Pragma: no-cache"); + +- print "<HTML>\n<!-- RTG Version $VERSION -->\n<HEAD>\n"; ++ print "<html>\n<!-- RTG Version $VERSION -->\n<head>\n"; + + /* Connect to RTG MySQL Database */ +- $dbc=@mysql_connect ($host, $user, $pass) or +- $dbc=@mysql_connect ("$host:/var/lib/mysql/mysql.sock", $user, $pass) or ++ $dbc=@mysqli_connect ($host, $user, $pass, $db) or + die ("MySQL Connection Failed, Check Configuration."); +- mysql_select_db($db,$dbc); + + # Global variables off by default in newer versions of PHP +- if (!$PHP_SELF) { ++ if (!isset($PHP_SELF) || ($PHP_SELF == "")) { + $PHP_SELF = "view.php"; +- $rid = $_GET['rid']; +- $iid = $_GET['iid']; ++ $rid = isset($_GET['rid'])?$_GET['rid']:""; ++ $iid = isset($_GET['iid'])?$_GET['iid']:""; + } + + # Determine router, interface names as necessary +- if ($rid && $iid) { +- $selectQuery="SELECT a.name, a.description, a.speed, b.name AS router FROM interface a, router b WHERE a.rid=b.rid AND a.rid=$rid AND a.id=$iid"; +- $selectResult=mysql_query($selectQuery, $dbc); +- $selectRow=mysql_fetch_object($selectResult); +- $interfaces = mysql_num_rows($selectResult); ++ if (($rid != "") && ($iid != "")) { ++ $selectQuery="SELECT `a`.`name`, `a`.`description`, `a`.`speed`, `b`.`name` " . ++ "AS `router` FROM `interface` `a`, `router` `b` WHERE `a`.`rid`=`b`.`rid` " . ++ "AND `a`.`rid`=" . mysqli_real_escape_string($dbc, $rid) . " AND `a`.`id`=" . ++ mysqli_real_escape_string($dbc, $iid); ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ $selectRow=mysqli_fetch_object($selectResult); ++ $interfaces = mysqli_num_rows($selectResult); + $name = $selectRow->name; + $description = $selectRow->description; + $speed = ($selectRow->speed)/1000000; + $router = $selectRow->router; +- } else if ($rid && !$iid) { +- $selectQuery="SELECT name AS router from router where rid=$rid"; +- $selectResult=mysql_query($selectQuery, $dbc); +- $selectRow=mysql_fetch_object($selectResult); ++ } else if (($rid != "")&& ($iid == "")) { ++ $selectQuery="SELECT `name` AS `router` FROM `router` WHERE `rid`=" . ++ mysqli_real_escape_string($dbc, $rid); ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ $selectRow=mysqli_fetch_object($selectResult); + $router = $selectRow->router; + } + + # Generate Title +- echo "<TITLE>RTG: "; +- if ($rid && $iid) echo "$router: $name"; +- else if ($rid && !$iid) echo "$router"; +- echo "</TITLE>\n"; ++ echo "<title>RTG: "; ++ if (($rid != "") && ($iid != "")) echo "$router: $name"; ++ else if (($rid != "")&& ($iid == "")) echo "$router"; ++ echo "</title>\n"; + +- print "<meta HTTP-EQUIV=\"Refresh\" CONTENT=\"300\">\n"; +- print "<meta HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"; +- print "<meta HTTP-EQUIV=\"Cache-Control\" CONTENT=\"no-cache\">\n"; +- print "<meta HTTP-EQUIV=\"Expires\" CONTENT=\"".gmdate('D, d M Y H:i:s \G\M\T', time() + 300)."\">\n"; +- print "<meta HTTP-EQUIV=\"Generator\" CONTENT=\"RTG $VERSION\">\n"; +- print "<meta HTTP-EQUIV=\"Date\" CONTENT=\"".gmdate('D, d M Y H:i:s \G\M\T', time())."\">\n"; +- print "<meta HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-1\">\n"; ++ print "<meta http-equiv=\"Refresh\" content=\"300\" />\n"; ++ print "<meta http-equiv=\"Pragma\" content=\"no-cache\" />\n"; ++ print "<meta http-equiv=\"Cache-Control\" content=\"no-cache\" />\n"; ++ print "<meta http-equiv=\"Expires\" content=\"".gmdate('D, d M Y H:i:s \G\M\T', time() + 300)."\" />\n"; ++ print "<meta http-equiv=\"Generator\" content=\"RTG $VERSION\" />\n"; ++ print "<meta http-equiv=\"Date\" content=\"".gmdate('D, d M Y H:i:s \G\M\T', time())."\" />\n"; ++ print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"; + ?> + +-</HEAD> +-<BODY BGCOLOR="ffffff"> +-<A HREF="http://rtg.sourceforge.net" ALT="[RTG Home Page]"> +-<IMG SRC="rtg.png" BORDER="0"></A><P><HR> ++</head> ++<body bgcolor="ffffff"> ++<a href="http://rtg.sourceforge.net"<img src="rtg.png" border="0" alt="[RTG Home Page]" /></a><p><hr /> + + <?php +- echo "<FORM ACTION=\"$PHP_SELF\" METHOD=\"GET\">\n"; ++ echo "<form action=\"$PHP_SELF\" method=\"get\">\n"; + + $et = time(); + +- if (!$rid) { ++ if ($rid == "") { + print "Monitored Devices: <P>\n"; +- $selectQuery="SELECT rid, name FROM router"; +- $selectResult=mysql_query($selectQuery, $dbc); +- if (mysql_num_rows($selectResult) <= 0) +- print "<BR>No Routers Found.<BR>\n"; ++ $selectQuery="SELECT `rid`, `name` FROM `router`"; ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ if (mysqli_num_rows($selectResult) <= 0) ++ print "<br />No Routers Found.<br />\n"; + else { +- print "<UL>\n"; +- while ($selectRow=mysql_fetch_object($selectResult)){ +- print "<LI><A HREF=\"$PHP_SELF?rid=$selectRow->rid\">"; +- print "$selectRow->name</A><BR>\n"; ++ print "<ul>\n"; ++ while ($selectRow=mysqli_fetch_object($selectResult)){ ++ print "<li><a href=\"$PHP_SELF?rid=$selectRow->rid\">"; ++ print "$selectRow->name</a></li><br />\n"; + } +- print "</UL>\n"; ++ print "</ul>\n"; + } + } + +- if ($rid && $iid) { ++ if (($rid != "") && ($iid != "")) { + if ($interfaces <= 0) +- print "<BR>Interface $iid Not Found for Router $router (ID: $rid).<BR>\n"; ++ print "<br />Interface $iid Not Found for Router $router (ID: $rid).<br />\n"; + else { +- print "<TABLE>\n"; +- print "<TD>System:<TD>$router\n"; +- print "<TR><TD>Interface:<TD>$name\n"; +- print "<TR><TD>Description:<TD>$description\n"; +- print "<TR><TD>Speed:<TD>$speed Mbps\n"; +- print "<TR><TD>Page Generated:<TD>".gmdate('D, d M Y H:i:s \G\M\T', time())."\n"; +- print "</TABLE><HR>\n"; ++ print "<table>\n"; ++ print "<tr><td>System:</td><td>$router</td></tr>\n"; ++ print "<tr><td>Interface:</td><td>$name</td></tr>\n"; ++ print "<tr><td>Description:</td><td>$description</td></tr>\n"; ++ print "<tr><td>Speed:</td><td>$speed Mbps</td></tr>\n"; ++ print "<tr><td>Page Generated:</td><td>".gmdate('D, d M Y H:i:s \G\M\T', time())."</td></tr>\n"; ++ print "</table><hr />\n"; + + $bt = $et - (60*60*24); +- print "<B>Day View:</B><BR>\n"; +- print "<IMG SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\">\n"; +- print "<BR><B>$router: $name ($description)</B>\n"; +- print "<BR><HR>\n"; ++ print "<b>Day View:</b><br />\n"; ++ print "<img src=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes"; ++ print "&title=" . urlencode("$router: $name ($description)") . "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets") . "\" />\n"; ++ print "<br /><b>$router: $name ($description)</b>\n"; ++ print "<br /><hr />\n"; + + $bt = $et - (60*60*24*7); +- print "<B>Week View:</B><BR>\n"; +- print "<IMG SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\">\n"; +- print "<BR><B>$router: $name ($description)</B>\n"; +- print "<BR><HR>\n"; ++ print "<b>Week View:</b><br />\n"; ++ print "<img src=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes"; ++ print "&title=" . urlencode("$router: $name ($description)") . "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets") . "\" />\n"; ++ print "<br /><b>$router: $name ($description)</b>\n"; ++ print "<br /><hr />\n"; + + $bt = $et - (60*60*24*30); +- print "<B>Month View:</B><BR>\n"; +- print "<IMG SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\">\n"; +- print "<BR><B>$router: $name ($description)</B>\n"; +- print "<BR><BR>\n"; ++ print "<b>Month View:</b><br />\n"; ++ print "<img src=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes"; ++ print "&title=" . urlencode("$router: $name ($description)") . "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets") . "\" />\n"; ++ print "<br /><b>$router: $name ($description)</b>\n"; ++ print "<br /><br />\n"; + } +- print "<INPUT TYPE=\"SUBMIT\" VALUE=\"Back to Main\">\n"; ++ print "<input type=\"submit\" value=\"Back to Main\" />\n"; + } + +- if ($rid && !$iid) { +- $selectQuery="SELECT id, name, description FROM interface WHERE rid=$rid"; +- $selectResult=mysql_query($selectQuery, $dbc); +- $interfaces = mysql_num_rows($selectResult); ++ if (($rid != "") && ($iid == "")) { ++ $selectQuery="SELECT `id`, `name`, `description` FROM `interface` WHERE " . ++ "`rid`=" . mysqli_real_escape_string($dbc, $rid); ++ $selectResult=mysqli_query($dbc, $selectQuery); ++ $interfaces = mysqli_num_rows($selectResult); + if ($interfaces <= 0) +- print "<BR>No Interfaces Found for Router $router (ID: $rid).<BR>\n"; ++ print "<br />No Interfaces Found for Router $router (ID: $rid).<br />\n"; + else { + $bt = $et - (60*60*12); +- print "<TABLE>\n"; +- print "<TD>System:<TD>$router\n"; +- print "<TR><TD>Interfaces:<TD>$interfaces\n"; +- print "<TR><TD>Page Generated:<TD>"; +- print gmdate('D, d M Y H:i:s \G\M\T', time())."\n"; +- print "</TABLE><HR>\n"; +- print "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"10\">\n"; +- while ($selectRow=mysql_fetch_object($selectResult)){ ++ print "<table>\n"; ++ print "<tr><td>System:</td><td>$router</td></tr>\n"; ++ print "<tr><td>Interfaces:</td><td>$interfaces</td></tr>\n"; ++ print "<tr><td>Page Generated:</td><td>"; ++ print gmdate('D, d M Y H:i:s \G\M\T', time())."</td></tr>\n"; ++ print "</table><hr />\n"; ++ print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\">\n"; ++ print "<tr>\n"; ++ while ($selectRow=mysqli_fetch_object($selectResult)){ + $ids[$selectRow->id] = $selectRow->name; + $desc[$selectRow->id] = $selectRow->description; + $iid = $selectRow->id; +- print "<TD><A HREF=\"$PHP_SELF?rid=$rid&iid=$iid\">\n"; +- print "<IMG HEIGHT=\"135\" WIDTH=\"500\" SRC=\"rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid."&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\" BORDER=\"0\">\n"; +- print "</A><BR>\n"; +- print "<B>$selectRow->name ($selectRow->description)</B>\n"; +- if ($even) { ++ print "<td><a href=\"$PHP_SELF?rid=$rid&iid=$iid\">\n"; ++ print "<img height=\"135\" width=\"500\" src=\"/cgi-bin/rtgplot.cgi?t1=ifInOctets_".$rid."&t2=ifOutOctets_".$rid; ++ print "&title=" . urlencode("$router: " . $selectRow->name . " (" . $selectRow->description . ")"); ++ print "&t1_name=" . urlencode("Input Octets") . "&t2_name=" . urlencode("Output Octets"); ++ print "&iid=$iid&begin=$bt&end=$et&units=bits/s&factor=8&filled=yes\" border=\"0\" />\n"; ++ print "</a><br />\n"; ++ print "<b>$selectRow->name ($selectRow->description)</b>\n"; ++ if ($even == 1) { + $even = 0; +- print "<TR>\n"; ++ print "</tr><tr>\n"; + } + else $even = 1; + } +- print "</TABLE>\n"; ++ print "</tr></table>\n"; + } +- print "<INPUT TYPE=\"SUBMIT\" VALUE=\"Back to Main\">\n"; ++ print "<input type=\"submit\" value=\"Back to Main\" />\n"; + } + +- if ($dbc) mysql_close($dbc); +- echo "</FORM>\n"; ++ if ($dbc) mysqli_close($dbc); ++ echo "</form>\n"; + ?> + +-<HR> +-<FONT FACE="Arial" SIZE="2"> ++<hr /> ++<font face="Arial" size="2"> + <?php +- print "<A HREF=\"http://rtg.sourceforge.net\">RTG</A> Version $VERSION</FONT>"; ++ print "<a href=\"http://rtg.sourceforge.net\">RTG</a> Version $VERSION</font>"; + ?> +-</BODY> +-</HTML> ++</body> ++</html> diff --git a/net/rtg/files/patch-man-rtgplot.1 b/net/rtg/files/patch-man_rtgplot.1 index 6ccca28ba90f..6ccca28ba90f 100644 --- a/net/rtg/files/patch-man-rtgplot.1 +++ b/net/rtg/files/patch-man_rtgplot.1 diff --git a/net/rtg/files/patch-man-rtgpoll.1 b/net/rtg/files/patch-man_rtgpoll.1 index 1c15b64d830c..1c15b64d830c 100644 --- a/net/rtg/files/patch-man-rtgpoll.1 +++ b/net/rtg/files/patch-man_rtgpoll.1 diff --git a/net/rtg/files/patch-src-rtg.h b/net/rtg/files/patch-src_rtg.h index 72730abc7017..7abb628c2dc8 100644 --- a/net/rtg/files/patch-src-rtg.h +++ b/net/rtg/files/patch-src_rtg.h @@ -1,8 +1,11 @@ --- src/rtg.h.orig 2003-09-25 15:56:04 UTC +++ src/rtg.h -@@ -42,9 +42,7 @@ +@@ -40,11 +40,9 @@ + #define DEFAULT_DB_DB "rtg" + #define DEFAULT_DB_USER "snmp" #define DEFAULT_DB_PASS "rtgdefault" - #define DEFAULT_SNMP_VER 1 +-#define DEFAULT_SNMP_VER 1 ++#define DEFAULT_SNMP_VER 2 #define DEFAULT_SNMP_PORT 161 - -/* PID File */ diff --git a/net/rtg/files/patch-src-rtgplot.c b/net/rtg/files/patch-src_rtgplot.c index 3808954e15f3..3808954e15f3 100644 --- a/net/rtg/files/patch-src-rtgplot.c +++ b/net/rtg/files/patch-src_rtgplot.c diff --git a/net/rtg/files/patch-src-rtgplot.h b/net/rtg/files/patch-src_rtgplot.h index a71f64b8ace1..dc027aae2a2e 100644 --- a/net/rtg/files/patch-src-rtgplot.h +++ b/net/rtg/files/patch-src_rtgplot.h @@ -1,5 +1,5 @@ ---- src/rtgplot.h 2003-09-24 15:43:39.000000000 +0100 -+++ src/rtgplot.h.new 2010-04-20 21:41:37.131774833 +0100 +--- src/rtgplot.h.orig 2003-09-24 14:43:39 UTC ++++ src/rtgplot.h @@ -11,6 +11,7 @@ #include <gd.h> @@ -8,7 +8,7 @@ #include <strings.h> #define XPLOT_AREA 500 -@@ -95,6 +96,7 @@ +@@ -95,6 +96,7 @@ typedef struct graph_struct { int scaley; range_t range; image_t image; @@ -16,7 +16,7 @@ } graph_t; /* A linked list of colors that we iterate through each line */ -@@ -106,6 +108,7 @@ +@@ -106,6 +108,7 @@ typedef struct color_struct { typedef struct arguments_struct { char *table[MAXTABLES]; diff --git a/net/rtg/files/patch-src-rtgpoll.c b/net/rtg/files/patch-src_rtgpoll.c index c55df98b6aa1..c55df98b6aa1 100644 --- a/net/rtg/files/patch-src-rtgpoll.c +++ b/net/rtg/files/patch-src_rtgpoll.c diff --git a/net/rtg/files/patch-src_rtgutil.c b/net/rtg/files/patch-src_rtgutil.c new file mode 100644 index 000000000000..a430502355a8 --- /dev/null +++ b/net/rtg/files/patch-src_rtgutil.c @@ -0,0 +1,10 @@ +--- src/rtgutil.c.orig 2018-04-02 23:03:54 UTC ++++ src/rtgutil.c +@@ -37,6 +37,7 @@ int read_rtg_config(char *file, config_t + else if (!strcasecmp(p1, "DB_Database")) strncpy(set->dbdb, p2, sizeof(set->dbdb)); + else if (!strcasecmp(p1, "DB_User")) strncpy(set->dbuser, p2, sizeof(set->dbuser)); + else if (!strcasecmp(p1, "DB_Pass")) strncpy(set->dbpass, p2, sizeof(set->dbpass)); ++ else if (!strcasecmp(p1, "Update_desc")) ; // no-op + + /* Long longs not ANSI C. If OS doesn't support atoll() use default. */ + else if (!strcasecmp(p1, "OutOfRange")) |