diff options
-rw-r--r-- | etc/inc/services.inc | 13 | ||||
-rw-r--r-- | etc/inc/system.inc | 2 | ||||
-rw-r--r-- | usr/local/pkg/openntpd.xml | 2 | ||||
-rwxr-xr-x | usr/local/www/services_snmp.php | 42 |
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> </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"> </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"> </td> <td width="78%"> |