<?php

$pgtitle = array(gettext("Status"), "tinc");
require("guiconfig.inc");

function tinc_status_1() {
        exec("/usr/local/sbin/tincd --config=/usr/local/etc/tinc -kUSR1");
	usleep(500000);
	$clog_path = "";
	$result = array();
	if (is_executable("/usr/local/sbin/clog")) {
		$clog_path = "/usr/local/sbin/clog";
	} elseif (is_executable("/usr/sbin/clog")) {
		$clog_path = "/usr/sbin/clog";
	}

	if (!empty($clog_path))
		exec("{$clog_path} /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);
	$clog_path = "";
	$result = array();
	if (is_executable("/usr/local/sbin/clog")) {
		$clog_path = "/usr/local/sbin/clog";
	} elseif (is_executable("/usr/sbin/clog")) {
		$clog_path = "/usr/sbin/clog";
	}

	if (!empty($clog_path))
		exec("{$clog_path} /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"); ?>

Connection list:<BR>
<pre>
<?php print tinc_status_1(); ?>
</pre>
<BR>
Virtual network device statistics, all known nodes, edges and subnets:<BR>
<pre>
<?php print tinc_status_2(); ?>
</pre>

<?php include("fend.inc"); ?>