summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/services.inc
diff options
context:
space:
mode:
authorskrude61 <github@krude.de>2016-09-20 10:26:26 +0200
committerskrude61 <github@krude.de>2016-09-20 10:26:26 +0200
commitdf8ebedc4b0efd944e4be810abaf3e7e919e7904 (patch)
treec989770715ef4b3229953cc96318fdabd5c0a797 /src/etc/inc/services.inc
parentefae02fccd6d8bddd8c4b3034b5fa472fb009ad6 (diff)
downloadpfsense-df8ebedc4b0efd944e4be810abaf3e7e919e7904.zip
pfsense-df8ebedc4b0efd944e4be810abaf3e7e919e7904.tar.gz
Allow snmpd to bind to multiple interfaces.
Diffstat (limited to 'src/etc/inc/services.inc')
-rw-r--r--src/etc/inc/services.inc24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc
index 66f1062..4592de8 100644
--- a/src/etc/inc/services.inc
+++ b/src/etc/inc/services.inc
@@ -2379,24 +2379,34 @@ begemotSnmpdCommunityDisable = 1
EOD;
- $bind_to_ip = "0.0.0.0";
+ $bind_to_ips = array();
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 = get_interface_ip($config['snmpd']['bindip']);
+ foreach (explode(",", $config['snmpd']['bindip']) as $bind_to_ip) {
+ if (is_ipaddr($bind_to_ip)) {
+ $bind_to_ips[] = $bind_to_ip;
+ } else {
+ $if = get_real_interface($bind_to_ip);
+ if (does_interface_exist($if)) {
+ $bindip = get_interface_ip($bind_to_ip);
+ if (is_ipaddr($bindip)) {
+ $bind_to_ips[] = $bindip;
+ }
+ }
}
}
}
+ if (!count($bind_to_ips)) {
+ $bind_to_ips = array("0.0.0.0");
+ }
if (is_port($config['snmpd']['pollport'])) {
+ foreach ($bind_to_ips as $bind_to_ip) {
$snmpdconf .= <<<EOD
begemotSnmpdPortStatus.{$bind_to_ip}.{$config['snmpd']['pollport']} = 1
EOD;
+ }
}
$snmpdconf .= <<<EOD
OpenPOWER on IntegriCloud