From 0dd2a0f47eaeea97bf6e2aa90ebff6c9164cba91 Mon Sep 17 00:00:00 2001 From: Erik Kristensen Date: Sun, 17 Jul 2005 15:59:22 +0000 Subject: [PATCH] added support for dyndns.org static and custom entries. fixed dhs.org so it will work now. --- etc/inc/dyndns.class | 103 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 14 deletions(-) diff --git a/etc/inc/dyndns.class b/etc/inc/dyndns.class index 6f11dd1923..2d6a5b26b6 100644 --- a/etc/inc/dyndns.class +++ b/etc/inc/dyndns.class @@ -1,13 +1,17 @@ _error(2); if (!$dnsUser) $this->_error(3); if (!$dnsPass) $this->_error(4); @@ -72,6 +79,8 @@ $this->_error(10); } else { if ($this->_dnsService == 'dyndns' || + $this->_dnsService == 'dyndns-static' || + $this->_dnsService == 'dyndns-custom' || $this->_dnsService == 'dhs' || $this->_dnsService == 'noip' || $this->_dnsService == 'easydns' || @@ -103,13 +112,45 @@ $needsIP = FALSE; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass); - curl_setopt($ch, CURLOPT_URL, 'https://members.dyndns.org/nic/update?hostname='.$this->_dnsHost); + curl_setopt($ch, CURLOPT_URL, 'https://members.dyndns.org/nic/update?hostname='.$this->_dnsHost.'&myip='.$this->_dnsIP.'&wildcard='.$this->_dnsWildcard.'&mx='.$this->_dnsMX.'&backmx=NO'); + $data = curl_exec($ch); + curl_close($ch); + $this->_checkStatus($data); + break; + case 'dyndns-static': + $needsIP = FALSE; + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass); + curl_setopt($ch, CURLOPT_URL, 'https://members.dyndns.org/nic/update?system=statdns&hostname='.$this->_dnsHost.'&myip='.$this->_dnsIP.'&wildcard='.$this->_dnsWildcard.'&mx='.$this->_dnsMX.'&backmx=NO'); + $data = curl_exec($ch); + curl_close($ch); + $this->_checkStatus($data); + break; + case 'dyndns-custom': + $needsIP = FALSE; + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass); + curl_setopt($ch, CURLOPT_URL, 'https://members.dyndns.org/nic/update?system=custom&hostname='.$this->_dnsHost.'&myip='.$this->_dnsIP.'&wildcard='.$this->_dnsWildcard.'&mx='.$this->_dnsMX.'&backmx=NO'); $data = curl_exec($ch); curl_close($ch); $this->_checkStatus($data); break; case 'dhs': $needsIP = TRUE; + $post_data['hostscmd'] = 'edit'; + $post_data['hostscmdstage'] = '2'; + $post_data['type'] = '4'; + $post_data['updatetype'] = 'Online'; + $post_data['mx'] = $this->_dnsMX; + $post_data['mx2'] = ''; + $post_data['txt'] = ''; + $post_data['offline_url'] = ''; + $post_data['cloak'] = 'Y'; + $post_data['cloak_title'] = ''; + $post_data['ip'] = $this->_dnsIP; + $post_data['domain'] = 'dyn.dhs.org'; + $post_data['hostname'] = $this->_dnsHost; + $post_data['submit'] = 'Update'; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_URL, 'https://members.dhs.org/nic/hosts'); curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass); @@ -130,7 +171,7 @@ $needsIP = TRUE; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass); - curl_setopt($ch, CURLOPT_URL, 'http://members.easydns.com/dyn/dyndns.php?hostname='.$this->_dnsHost.'&myip='.$this->_dnsIP); + curl_setopt($ch, CURLOPT_URL, 'http://members.easydns.com/dyn/dyndns.php?hostname='.$this->_dnsHost.'&myip='.$this->_dnsIP.'&wildcard='.$this->_dnsWildcard.'&mx='.$this->_dnsMX.'&backmx='.$this->_dnsBackMX); $data = curl_exec($ch); curl_close($ch); $this->_checkStatus($data); @@ -185,6 +226,34 @@ $this->_debug($data); } break; + case 'dyndns-static': + if (preg_match('/notfqdn/i', $data)) { + $status = "phpDynDNS: (Error) Not A FQDN!"; + } else if (preg_match('/nochg/i', $data)) { + $status = "phpDynDNS: (Success) No Change In IP Address"; + } else if (preg_match('/good/i', $data)) { + $status = "phpDynDNS: (Success) IP Address Changed Successfully!"; + } else if (preg_match('/noauth/i', $data)) { + $status = "phpDynDNS: (Error) User Authorization Failed"; + } else { + $status = "phpDynDNS: (Unknown Response)"; + $this->_debug($data); + } + break; + case 'dyndns-custom': + if (preg_match('/notfqdn/i', $data)) { + $status = "phpDynDNS: (Error) Not A FQDN!"; + } else if (preg_match('/nochg/i', $data)) { + $status = "phpDynDNS: (Success) No Change In IP Address"; + } else if (preg_match('/good/i', $data)) { + $status = "phpDynDNS: (Success) IP Address Changed Successfully!"; + } else if (preg_match('/noauth/i', $data)) { + $status = "phpDynDNS: (Error) User Authorization Failed"; + } else { + $status = "phpDynDNS: (Unknown Response)"; + $this->_debug($data); + } + break; case 'dhs': break; case 'noip': @@ -363,6 +432,12 @@ case 'dyndns': $time = '2419200'; break; + case 'dyndns-static': + $time = '2419200'; + break; + case 'dyndns-custom': + $time = '2419200'; + break; case 'dhs': $time = '2419200'; break;