mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
Add RFC 2136 support to the DynDNS widget
This commit is contained in:
parent
934795aed4
commit
9207dc4d93
@ -65,30 +65,48 @@ if (!is_array($config['dyndnses']['dyndns'])) {
|
||||
$config['dyndnses']['dyndns'] = array();
|
||||
}
|
||||
|
||||
$a_dyndns = &$config['dyndnses']['dyndns'];
|
||||
$a_dyndns = $config['dyndnses']['dyndns'];
|
||||
|
||||
if (!is_array($config['dnsupdates']['dnsupdate'])) {
|
||||
$config['dnsupdates']['dnsupdate'] = array();
|
||||
}
|
||||
|
||||
$a_rfc2136 = $config['dnsupdates']['dnsupdate'];
|
||||
|
||||
$all_dyndns = array_merge($a_dyndns, $a_rfc2136);
|
||||
|
||||
if ($_REQUEST['getdyndnsstatus']) {
|
||||
$first_entry = true;
|
||||
foreach ($a_dyndns as $dyndns) {
|
||||
foreach ($all_dyndns as $dyndns) {
|
||||
if ($first_entry) {
|
||||
$first_entry = false;
|
||||
} else {
|
||||
// Put a vertical bar delimiter between the echoed HTML for each entry processed.
|
||||
echo "|";
|
||||
}
|
||||
|
||||
$cache_sep = ":";
|
||||
if ($dyndns['type'] == "namecheap") {
|
||||
$hostname = $dyndns['host'] . "." . $dyndns['domainname'];
|
||||
} elseif (empty($dyndns['type'])) {
|
||||
/* RFC2136, add some dummy values */
|
||||
$dyndns['type'] = '_rfc2136_';
|
||||
$dyndns['id'] = '_' . $dyndns['server'];
|
||||
$hostname = $dyndns['host'];
|
||||
$cache_sep = "|";
|
||||
} else {
|
||||
$hostname = $dyndns['host'];
|
||||
}
|
||||
|
||||
$filename = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($hostname) . "{$dyndns['id']}.cache";
|
||||
if (file_exists($filename)) {
|
||||
$ipaddr = dyndnsCheckIP($dyndns['interface']);
|
||||
$cached_ip_s = explode(':', file_get_contents($filename));
|
||||
if (($dyndns['type'] == '_rfc2136_') && (!isset($dyndns['usepublicip']))) {
|
||||
$ipaddr = get_interface_ip(get_failover_interface($dyndns['interface']));
|
||||
} else {
|
||||
$ipaddr = dyndnsCheckIP($dyndns['interface']);
|
||||
}
|
||||
$cached_ip_s = explode($cache_sep, file_get_contents($filename));
|
||||
$cached_ip = $cached_ip_s[0];
|
||||
if ($ipaddr <> $cached_ip) {
|
||||
if (trim($ipaddr) != trim($cached_ip)) {
|
||||
print('<span class="text-danger">');
|
||||
} else {
|
||||
print('<span class="text-success">');
|
||||
@ -114,9 +132,15 @@ if ($_REQUEST['getdyndnsstatus']) {
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $dyndnsid = 0; foreach ($a_dyndns as $dyndns):
|
||||
<?php $dyndnsid = 0; foreach ($all_dyndns as $dyndns):
|
||||
|
||||
if ($dyndns['type'] == "namecheap") {
|
||||
$hostname = $dyndns['host'] . "." . $dyndns['domainname'];
|
||||
} elseif (empty($dyndns['type'])) {
|
||||
/* RFC2136, add some dummy values */
|
||||
$dyndns['type'] = '_rfc2136_';
|
||||
$dyndns['id'] = '_' . $dyndns['server'];
|
||||
$hostname = $dyndns['host'];
|
||||
} else {
|
||||
$hostname = $dyndns['host'];
|
||||
} ?>
|
||||
@ -148,6 +172,9 @@ if ($_REQUEST['getdyndnsstatus']) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dyndns['type'] == '_rfc2136_') : ?>
|
||||
RFC 2136
|
||||
<? endif;
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user