summaryrefslogtreecommitdiff
path: root/data.php
diff options
context:
space:
mode:
authorOthmar Gsenger <otti@ffgraz.net>2013-11-12 18:24:00 +0000
committerOthmar Gsenger <otti@ffgraz.net>2013-11-12 18:24:00 +0000
commita47c4eecff79c1d57650b46c437b628d873705b2 (patch)
tree9d53fe963419ce8965fe237be47784c1afd84510 /data.php
parentf6be9edd401664d95e60ae3c81aeaf36723ba891 (diff)
bisher uncommitete aenderungen am www.ffgraz.net (nicht von mir)
Diffstat (limited to 'data.php')
-rw-r--r--data.php534
1 files changed, 389 insertions, 145 deletions
diff --git a/data.php b/data.php
index adcdbfa..2735c0b 100644
--- a/data.php
+++ b/data.php
@@ -1,145 +1,389 @@
-<?php
-session_start();
-
-require_once("db.class.php");
-require_once("ipmatch.php");
-require_once("config.php");
-
-header("Content-Type: text/xml");
-header("Cache-Control: no-cache, must-revalidate");
-header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-
-$db = new DB($conf['db']['user'], $conf['db']['password'], $conf['db']['host'], $conf['db']['database']);
-$conf['acl']['auth'] = match_network($conf['acl']['range'],$_SERVER[REMOTE_ADDR]);
-
-if(!$conf['acl']['auth'] )
-{
- if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'])
- $conf['acl']['auth'] = true;
-}
-
-$x_startpoint = 4080;
-$lng_startpoint = 15.43844103813;
-$dx_dLng = 50675.5176;
-$y_startpoint = 4806;
-$lat_startpoint= 47.07177327969;
-$dy_dLat = 75505.521;
-
-$locations = array();
-$locids = array();
-$nodename = array();
-$links = array();
-$already = array();
-$count = array();
-
-$db->query("SELECT ip, location.id as locid,location.name as locname, node.name as nodename FROM ip, node, location WHERE ip.node_id = node.id and node.location_id=location.id");
-while ($data = $db->getNextObject()) {
- $locids[$data->ip]= $data->locid;
- $nodename[$data->ip]= $data->nodename;
-}
-
-if($conf['acl']['auth'])
- $db->query("SELECT id as locid, name as locname, pixel_x, pixel_y, gallery_link, location.hastinc as hastinc FROM location ORDER BY name ASC");
-else
- $db->query("SELECT id as locid, name as locname, pixel_x, pixel_y, gallery_link, location.hastinc as hastinc FROM location WHERE location.hidden = 0 ORDER BY name ASC");
-
-while ($data = $db->getNextObject()) {
- if ($data->pixel_x == "0")
- continue;
-
- $data->lng = $lng_startpoint + ($data->pixel_x - $x_startpoint) / $dx_dLng;
- $data->lat = $lat_startpoint + ($y_startpoint - $data->pixel_y) / $dy_dLat;
- $data->state = "offline";
- $locations[$data->locid] = $data;
-}
-
-$regmatch = '#\"(.+)\" -> \"(.+)\"\[label=\"([0-9]+.[0-9]+)\"]#';
-$lines = file($conf['topo']['file']);
-
-$linecnt=0;
-$i =0;
-foreach ($lines as $num => $line)
-{
- $linecnt++;
- preg_match($regmatch,$line,$matches);
- list( , $ipfromLoc, $iptoLoc, $label) = $matches;
-
- if (empty($ipfromLoc) || empty($iptoLoc) || empty($label))
- continue;
-
- if(empty($locations[$locids[$ipfromLoc]]->locid) || empty($locations[$locids[$iptoLoc]]->locid))
- continue;
-
- if($locations[$locids[$ipfromLoc]]->locid == $locations[$locids[$iptoLoc]]->locid)
- continue;
-
- if($already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->used == true) {
- $jot = $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->i;
- if($links[$jot]->label != -1)
- $links[$jot]->label = ($links[$jot]->label + $label)/2;
- }
- elseif($already[$locations[$locids[$iptoLoc]]->locid . '-' . $locations[$locids[$ipfromLoc]]->locid]->used == true) {
- $jot = $already[$locations[$locids[$iptoLoc]]->locid . '-' . $locations[$locids[$ipfromLoc]]->locid]->i;
- if($links[$jot]->label != -1)
- $links[$jot]->label = ($links[$jot]->label + $label)/2;
- }
- else {
- $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->used = true;
- $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->i = $i;
-
- $links[$i]->ipfromLoc = $ipfromLoc;
- $links[$i]->iptoLoc = $iptoLoc;
- if($links[$i]->label != -1)
- $links[$i]->label = $label;
- if($locations[$locids[$ipfromLoc]]->state == "offline")
- $locations[$locids[$ipfromLoc]]->state = "online";
- if($locations[$locids[$iptoLoc]]->state == "offline")
- $locations[$locids[$iptoLoc]]->state = "online";
-
- if (($nodename[$ipfromLoc] == "tunnel" && $locations[$locids[$ipfromLoc]]->locname=="housing") ||
- ($nodename[$iptoLoc] == "tunnel" && $locations[$locids[$iptoLoc]]->locname=="housing" ) ||
- ($locations[$locids[$iptoLoc]]->hastinc && $locations[$locids[$ipfromLoc]]->hastinc)) {
- $links[$i]->label = -1;
- $locations[$locids[$ipfromLoc]]->state = "tunnel";
- $locations[$locids[$iptoLoc]]->state = "tunnel";
- }
-
- $i++;
- }
-}
-
-
-echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
-echo "<root>\n";
-
-echo "<nodes>\n";
-foreach ($locations as $location) {
- $data = $locations[$location->locid];
- printf("\t" . '<node id="%s" name="%s" lat="%s" lng="%s" pixel_x="%s" pixel_y="%s" state="%s" gallery_link="%s"/>' . "\n",
- $data->locid, $data->locname, $data->lat, $data->lng, $data->pixel_x, $data->pixel_y, $data->state, $data->gallery_link);
-}
-echo "</nodes>\n";
-
-echo "<links>\n";
-foreach ($links as $link)
-{
- $data1 = $locations[$locids[$link->ipfromLoc]];
- $data2 = $locations[$locids[$link->iptoLoc]];
-
- $count[$data1->locid]=true;
- $count[$data2->locid]=true;
-
- printf("\t" . '<link fromid="%s" from="%s" latfrom="%s" lngfrom="%s" toid="%s" to="%s" latto="%s" lngto="%s" value="%s" />' . "\n",
- $data1->locid, $data1->locname, $data1->lat,$data1->lng,$data2->locid, $data2->locname, $data2->lat, $data2->lng, $link->label);
-}
-echo "</links>\n";
-
-echo "<counts>\n";
-printf("\t" . '<count number="');
-echo sizeof($count);
-printf('" />' . "\n");
-echo "</counts>\n";
-
-echo "</root>";
-
-?>
+<?php
+session_start();
+error_reporting(0);
+require_once("db.class.php");
+require_once("ipmatch.php");
+require_once("config.php");
+
+header("Content-Type: text/xml");
+header("Cache-Control: no-cache, must-revalidate");
+header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+$db = new DB($conf['db']['user'], $conf['db']['password'], $conf['db']['host'], $conf['db']['database']);
+$conf['acl']['auth'] = match_network($conf['acl']['range'],$_SERVER["REMOTE_ADDR"]);
+
+$handle = fopen ($conf['router']['file'],"r");
+while ( ($data = fgetcsv ($handle, 1000, ",")) !== FALSE ) { // Daten werden aus der Datei
+ $routerhash[$data[0]]=$data;
+}
+fclose ($handle);
+
+if(!$conf['acl']['auth'] )
+{
+ if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'])
+ $conf['acl']['auth'] = true;
+}
+
+//zum Test
+//$conf['acl']['auth'] = true;
+
+$x_startpoint = 4080;
+$lng_startpoint = 15.43844103813;
+$dx_dLng = 50675.5176;
+$y_startpoint = 4806;
+$lat_startpoint= 47.07177327969;
+$dy_dLat = 75505.521;
+
+$locations = array();
+$locids = array();
+$nodename = array();
+$locname = array();
+$ipname = array();
+$dnsnames = array();
+$ip = array();
+$nodelocnames = array();
+$ipnodelocnames = array();
+$links = array();
+$already = array();
+$count = array();
+
+$db->query("SELECT ip, ip.name as ipname,location.id as locid,location.name as locname, node.name as nodename FROM ip, node, location WHERE ip.node_id = node.id and node.location_id=location.id");
+while ($data = $db->getNextObject()) {
+ $locids[$data->ip]= $data->locid;
+ $nodename[$data->ip]= $data->nodename;
+ $locname[$data->ip]= $data->locname;
+ $ipname[$data->ip]= $data->ipname;
+ $dnsname = $data->ipname.'.'.$data->nodename.'.'.$data->locname;
+ $dnsnames[$data->locid][]=$dnsname;
+ $ip[$dnsname]=$data->ip;
+ $nodelocname = $data->nodename.'.'.$data->locname;
+ $nodelocnames[$data->locid][]=$nodelocname;
+ $ipnodelocnames[$nodelocname][]=$data->ipname;
+}
+if($conf['acl']['auth'])
+ $db->query("SELECT id as locid, name as locname, pixel_x, pixel_y, gallery_link, location.hastinc as hastinc FROM location ORDER BY name ASC");
+else
+ $db->query("SELECT id as locid, name as locname, pixel_x, pixel_y, gallery_link, location.hastinc as hastinc FROM location WHERE location.hidden = 0 ORDER BY name ASC");
+
+while ($data = $db->getNextObject()) {
+ if ($data->pixel_x == "0")
+ continue;
+
+ $data->lng = $lng_startpoint + ($data->pixel_x - $x_startpoint) / $dx_dLng;
+ $data->lat = $lat_startpoint + ($y_startpoint - $data->pixel_y) / $dy_dLat;
+ $data->state = "offline";
+ if($conf['acl']['auth']){
+ foreach($nodelocnames[$data->locid] as $nodelocname){
+ while(strpos($data->dnsnames,$nodelocname)===false){
+ foreach($ipnodelocnames[$nodelocname] as $ipnodelocname){
+// echo $nodelocname;
+// echo "\n";
+// print_r($ipnodelocnames[$nodelocname]);
+// echo "\n";
+// echo $ipnodelocname;
+// echo "\n";
+ $channel="";
+ $frequence="";
+ $dnsname=$ipnodelocname.".".$nodelocname;
+ if($routerhash[$ip[$dnsname]][4]!=""){
+ $channel= $routerhash[$ip[$dnsname]][4];
+ }
+ if ($routerhash[$ip[$dnsname]][5]!=""){
+ $frequence = $routerhash[$ip[$dnsname]][5];
+ }
+ if ($channel!="" or $frequence!=""){
+ $data->dnsnames = $dnsname." (Kanal: ".$channel." / ".$frequence." GHz);".$data->dnsnames;
+ break 2;
+ }
+ }
+ $data->dnsnames = $dnsname.";".$data->dnsnames;
+ }
+ }
+/* foreach($dnsnames[$data->locid] as $dnsname){
+ if(strpos($data->dnsnames,substr($dnsname,strpos($dnsname,".")))===false){
+ $channel="";
+ $frequence="";
+ if($routerhash[$ip[$dnsname]][4]!=""){
+ $channel= $routerhash[$ip[$dnsname]][4];
+ }
+ if ($routerhash[$ip[$dnsname]][5]!=""){
+ $frequence = $routerhash[$ip[$dnsname]][5];
+ }
+ if ($channel!="" or $frequence!=""){
+ $data->dnsnames = $dnsname." (Kanal: ".$channel." / ".$frequence."GHz);".$data->dnsnames;
+ break;
+ } else {
+ $data->dnsnames = $dnsname.";".$data->dnsnames;
+ }
+ }
+ }
+*/
+ }
+ $locations[$data->locid] = $data;
+}
+
+$regmatch = '#\"(.+)\" -> \"(.+)\"\[label=\"([0-9]+.[0-9]+)\"]#';
+$lines = file($conf['topo']['file']);
+
+$linecnt=0;
+$i =0;
+foreach ($lines as $num => $line)
+{
+
+ $linecnt++;
+ if(preg_match($regmatch,$line,$matches)==0)
+ continue;
+
+ list( , $ipfromLoc, $iptoLoc, $label) = $matches;
+
+ if (empty($ipfromLoc) || empty($iptoLoc) || empty($label))
+ continue;
+
+ if (empty($locids[$ipfromLoc]) || empty($locids[$iptoLoc]))
+ continue;
+
+ if(empty($locations[$locids[$ipfromLoc]]->locid) || empty($locations[$locids[$iptoLoc]]->locid))
+ continue;
+
+ if($locations[$locids[$ipfromLoc]]->locid == $locations[$locids[$iptoLoc]]->locid)
+ continue;
+// echo $locations[$locids[$ipfromLoc]]->locid;
+// echo "-";
+// echo "$ipfromLoc\n";
+// echo $locations[$locids[$iptoLoc]]->locid;
+// echo "\n\n";
+// echo "$iptoLoc\n";
+
+
+
+ if(isset($already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid])&&
+ ($already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->used == true)) {
+ $jot = $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->i;
+ if($links[$jot]->label != -1){
+ if (($links[$jot]->$ipfromLoc==$iptoLoc) || ($links[$jot]->$iptoLoc==$ipfromLoc)){
+ $links[$jot]->label = ($links[$jot]->label + $label)/2;
+ } else if ($links[$jot]->label > $label){
+ $links[$jot]->label = $label;
+ }
+ }
+ if (array_key_exists($ipfromLoc,$routerhash)){
+ if ($routerhash[$ipfromLoc][4]!==""){
+ $links[$jot]->channel = $routerhash[$ipfromLoc][4];
+
+ }
+ if ($routerhash[$ipfromLoc][5]!==""){
+ $links[$jot]->frequence = $routerhash[$ipfromLoc][5];
+ }
+
+ } else if (array_key_exists($iptoLoc,$routerhash)){
+ if ($routerhash[$iptoLoc][4]!==""){
+ $links[$jot]->channel = $routerhash[$iptoLoc][4];
+ }
+ if ($routerhash[$iptoLoc][5]!==""){
+ $links[$jot]->frequence = $routerhash[$iptoLoc][5];
+ }
+ } else{
+ $links[$jot]->channel ="undef";
+ $links[$jot]->frequence ="undef";
+ // echo "keine IP\n";
+ }
+ if (array_key_exists($ipfromLoc,$routerhash)){
+ if($conf['acl']['auth']){
+ if (strpos($links[$jot]->dnsfrom ,$routerhash[$ipfromLoc][1])===false){
+
+ $links[$jot]->dnsfrom =($routerhash[$ipfromLoc][1].' (Kanal: '.$links[$jot]->channel.' / '.$links[$jot]->frequence.' GHz)'.';'.($links[$jot]->dnsfrom));
+ }
+
+ }
+ if ($routerhash[$ipfromLoc][3]==$iptoLoc){
+ $links[$jot]->defaultroute = "1";
+ }
+ }
+ if (array_key_exists($iptoLoc,$routerhash)){
+ if($conf['acl']['auth']){
+ if (strpos($links[$jot]->dnsto ,$routerhash[$iptoLoc][1])===false){
+// echo "B\n";
+ $links[$jot]->dnsto =($routerhash[$iptoLoc][1].' (Kanal: '.$links[$jot]->channel.' / '.$links[$jot]->frequence.' GHz)'.';'.($links[$jot]->dnsto));
+ }
+ }
+ if ($routerhash[$iptoLoc][3]==$ipfromLoc){
+ $links[$jot]->defaultroute = "1";
+ }
+ }
+
+ }
+ elseif(isset($already[$locations[$locids[$iptoLoc]]->locid . '-' . $locations[$locids[$ipfromLoc]]->locid])&&
+ ($already[$locations[$locids[$iptoLoc]]->locid . '-' . $locations[$locids[$ipfromLoc]]->locid]->used == true)) {
+ $jot = $already[$locations[$locids[$iptoLoc]]->locid . '-' . $locations[$locids[$ipfromLoc]]->locid]->i;
+ if($links[$jot]->label != -1){
+ if (($links[$jot]->$ipfromLoc==$iptoLoc) || ($links[$jot]->$iptoLoc==$ipfromLoc)){
+ $links[$jot]->label = ($links[$jot]->label + $label)/2;
+ } else if ($links[$jot]->label > $label){
+ $links[$jot]->label = $label;
+ }
+ }
+ if (array_key_exists($ipfromLoc,$routerhash)){
+ if ($routerhash[$ipfromLoc][4]!==""){
+ $links[$jot]->channel = $routerhash[$ipfromLoc][4];
+
+ }
+ if ($routerhash[$ipfromLoc][5]!==""){
+ $links[$jot]->frequence = $routerhash[$ipfromLoc][5];
+ }
+
+ } else if (array_key_exists($iptoLoc,$routerhash)){
+ if ($routerhash[$iptoLoc][4]!==""){
+ $links[$jot]->channel = $routerhash[$iptoLoc][4];
+ }
+ if ($routerhash[$iptoLoc][5]!==""){
+ $links[$jot]->frequence = $routerhash[$iptoLoc][5];
+ }
+ } else{
+ $links[$jot]->channel ="undef";
+ $links[$jot]->frequence ="undef";
+ // echo "keine IP\n";
+ }
+ if (array_key_exists($ipfromLoc,$routerhash)){
+ if($conf['acl']['auth']){
+ if (strpos($links[$jot]->dnsto,$routerhash[$ipfromLoc][1])===false){
+// echo "C\n";
+ $links[$jot]->dnsto =($routerhash[$ipfromLoc][1].' (Kanal: '.$links[$jot]->channel.' / '.$links[$jot]->frequence.' GHz)'.';'.($links[$jot]->dnsto));
+ }
+ }
+ if ($routerhash[$ipfromLoc][3]==$iptoLoc){
+ $links[$jot]->defaultroute = "1";
+ }
+ }
+ if (array_key_exists($iptoLoc,$routerhash)){
+ if($conf['acl']['auth']){
+ if (strpos($links[$jot]->dnsfrom,$routerhash[$iptoLoc][1])===false){
+// echo "D\n";
+ $links[$jot]->dnsfrom =($routerhash[$iptoLoc][1].' (Kanal: '.$links[$jot]->channel.' / '.$links[$jot]->frequence.' GHz)'.';'.($links[$jot]->dnsfrom));
+ }
+ }
+ if ($routerhash[$iptoLoc][3]==$ipfromLoc){
+ $links[$jot]->defaultroute = "1";
+ }
+ }
+
+ }
+ else {
+// if(isset($already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid])) {
+ $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->used = true;
+ $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->i = $i;
+//
+ $links[$i]->ipfromLoc = $ipfromLoc;
+ $links[$i]->iptoLoc = $iptoLoc;
+
+ if (array_key_exists($ipfromLoc,$routerhash)){
+ if ($routerhash[$ipfromLoc][4]!==""){
+ $links[$i]->channel = $routerhash[$ipfromLoc][4];
+
+ }
+ if ($routerhash[$ipfromLoc][5]!==""){
+ $links[$i]->frequence = $routerhash[$ipfromLoc][5];
+ }
+
+ } else if (array_key_exists($iptoLoc,$routerhash)){
+ if ($routerhash[$iptoLoc][4]!==""){
+ $links[$i]->channel = $routerhash[$iptoLoc][4];
+ }
+ if ($routerhash[$iptoLoc][5]!==""){
+ $links[$i]->frequence = $routerhash[$iptoLoc][5];
+ }
+ } else{
+ $links[$i]->channel ="undef";
+ $links[$i]->frequence ="undef";
+ // echo "keine IP\n";
+ }
+ $links[$i]->defaultroute = "0";
+
+ if($conf['acl']['auth']){
+ $links[$i]->dnsfrom =$ipname[$ipfromLoc].'.'.$nodename[$ipfromLoc].'.'.$locname[$ipfromLoc].' (Kanal: '.$links[$i]->channel.' / '.$links[$i]->frequence.' GHz )';
+ $links[$i]->dnsto =$ipname[$iptoLoc].'.'.$nodename[$iptoLoc].'.'.$locname[$iptoLoc].' (Kanal: '.$links[$i]->channel.' / '.$links[$i]->frequence.' GHz)';
+ }
+
+ if (array_key_exists($ipfromLoc,$routerhash)){
+
+ if($conf['acl']['auth']){
+ $links[$i]->dnsfrom =$routerhash[$ipfromLoc][1].' (Kanal: '.$links[$i]->channel.' / '.$links[$i]->frequence.' GHz)';
+ }
+ if ($routerhash[$ipfromLoc][3]==$iptoLoc){
+ $links[$i]->defaultroute = "1";
+ }
+ }
+ if (array_key_exists($iptoLoc,$routerhash)){
+ if($conf['acl']['auth']){
+ $links[$i]->dnsto =$routerhash[$iptoLoc][1].' (Kanal: '.$links[$i]->channel.' / '.$links[$i]->frequence.' GHz)';
+ }
+
+ if ($routerhash[$iptoLoc][3]==$ipfromLoc){
+ $links[$i]->defaultroute = "1";
+ }
+ }
+
+
+
+ if($links[$i]->label != -1){
+ $links[$i]->label = $label;
+ if($locations[$locids[$ipfromLoc]]->state == "offline")
+ $locations[$locids[$ipfromLoc]]->state = "online";
+ if($locations[$locids[$iptoLoc]]->state == "offline")
+ $locations[$locids[$iptoLoc]]->state = "online";
+ }
+ if (($nodename[$ipfromLoc] == "tunnel" && $locations[$locids[$ipfromLoc]]->locname=="housing") ||
+ ($nodename[$iptoLoc] == "tunnel" && $locations[$locids[$iptoLoc]]->locname=="housing" ) ||
+ ($locations[$locids[$iptoLoc]]->hastinc && $locations[$locids[$ipfromLoc]]->hastinc)) {
+ $links[$i]->label = -1;
+
+ $links[$i]->defaultroute ="1";
+ $locations[$locids[$ipfromLoc]]->state = "tunnel";
+ $locations[$locids[$iptoLoc]]->state = "tunnel";
+ }
+ if (($nodename[$ipfromLoc] == "tunnel" && $locations[$locids[$ipfromLoc]]->locname=="housing") ||
+ ($nodename[$iptoLoc] == "tunnel" && $locations[$locids[$iptoLoc]]->locname=="housing" )){
+ $links[$i]->frequence ="LAN";
+ $links[$i]->channel ="undef";
+ }
+
+ $i++;
+ }
+}
+
+
+echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
+echo "<root>\n";
+
+echo "<nodes>\n";
+foreach ($locations as $location) {
+ $data = $locations[$location->locid];
+ printf("\t" . '<node id="%s" name="%s" lat="%s" lng="%s" pixel_x="%s" pixel_y="%s" state="%s" gallery_link="%s" router_links="%s"/>' . "\n",
+ $data->locid, $data->locname, $data->lat, $data->lng, $data->pixel_x, $data->pixel_y, $data->state, $data->gallery_link, $data->dnsnames);
+}
+echo "</nodes>\n";
+
+echo "<links>\n";
+
+foreach ($links as $link)
+
+
+{
+ $data1 = $locations[$locids[$link->ipfromLoc]];
+ $data2 = $locations[$locids[$link->iptoLoc]];
+
+ $count[$data1->locid]=true;
+ $count[$data2->locid]=true;
+
+ printf("\t" . '<link fromid="%s" from="%s" latfrom="%s" lngfrom="%s" toid="%s" to="%s" latto="%s" lngto="%s" value="%s" channel="%s" defaultroute="%s" frequence="%s" dnsfrom="%s" dnsto="%s"/>' . "\n",
+ $data1->locid, $data1->locname, $data1->lat,$data1->lng,$data2->locid, $data2->locname, $data2->lat, $data2->lng, $link->label, $link->channel, $link->defaultroute, $link->frequence, $link->dnsfrom,$link->dnsto);
+}
+echo "</links>\n";
+
+echo "<counts>\n";
+printf("\t" . '<count number="');
+echo sizeof($count);
+printf('" />' . "\n");
+echo "</counts>\n";
+
+echo "</root>";
+
+?>