summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/inc/services.inc13
-rw-r--r--etc/inc/system.inc2
-rw-r--r--usr/local/pkg/openntpd.xml2
-rwxr-xr-xusr/local/www/services_snmp.php42
4 files changed, 39 insertions, 20 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index 3f88455..61df803 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -1501,10 +1501,15 @@ begemotSnmpdCommunityDisable = 1
EOD;
- if(isset($config['snmpd']['bindlan'])) {
- $bind_to_ip = get_interface_ip("lan");
- } else {
- $bind_to_ip = "0.0.0.0";
+ $bind_to_ip = "0.0.0.0";
+ if(isset($config['snmpd']['bindip'])) {
+ if (is_ipaddr($config['snmpd']['bindip'])) {
+ $bind_to_ip = $config['snmpd']['bindip'];
+ } else {
+ $if = get_real_interface($config['snmpd']['bindip']);
+ if (does_interface_exist($if))
+ $bind_to_ip = find_interface_ip($if);
+ }
}
if(is_port( $config['snmpd']['pollport'] )) {
diff --git a/etc/inc/system.inc b/etc/inc/system.inc
index b443e8a..14d4e89 100644
--- a/etc/inc/system.inc
+++ b/etc/inc/system.inc
@@ -1552,7 +1552,7 @@ function system_get_dmesg_boot() {
return file_get_contents("{$g['varlog_path']}/dmesg.boot");
}
-function openntpd_get_listen_ips() {
+function get_possible_listen_ips() {
$interfaces = get_configured_interface_with_descr();
$carplist = get_configured_carp_interface_list();
$listenips = array();
diff --git a/usr/local/pkg/openntpd.xml b/usr/local/pkg/openntpd.xml
index cefb76d..bfc1718 100644
--- a/usr/local/pkg/openntpd.xml
+++ b/usr/local/pkg/openntpd.xml
@@ -17,7 +17,7 @@
<default_value>lan</default_value>
<multiple/>
<type>select_source</type>
- <source><![CDATA[openntpd_get_listen_ips()]]></source>
+ <source><![CDATA[get_possible_listen_ips()]]></source>
<source_name>name</source_name>
<source_value>value</source_value>
diff --git a/usr/local/www/services_snmp.php b/usr/local/www/services_snmp.php
index c2f763f..bd76fd9 100755
--- a/usr/local/www/services_snmp.php
+++ b/usr/local/www/services_snmp.php
@@ -75,7 +75,7 @@ $pconfig['netgraph'] = isset($config['snmpd']['modules']['netgraph']);
$pconfig['pf'] = isset($config['snmpd']['modules']['pf']);
$pconfig['hostres'] = isset($config['snmpd']['modules']['hostres']);
$pconfig['bridge'] = isset($config['snmpd']['modules']['bridge']);
-$pconfig['bindlan'] = isset($config['snmpd']['bindlan']);
+$pconfig['bindip'] = isset($config['snmpd']['bindip']);
if ($_POST) {
@@ -146,7 +146,7 @@ if ($_POST) {
$config['snmpd']['modules']['pf'] = $_POST['pf'] ? true : false;
$config['snmpd']['modules']['hostres'] = $_POST['hostres'] ? true : false;
$config['snmpd']['modules']['bridge'] = $_POST['bridge'] ? true : false;
- $config['snmpd']['bindlan'] = $_POST['bindlan'] ? true : false;
+ $config['snmpd']['bindip'] = $_POST['bindip'];
write_config();
@@ -207,7 +207,6 @@ function enable_change(whichone) {
document.iform.syscontact.disabled = false;
document.iform.rocommunity.disabled = false;
document.iform.trapenable.disabled = false;
- //document.iform.bindlan.disabled = false;
/* disabled until some docs show up on what this does.
document.iform.rwenable.disabled = false;
if( document.iform.rwenable.checked == true )
@@ -257,7 +256,6 @@ function enable_change(whichone) {
document.iform.pf.disabled = true;
document.iform.hostres.disabled = true;
//document.iform.bridge.disabled = true;
- //document.iform.bindlan.disabled = true;
}
}
//-->
@@ -384,16 +382,32 @@ function enable_change(whichone) {
<input name="hostres" type="checkbox" id="hostres" value="yes" onClick="check_deps()" <?php if ($pconfig['hostres']) echo "checked"; ?> ><?=gettext("Host Resources (Requires MibII)");?>
</td>
</tr>
-<?php if($config['interfaces']['lan']): ?>
- <tr>
- <td width="22%" valign="top" class="vtable"></td>
- <td width="78%" class="vtable">
- <input name="bindlan" type="checkbox" value="yes" <?php if ($pconfig['bindlan']) echo "checked"; ?>> <strong><?=gettext("Bind to LAN interface only");?></strong>
- <br>
- <?=gettext("This option can be useful when trying to access the SNMP agent".
- " by the LAN interface's IP address through a VPN tunnel terminated on the WAN interface.");?></td>
- </tr>
-<?php endif; ?>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan="2" valign="top" class="optsect_t">
+ <table border="0" cellspacing="0" cellpadding="0" width="100%">
+ <tr><td class="optsect_s"><strong><?=gettext("Interface Binding");?></strong></td>
+ <td align="right" class="optsect_s">&nbsp;</td></tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Bind Interface"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="bindip" class="formselect">
+ <option value="">All</option>
+ <?php $listenips = get_possible_listen_ips();
+ foreach ($listenips as $lip):
+ $selected = "";
+ if ($lip['value'] == $pconfig['bindip'])
+ $selected = "selected";
+ ?>
+ <option value="<?=$lip['value'];?>" <?=$selected;?>>
+ <?=htmlspecialchars($lip['name']);?>
+ </option>
+ <?php endforeach; ?>
+ </tr>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
OpenPOWER on IntegriCloud