Initial switch from Net_DNS to Net_DNS2
authorChuck Hagenbuch <chuck@horde.org>
Fri, 5 Nov 2010 14:44:41 +0000 (10:44 -0400)
committerChuck Hagenbuch <chuck@horde.org>
Fri, 5 Nov 2010 14:45:54 +0000 (10:45 -0400)
12 files changed:
framework/Core/lib/Horde/Core/Autoloader/Callback/Nls.php
framework/Core/lib/Horde/Core/Factory/Dns.php
framework/Core/lib/Horde/Registry.php
framework/Mime/lib/Horde/Mime/Headers.php
framework/Nls/lib/Horde/Nls.php
horde/admin/sessions.php
horde/config/conf.xml
horde/docs/CHANGES
horde/lib/LoginTasks/Task/LastLogin.php
horde/lib/Test.php
imp/lib/Compose.php
imp/lib/Mime/Viewer/Itip.php

index 2bc7e9d..50d77b9 100644 (file)
@@ -10,7 +10,6 @@ class Horde_Core_Autoloader_Callback_Nls
      */
     static public function callback()
     {
-        Horde_Nls::$dnsResolver = $GLOBALS['injector']->getInstance('Net_DNS_Resolver');
+        Horde_Nls::$dnsResolver = $GLOBALS['injector']->getInstance('Net_DNS2_Resolver');
     }
-
 }
index 9fcce91..5bea722 100644 (file)
@@ -7,21 +7,11 @@ class Horde_Core_Factory_Dns
 {
     public function create(Horde_Injector $injector)
     {
-        /* Need check for Net_DNS since it defines global variables used
-         * in Net_DNS_Resolver::. */
-        if (!class_exists('Net_DNS')) {
-            return null;
-        }
+        $resolver = new Net_DNS2_Resolver();
+        $resolver->setServers('/etc/resolv.conf');
 
-        $resolver = new Net_DNS_Resolver();
-        $resolver->retry = isset($GLOBALS['conf']['dns']['retry'])
-            ? $GLOBALS['conf']['dns']['retry']
-            : 1;
-        $resolver->retrans = isset($GLOBALS['conf']['dns']['retrans'])
-            ? $GLOBALS['conf']['dns']['retrans']
-            : 1;
+        spl_autoload_unregister('Net_DNS2::autoload');
 
         return $resolver;
     }
-
 }
index b8df1a7..5d38116 100644 (file)
@@ -287,7 +287,7 @@ class Horde_Registry
             'Horde_Token' => 'Horde_Core_Factory_Token',
             'Horde_View' => 'Horde_Core_Factory_View',
             'Horde_View_Base' => 'Horde_Core_Factory_View',
-            'Net_DNS_Resolver' => 'Horde_Core_Factory_Dns',
+            'Net_DNS2_Resolver' => 'Horde_Core_Factory_Dns',
         );
 
         /* Define implementations. */
index ab361ef..a15519f 100644 (file)
@@ -163,7 +163,7 @@ class Horde_Mime_Headers implements Serializable
      *
      * @param array $options  Additional options:
      * <pre>
-     * 'dns' - (Net_DNS_Resolver) Use the DNS resolver object to lookup
+     * 'dns' - (Net_DNS2_Resolver) Use the DNS resolver object to lookup
      *         hostnames.
      *         DEFAULT: Use gethostbyaddr() function.
      * 'server' - (string) Use this server name.
