diff options
Diffstat (limited to 'config/tinc/status_tinc.php')
-rw-r--r-- | config/tinc/status_tinc.php | 56 |
1 files changed, 51 insertions, 5 deletions
diff --git a/config/tinc/status_tinc.php b/config/tinc/status_tinc.php index 17b8e48c..725ccce6 100644 --- a/config/tinc/status_tinc.php +++ b/config/tinc/status_tinc.php @@ -2,23 +2,69 @@ $pgtitle = array(gettext("Status"), "tinc"); require("guiconfig.inc"); -require_once("tinc.inc"); +function tinc_status_1() { + exec("/usr/local/sbin/tincd --config=/usr/local/etc/tinc -kUSR1"); + usleep(500000); + exec("/usr/sbin/clog /var/log/tinc.log | sed -e 's/.*tinc\[.*\]: //'",$result); + $i=0; + foreach($result as $line) + { + if(preg_match("/Connections:/",$line)) + $begin=$i; + if(preg_match("/End of connections./",$line)) + $end=$i; + $i++; + } + $output=""; + $i=0; + foreach($result as $line) + { + if($i >= $begin && $i<= $end) + $output .= $line . "\n"; + $i++; + } + return $output; +} + +function tinc_status_2() { + exec("/usr/local/sbin/tincd --config=/usr/local/etc/tinc -kUSR2"); + usleep(500000); + exec("/usr/sbin/clog /var/log/tinc.log | sed -e 's/.*tinc\[.*\]: //'",$result); + $i=0; + foreach($result as $line) + { + if(preg_match("/Statistics for Generic BSD tun device/",$line)) + $begin=$i; + if(preg_match("/End of subnet list./",$line)) + $end=$i; + $i++; + } + $output=""; + $i=0; + foreach($result as $line) + { + if($i >= $begin && $i<= $end) + $output .= $line . "\n"; + $i++; + } + return $output; +} + +$shortcut_section = "tinc"; include("head.inc"); ?> <body link="#0000CC" vlink="#0000CC" alink="#0000CC" onload="<?=$jsevents["body"]["onload"];?>"> <?php include("fbegin.inc"); ?> - -1:<BR> +Connection list:<BR> <pre> <?php print tinc_status_1(); ?> </pre> <BR> -2:<BR> +Virtual network device statistics, all known nodes, edges and subnets:<BR> <pre> <?php print tinc_status_2(); ?> </pre> - <?php include("fend.inc"); ?> |