diff --git a/html/pages/device/bgp.inc.php b/html/pages/device/bgp.inc.php
index 338701968..c6f3465f8 100644
--- a/html/pages/device/bgp.inc.php
+++ b/html/pages/device/bgp.inc.php
@@ -31,13 +31,31 @@ print_optionbar_end();
if($peer['bgpPeerRemoteAs'] == $device['bgpLocalAs']) { $peer_type = "iBGP"; } else { $peer_type = "eBGP"; }
- $query = "SELECT * FROM ipv4_addresses AS A, ipv6_addresses AS S, interfaces AS I, devices AS D WHERE ";
+ $query = "SELECT * FROM ipv4_addresses AS A, interfaces AS I, devices AS D WHERE ";
$query .= "(A.ipv4_address = '".$peer['bgpPeerIdentifier']."' AND I.interface_id = A.interface_id)";
- $query .= " OR (S.ipv6_compressed = '".$peer['bgpPeerIdentifier']."' AND I.interface_id = S.interface_id)";
$query .= " AND D.device_id = I.device_id";
- $peerhost = mysql_fetch_array(mysql_query($query));
+ $ipv4_host = mysql_fetch_array(mysql_query($query));
- if($peerhost) { $peername = generatedevicelink($peerhost); } else { $peername = '' . gethostbyaddr($peer['bgpPeerIdentifier']) . ''; if ($peername == ''.$peer['bgpPeerIdentifier'].'') $peername = "";}
+ $query = "SELECT * FROM ipv6_addresses AS A, interfaces AS I, devices AS D WHERE ";
+ $query .= "(A.ipv6_address = '".$peer['bgpPeerIdentifier']."' AND I.interface_id = A.interface_id)";
+ $query .= " AND D.device_id = I.device_id";
+ $ipv6_host = mysql_fetch_array(mysql_query($query));
+
+ if($ipv4_host) {
+ $peerhost = $ipv4_host;
+ } elseif($ipv6_host) {
+ $peerhost = $ipv6_host;
+ }
+ if($peerhost) {
+ $peername = generatedevicelink($peerhost);
+ } else {
+ $peername = gethostbyaddr($peer['bgpPeerIdentifier']);
+ if($peername == $peer['bgpPeerIdentifier']) {
+ unset ($peername);
+ } else {
+ $peername = "".$peername."";
+ }
+ }
$af_query = mysql_query("SELECT * FROM `bgpPeers_cbgp` WHERE `device_id` = '".$device['device_id']."' AND bgpPeerIdentifier = '".$peer['bgpPeerIdentifier']."'");
unset($peer_af);
@@ -48,6 +66,7 @@ print_optionbar_end();
$sep = "
";
$valid_afi_safi[$afi][$safi] = 1; ## Build a list of valid AFI/SAFI for this peer
}
+
unset($sep);
echo("
| $i |