@@ -179,14 +179,16 @@ class Horde_Mime_Headers implements Serializable
             $remote_addr = $remote_path[0];
             if (!empty($options['dns'])) {
                 $remote = $remote_addr;
-                if ($response = $options['dns']->query($remote_addr, 'PTR')) {
-                    foreach ($response->answer as $val) {
-                        if (isset($val->ptrdname)) {
-                            $remote = $val->ptrdname;
-                            break;
+                try {
+                    if ($response = $options['dns']->query($remote_addr, 'PTR')) {
+                        foreach ($response->answer as $val) {
+                            if (isset($val->ptrdname)) {
+                                $remote = $val->ptrdname;
+                                break;
+                            }
                         }
                     }
-                }
+                } catch (Net_DNS2_Exception $e) {}
             } else {
                 $remote = gethostbyaddr($remote_addr);
             }
@@ -195,14 +197,16 @@ class Horde_Mime_Headers implements Serializable
             if (empty($_SERVER['REMOTE_HOST'])) {
                 if (!empty($options['dns'])) {
                     $remote = $remote_addr;
-                    if ($response = $options['dns']->query($remote_addr, 'PTR')) {
-                        foreach ($response->answer as $val) {
-                            if (isset($val->ptrdname)) {
-                                $remote = $val->ptrdname;
-                                break;
+                    try {
+                        if ($response = $options['dns']->query($remote_addr, 'PTR')) {
+                            foreach ($response->answer as $val) {
+                                if (isset($val->ptrdname)) {
+                                    $remote = $val->ptrdname;
+                                    break;
+                                }
                             }
                         }
-                    }
+                    } catch (Net_DNS2_Exception $e) {}
                 } else {
                     $remote = gethostbyaddr($remote_addr);
                 }
index b025205..3af2b56 100644 (file)
@@ -22,7 +22,7 @@ class Horde_Nls
     /**
      * DNS resolver.
      *
-     * @var Net_DNS_Resolver
+     * @var Net_DNS2_Resolver
      */
     static public $dnsResolver;
 
@@ -130,19 +130,24 @@ class Horde_Nls
             'museum', 'name', 'net', 'org', 'pro'
         );
 
-        $checkHost = $host;
+        $checkHost = null;
         if (preg_match('/^\d+\.\d+\.\d+\.\d+$/', $host)) {
-            if (isset(self::$dnsResolver) &&
-                ($response = self::$dnsResolver->query($host, 'PTR'))) {
-                foreach ($response->answer as $val) {
-                    if (isset($val->ptrdname)) {
-                        $checkHost = $val->ptrdname;
-                        break;
+            if (isset(self::$dnsResolver)) {
+                try {
+                    $response = self::$dnsResolver->query($host, 'PTR');
+                    foreach ($response->answer as $val) {
+                        if (isset($val->ptrdname)) {
+                            $checkHost = $val->ptrdname;
+                            break;
+                        }
                     }
-                }
-            } else {
+                } catch (Net_DNS2_Exception $e) {}
+            }
+            if (is_null($checkHost)) {
                 $checkHost = @gethostbyaddr($host);
             }
+        } else {
+            $checkHost = $host;
         }
 
         /* Get the TLD of the hostname. */
index 0c1adef..f7ca3b4 100644 (file)
@@ -30,7 +30,7 @@ try {
     $plus = Horde::img('tree/plusonly.png', _("Expand"));
     $minus = Horde::img('tree/minusonly.png', _("Collapse"), 'style="display:none"');
 
-    $resolver = $injector->getInstance('Net_DNS_Resolver');
+    $resolver = $injector->getInstance('Net_DNS2_Resolver');
 
     foreach ($session_info as $id => $data) {
         $entry = array(
@@ -41,10 +41,15 @@ try {
         );
 
         if (!empty($data['remoteAddr'])) {
+            $host = null;
             if ($resolver) {
-                $response = $resolver->query($data['remoteAddr'], 'PTR');
-                $host = $response ? $response->answer[0]->ptrdname : $data['remoteAddr'];
-            } else {
+                try {
+                    if ($response = $resolver->query($data['remoteAddr'], 'PTR')) {
+                        $host = $response->answer[0]->ptrdname;
+                    }
+                } catch (Net_DNS2_Exception $e) {}
+            }
+            if (is_null($host)) {
                 $host = @gethostbyaddr($data['remoteAddr']);
             }
             $entry[_("Remote Host:")] = $host . ' [' . $data['remoteAddr'] . '] ' . Horde_Core_Ui_FlagImage::generateFlagImageByHost($host);
index 50aaf9b..eacc07e 100644 (file)
   </configsection>
  </configtab>
 
- <configtab name="dns" desc="DNS Lookups">
-  <configsection name="dns">
-   <configheader>DNS Lookup Settings</configheader>
-   <configinteger name="retrans" required="false" desc="If installed, Horde
-   can use the PEAR Net_DNS module for DNS lookups. Set the amount of time
-   in seconds the resolver will wait for a response from a remote name server
-   before retrying the query. Defaults to 1."/>
-   <configinteger name="retry" required="false" desc="If installed, Horde
-   can use the PEAR Net_DNS module for DNS lookups. Set the number of times
-   the resolver will send a query to its name servers before giving
-   up. Defaults to 1."/>
-  </configsection>
- </configtab>
-
  <configtab name="problems" desc="Problem Reporting">
   <configsection name="problems">
    <configheader>Problem Reporting Settings</configheader>
index ecab048..798807e 100644 (file)
@@ -2,6 +2,7 @@
 v4.0-cvs
 --------
 
+[cjh] Move from Net_DNS to Net_DNS2.
 [jan] Translations for the framework packages are now bundled with those
       packages.
 [bak] Remove LDAP driver from Horde_SessionHandler
index 64e4d21..f004e44 100644 (file)
@@ -54,16 +54,18 @@ class Horde_LoginTasks_Task_LastLogin extends Horde_LoginTasks_Task
             ? $_SERVER['REMOTE_ADDR']
             : $_SERVER['HTTP_X_FORWARDED_FOR'];
 
-        if ($dns = $GLOBALS['injector']->getInstance('Net_DNS_Resolver')) {
+        if ($dns = $GLOBALS['injector']->getInstance('Net_DNS2_Resolver')) {
             $ptrdname = $host;
-            if ($response = $dns->query($host, 'PTR')) {
-                foreach ($response->answer as $val) {
-                    if (isset($val->ptrdname)) {
-                        $ptrdname = $val->ptrdname;
-                        break;
+            try {
+                if ($response = $dns->query($host, 'PTR')) {
+                    foreach ($response->answer as $val) {
+                        if (isset($val->ptrdname)) {
+                            $ptrdname = $val->ptrdname;
+                            break;
+                        }
                     }
                 }
-            }
+            } catch (Net_DNS2_Exception $e) {}
         } else {
             $ptrdname = @gethostbyaddr($host);
         }
index 2888d12..eec773b 100644 (file)
@@ -294,8 +294,8 @@ class Horde_Test
         'MDB2' => array(
             'error' => 'You will need MDB2 if you are using the SQL driver for Shares.',
         ),
-        'Net_DNS' => array(
-            'error' => 'Net_DNS can speed up hostname lookups against broken DNS servers.'
+        'Net_DNS2' => array(
+            'error' => 'Net_DNS2 can speed up hostname lookups against broken DNS servers.'
         ),
         'Net_SMTP' => array(
             'error' => 'Make sure you are using the Net_SMTP module if you want "smtp" to work as a mailer option.'
index e033d46..1c17852 100644 (file)
@@ -526,7 +526,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
 
         /* Add a Received header for the hop from browser to server. */
         $headers->addReceivedHeader(array(
-            'dns' => $GLOBALS['injector']->getInstance('Net_DNS_Resolver'),
+            'dns' => $GLOBALS['injector']->getInstance('Net_DNS2_Resolver'),
             'server' => $GLOBALS['conf']['server']['name']
         ));
         $headers->addMessageIdHeader();
index 1802a3a..699e693 100644 (file)
@@ -274,7 +274,7 @@ class IMP_Mime_Viewer_Itip extends Horde_Mime_Viewer_Base
                             new Horde_Itip_Response_Options_Horde(
                                 $charset,
                                 array(
-                                    'dns' => $GLOBALS['injector']->getInstance('Net_DNS_Resolver'),
+                                    'dns' => $GLOBALS['injector']->getInstance('Net_DNS2_Resolver'),
                                     'server' => $GLOBALS['conf']['server']['name']
                                 )
                             ),