mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
Merge pull request #101 from aderumier/fix-forwarding
don't change interface forwarding value if not defined
This commit is contained in:
@@ -715,51 +715,57 @@ class address(moduleBase):
|
||||
self.log_error('%s: \'ip6-forward\' is not supported for '
|
||||
'bridge port' %ifaceobj.name)
|
||||
return
|
||||
|
||||
setting_default_value = False
|
||||
if not ipforward:
|
||||
setting_default_value = True
|
||||
ipforward = (self.ipforward or
|
||||
self.get_mod_subattr('ip-forward', 'default'))
|
||||
ipforward = utils.boolean_support_binary(ipforward)
|
||||
# File read has been used for better performance
|
||||
# instead of using sysctl command
|
||||
running_ipforward = self.read_file_oneline(
|
||||
'/proc/sys/net/ipv4/conf/%s/forwarding'
|
||||
%ifaceobj.name)
|
||||
if ipforward != running_ipforward:
|
||||
try:
|
||||
self.sysctl_set('net.ipv4.conf.%s.forwarding'
|
||||
%('/'.join(ifaceobj.name.split("."))),
|
||||
ipforward)
|
||||
except Exception as e:
|
||||
if not setting_default_value:
|
||||
ifaceobj.status = ifaceStatus.ERROR
|
||||
self.logger.error('%s: %s' %(ifaceobj.name, str(e)))
|
||||
ipforward = self.ipforward
|
||||
|
||||
if ipforward:
|
||||
ipforward = utils.boolean_support_binary(ipforward)
|
||||
# File read has been used for better performance
|
||||
# instead of using sysctl command
|
||||
running_ipforward = self.read_file_oneline(
|
||||
'/proc/sys/net/ipv4/conf/%s/forwarding'
|
||||
%ifaceobj.name)
|
||||
|
||||
if ipforward != running_ipforward:
|
||||
try:
|
||||
|
||||
self.sysctl_set('net.ipv4.conf.%s.forwarding'
|
||||
%('/'.join(ifaceobj.name.split("."))),
|
||||
ipforward)
|
||||
except Exception as e:
|
||||
if not setting_default_value:
|
||||
ifaceobj.status = ifaceStatus.ERROR
|
||||
self.logger.error('%s: %s' %(ifaceobj.name, str(e)))
|
||||
|
||||
|
||||
setting_default_value = False
|
||||
if not ip6forward:
|
||||
setting_default_value = True
|
||||
ip6forward = (self.ip6forward or
|
||||
self.get_mod_subattr('ip6-forward', 'default'))
|
||||
ip6forward = utils.boolean_support_binary(ip6forward)
|
||||
# File read has been used for better performance
|
||||
# instead of using sysctl command
|
||||
running_ip6forward = self.read_file_oneline(
|
||||
'/proc/sys/net/ipv6/conf/%s/forwarding'
|
||||
%ifaceobj.name)
|
||||
if ip6forward != running_ip6forward:
|
||||
try:
|
||||
self.sysctl_set('net.ipv6.conf.%s.forwarding'
|
||||
%('/'.join(ifaceobj.name.split("."))),
|
||||
ip6forward)
|
||||
except Exception as e:
|
||||
# There is chance of ipv6 being removed because of,
|
||||
# for example, setting mtu < 1280
|
||||
# In such cases, log error only if user has configured
|
||||
# ip6-forward
|
||||
if not setting_default_value:
|
||||
ifaceobj.status = ifaceStatus.ERROR
|
||||
self.logger.error('%s: %s' %(ifaceobj.name, str(e)))
|
||||
ip6forward = self.ip6forward
|
||||
|
||||
if ip6forward:
|
||||
ip6forward = utils.boolean_support_binary(ip6forward)
|
||||
# File read has been used for better performance
|
||||
# instead of using sysctl command
|
||||
running_ip6forward = self.read_file_oneline(
|
||||
'/proc/sys/net/ipv6/conf/%s/forwarding'
|
||||
%ifaceobj.name)
|
||||
if ip6forward != running_ip6forward:
|
||||
try:
|
||||
self.sysctl_set('net.ipv6.conf.%s.forwarding'
|
||||
%('/'.join(ifaceobj.name.split("."))),
|
||||
ip6forward)
|
||||
except Exception as e:
|
||||
# There is chance of ipv6 being removed because of,
|
||||
# for example, setting mtu < 1280
|
||||
# In such cases, log error only if user has configured
|
||||
# ip6-forward
|
||||
if not setting_default_value:
|
||||
ifaceobj.status = ifaceStatus.ERROR
|
||||
self.logger.error('%s: %s' %(ifaceobj.name, str(e)))
|
||||
|
||||
def process_mtu(self, ifaceobj, ifaceobj_getfunc):
|
||||
mtu = ifaceobj.get_attr_value_first('mtu')
|
||||
|
Reference in New Issue
Block a user