diff options
author | skrude61 <github@krude.de> | 2016-09-20 10:26:26 +0200 |
---|---|---|
committer | skrude61 <github@krude.de> | 2016-09-20 10:26:26 +0200 |
commit | df8ebedc4b0efd944e4be810abaf3e7e919e7904 (patch) | |
tree | c989770715ef4b3229953cc96318fdabd5c0a797 /src/etc/inc/services.inc | |
parent | efae02fccd6d8bddd8c4b3034b5fa472fb009ad6 (diff) | |
download | pfsense-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.inc | 24 |
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 |