*/
static public function callback()
{
- Horde_Nls::$dnsResolver = $GLOBALS['injector']->getInstance('Net_DNS_Resolver');
+ Horde_Nls::$dnsResolver = $GLOBALS['injector']->getInstance('Net_DNS2_Resolver');
}
-
}
{
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;
}
-
}
'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. */
*
* @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.
$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);
}
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);
}
/**
* DNS resolver.
*
- * @var Net_DNS_Resolver
+ * @var Net_DNS2_Resolver
*/
static public $dnsResolver;
'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. */
$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(
);
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);
</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>
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
? $_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);
}
'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.'
/* 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();
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']
)
),