r1183 + added a fallback hack to let people use the common name in absence of other...
authorDenis Ovsienko <infrastation@yandex.ru>
Thu, 11 Oct 2007 12:26:16 +0000 (12:26 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Thu, 11 Oct 2007 12:26:16 +0000 (12:26 +0000)
inc/functions.php
inc/interface.php

index 154e445..d1b75e7 100644 (file)
@@ -1008,20 +1008,22 @@ function getObjectForwards($object_id)
 }
 
 // This function returns an array of single element of object's FQDN attribute,
-// if FQDN is set. Otherwise an array of all 'regular' IP addresses of the
+// if FQDN is set. The next choice is object's common name, if it looks like a
+// hostname. Otherwise an array of all 'regular' IP addresses of the
 // object is returned (which may appear 0 and more elements long).
-// FIXME: attribute id for FQDN
-function findAllEndpoints ($object_id)
+function findAllEndpoints ($object_id, $fallback = '')
 {
        $values = getAttrValues ($object_id);
        foreach ($values as $record)
-               if ($record['id'] == 3 && !empty ($record['value']))
+               if ($record['name'] == 'FQDN' && !empty ($record['value']))
                        return array ($record['value']);
        $addresses = getObjectAddresses ($object_id);
        $regular = array();
        foreach ($addresses as $idx => $address)
                if ($address['type'] == 'regular')
                        $regular[] = $address['ip'];
+       if (!count ($regular) && !empty ($fallback))
+               return array ($fallback);
        return $regular;
 }
 
index 8f0b214..7ef8c28 100644 (file)
@@ -2851,7 +2851,8 @@ function getSwitchVLANs ($object_id = 0)
                showError ('Invalid object_id in getSwitchVLANs()');
                return;
        }
-       $endpoints = findAllEndpoints ($object_id);
+       $objectInfo = getObjectInfo ($object_id);
+       $endpoints = findAllEndpoints ($object_id, $objectInfo['name']);
        if (count ($endpoints) == 0)
        {
                showError ('Can\'t find any mean to reach current object. Please either set FQDN attribute or assign an IP address to the object.');