summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2018-05-21 19:52:40 +0200
committerChristian Poessinger <christian@poessinger.com>2018-06-04 19:19:29 +0200
commit0d72ed94a46a655cbc0ff9e32d258fbee3e9f330 (patch)
treed6f4be7da7f587160803b23d345b0291cbf885b4 /src
parentf12cab5ed3ffeb8a4c34cb874cc05a1cd381ba14 (diff)
downloadvyos-1x-0d72ed94a46a655cbc0ff9e32d258fbee3e9f330.tar.gz
vyos-1x-0d72ed94a46a655cbc0ff9e32d258fbee3e9f330.zip
snmp.py: refactor listen-address config generation
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/snmp.py27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py
index 80f3bee8c..227c00335 100755
--- a/src/conf_mode/snmp.py
+++ b/src/conf_mode/snmp.py
@@ -92,7 +92,7 @@ SysDescr {{ description }}
{% endif %}
# Listen
-agentaddress unix:/run/snmpd.socket{% for ip in listen_on %},{{ ip.prot }}:{{ ip.addr }}:{{ ip.port }}{% endfor %}
+agentaddress unix:/run/snmpd.socket{% for li in listen_on %},{{ li }}{% endfor %}
# SNMP communities
@@ -172,20 +172,19 @@ def get_config():
if conf.exists('listen-address'):
for addr in conf.list_nodes('listen-address'):
- prot = "udp"
- if ipaddress.ip_address(addr).version == 6:
- # SNMP configuration file requires brackets on IPv6 addresses
- addr = "[" + addr + "]"
- prot = "udp6"
-
- listen = {
- 'addr': addr,
- 'prot': prot,
- 'port': '161'
- }
-
+ listen = ''
+ port = '161'
if conf.exists('listen-address {0} port'.format(addr)):
- listen['port'] = conf.return_value('listen-address {0} port'.format(addr))
+ port = conf.return_value('listen-address {0} port'.format(addr))
+
+ if ipaddress.ip_address(addr).version == 4:
+ # udp:127.0.0.1:161
+ listen = 'udp:' + addr + ':' + port
+ elif ipaddress.ip_address(addr).version == 6:
+ # udp6:[::1]:161
+ listen = 'udp6:' + '[' + addr + ']' + ':' + port
+ else:
+ raise ConfigError('Invalid IP address version')
snmp['listen_on'].append(listen)