summaryrefslogtreecommitdiffstats
path: root/etc/inc/dyndns.class
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-06-06 10:22:00 +0000
committerErmal <eri@pfsense.org>2011-06-06 10:22:00 +0000
commit425ba70828642b66b19e5888c2b4d0c63250cf79 (patch)
tree441df962dc37fbaa541b6a9abd42e1a9d9225a4f /etc/inc/dyndns.class
parent6627e4ec35f0ea2f8739eb8104fd500021ac412b (diff)
downloadpfsense-425ba70828642b66b19e5888c2b4d0c63250cf79.zip
pfsense-425ba70828642b66b19e5888c2b4d0c63250cf79.tar.gz
Ticket #1545. Take into account curl errors during dyndns service checks otherwise will just mark some updates as successful even though they are not.
Diffstat (limited to 'etc/inc/dyndns.class')
-rw-r--r--etc/inc/dyndns.class74
1 files changed, 12 insertions, 62 deletions
diff --git a/etc/inc/dyndns.class b/etc/inc/dyndns.class
index 65defb2..07fdf95 100644
--- a/etc/inc/dyndns.class
+++ b/etc/inc/dyndns.class
@@ -202,10 +202,6 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server .$port . '?system=dyndns&hostname=' . $this->_dnsHost . '&myip=' . $this->_dnsIP . '&wildcard='.$this->_dnsWildcard . '&mx=' . $this->_dnsMX . '&backmx=NO');
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'dhs':
$needsIP = TRUE;
@@ -233,10 +229,6 @@
curl_setopt($ch, CURLOPT_URL, '{$server}{$port}');
curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'noip':
$needsIP = TRUE;
@@ -248,10 +240,6 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server . $port . '?username=' . urlencode($this->_dnsUser) . '&pass=' . urlencode($this->_dnsPass) . '&hostname=' . $this->_dnsHost.'&ip=' . $this->_dnsIP);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'easydns':
$needsIP = TRUE;
@@ -264,10 +252,6 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server . $port . '?hostname=' . $this->_dnsHost . '&myip=' . $this->_dnsIP . '&wildcard=' . $this->_dnsWildcard . '&mx=' . $this->_dnsMX . '&backmx=' . $this->_dnsBackMX);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'hn':
$needsIP = TRUE;
@@ -280,10 +264,6 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server . $port . '?ver=1&IP=' . $this->_dnsIP);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'zoneedit':
$needsIP = FALSE;
@@ -298,11 +278,6 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, "{$server}{$port}?host=" .$this->_dnsHost);
-
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'dyns':
$needsIP = FALSE;
@@ -313,10 +288,6 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server . $port . '?username=' . urlencode($this->_dnsUser) . '&password=' . $this->_dnsPass . '&host=' . $this->_dnsHost);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'ods':
$needsIP = FALSE;
@@ -354,33 +325,21 @@
break;
}
}
- $this->_checkStatus($code);
+ $this->_checkStatus(0, $code);
break;
case 'freedns':
$needIP = FALSE;
curl_setopt($ch, CURLOPT_URL, 'http://freedns.afraid.org/dynamic/update.php?' . $this->_dnsPass);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'dnsexit':
$needsIP = TRUE;
curl_setopt($ch, CURLOPT_URL, 'http://www.dnsexit.com/RemoteUpdate.sv?login='.$this->_dnsUser. '&password='.$this->_dnsPass.'&host='.$this->_dnsHost.'&myip='.$this->_dnsIP);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred:" . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'loopia':
$needsIP = TRUE;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass);
curl_setopt($ch, CURLOPT_URL, 'https://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname='.$this->_dnsHost.'&myip='.$this->_dnsIP);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'opendns':
$needsIP = FALSE;
@@ -394,19 +353,11 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server .$port);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'staticcling':
$needsIP = FALSE;
curl_setopt($ch, CURLOPT_URL, 'http://www.staticcling.org/update.html?login='.$this->_dnsUser.'&pass='.$this->_dnsPass);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occured: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'dnsomatic':
/* Example syntax
@@ -423,10 +374,6 @@
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server . $this->_dnsHost . '&myip=' . $this->_dnsIP . '&wildcard='.$this->_dnsWildcard . '&mx=' . $this->_dnsMX . '&backmx=NOCHG');
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Request completed. DNS-O-Matic reported: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'namecheap':
/* Example:
@@ -438,10 +385,6 @@
list($hostname, $domain) = explode(".", $this->_dnsHost, 2);
$server = "https://dynamicdns.park-your-domain.com/update?host={$hostname}&domain={$domain}&password={$this->_dnsPass}&ip={$this->_dnsIP}";
curl_setopt($ch, CURLOPT_URL, $server);
- $data = curl_exec($ch);
- if (@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
case 'he-net':
$needsIP = FALSE;
@@ -450,14 +393,15 @@
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsHost . ':' . $this->_dnsPass);
curl_setopt($ch, CURLOPT_URL, $server . 'hostname=' . $this->_dnsHost);
- $data = curl_exec($ch);
- if(@curl_error($ch)) log_error("Curl error occurred: " . curl_error($ch));
- curl_close($ch);
- $this->_checkStatus($data);
break;
default:
break;
}
+ if ($this->_dnsService != 'ods') {
+ $data = curl_exec($ch);
+ $this->_checkStatus($ch, $data);
+ @curl_close($ch);
+ }
}
/*
@@ -468,6 +412,12 @@
log_error("DynDns: DynDns _checkStatus() starting.");
log_error("DynDns: Current Service: {$this->_dnsService}");
$successful_update = false;
+ if ($this->_dnsService != 'ods' && @curl_error($ch)) {
+ $status = "Curl error occurred: " . curl_error($ch);
+ log_error($status);
+ $this->status = $status;
+ return;
+ }
switch ($this->_dnsService) {
case 'dnsomatic':
if (preg_match('/badauth/i', $data)) {
OpenPOWER on IntegriCloud