diff options
-rw-r--r-- | etc/inc/dyndns.class | 4 | ||||
-rw-r--r-- | etc/inc/services.inc | 8 | ||||
-rwxr-xr-x | usr/local/www/services_dyndns.php | 3 | ||||
-rw-r--r-- | usr/local/www/services_dyndns_edit.php | 12 |
4 files changed, 13 insertions, 14 deletions
diff --git a/etc/inc/dyndns.class b/etc/inc/dyndns.class index 5c853a9..beb3633 100644 --- a/etc/inc/dyndns.class +++ b/etc/inc/dyndns.class @@ -94,7 +94,7 @@ */ function updatedns ($dnsService = '', $dnsHost = '', $dnsUser = '', $dnsPass = '', $dnsWildcard = 'OFF', $dnsMX = '', $dnsIf = '', $dnsBackMX = '', - $dnsServer = '', $dnsPort = '', $dnsUpdateURL = '') { + $dnsServer = '', $dnsPort = '', $dnsUpdateURL = '', $forceUpdate = false) { global $config, $g; @@ -140,7 +140,7 @@ $this->_debugID = rand(1000000, 9999999); - if ($this->_detectChange() == false) { + if ($forceUpdate == false && $this->_detectChange() == false) { $this->_error(10); } else { switch ($this->_dnsService) { diff --git a/etc/inc/services.inc b/etc/inc/services.inc index 2af9aa9..6693161 100644 --- a/etc/inc/services.inc +++ b/etc/inc/services.inc @@ -1309,8 +1309,12 @@ function services_dyndns_configure_client($conf) { $dnsPass = $conf['password'], $dnsWilcard = $conf['wildcard'], $dnsMX = $conf['mx'], - $dnsIf = "{$conf['interface']}"); - + $dnsIf = "{$conf['interface']}", + $dnsBackMX = NULL, + $dnsServer = NULL, + $dnsPort = NULL, + $dnsUpdateURL = NULL, + $forceUpdate = $conf['force']); } function services_dyndns_configure($int = "") { diff --git a/usr/local/www/services_dyndns.php b/usr/local/www/services_dyndns.php index 9b359f4..950733b 100755 --- a/usr/local/www/services_dyndns.php +++ b/usr/local/www/services_dyndns.php @@ -159,7 +159,8 @@ include("head.inc"); <td colspan="3" class="list"><p class="vexpl"><span class="red"><strong> <?=gettext("Note:");?><br> </strong></span> - <?=gettext("IP addresses appearing in green are up to date with Dynamic DNS provider.");?> + <?=gettext("IP addresses appearing in green are up to date with Dynamic DNS provider.");?><br> + <?=gettext("You can force an update for an IP address on the edit page for that service.");?> </td> <td class="list"> </td> </tr> diff --git a/usr/local/www/services_dyndns_edit.php b/usr/local/www/services_dyndns_edit.php index 136d654..f09b9f6 100644 --- a/usr/local/www/services_dyndns_edit.php +++ b/usr/local/www/services_dyndns_edit.php @@ -104,6 +104,7 @@ if ($_POST) { $dyndns['enable'] = $_POST['enable'] ? false : true; $dyndns['interface'] = $_POST['interface']; $dyndns['descr'] = $_POST['descr']; + $dyndns['force'] = isset($_POST['force']); if($dyndns['username'] == "none") $dyndns['username'] = ""; @@ -115,15 +116,7 @@ if ($_POST) { write_config(); - $retval = 0; - - conf_mount_rw(); - - unlink("{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}{$dyndns['host']}.cache"); - - $retval = services_dyndns_configure_client($dyndns); - - conf_mount_ro(); + services_dyndns_configure_client($dyndns); header("Location: services_dyndns.php"); exit; @@ -237,6 +230,7 @@ include("head.inc"); <a href="services_dyndns.php"><input name="cancel" type="button" class="formbtn" value="<?=gettext("Cancel");?>"></a> <?php if (isset($id) && $a_dyndns[$id]): ?> <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>"> + <input name="force" type="submit" class="formbtn" value="<?=gettext("Save & Force Update");?>" onClick="enable_change(true)"> <?php endif; ?> </td> </tr> |