View | Details | Raw Unified | Return to bug 33986 | Differences between
and this patch

Collapse All | Expand All

(-)base/univention-base-files/conffiles/etc/network/interfaces.d/10-default (-15 / +14 lines)
 Lines 69-86    Link Here 
69
69
70
	# Validate addresses
70
	# Validate addresses
71
	interface_addresses = {}
71
	interface_addresses = {}
72
	for iface, name in interfaces.ipv6_interfaces:
72
	for _name, iface in interfaces.all_interfaces:
73
		addr = iface.ipv6_address(name)
73
		for name in iface.ipv6_names:
74
		if addr is False:
74
			addr = iface.ipv6_address(name)
75
			print '# ERROR: invalid IPv6 address in interfaces/%s/ipv6/%s/*' % \
75
			if not addr:
76
				(iface.name, name)
76
				print '# ERROR: incomplete/invalid IPv6 address in interfaces/%s/ipv6/%s/*' % \
77
			continue
77
					(iface.name, name)
78
		addresses = interface_addresses.setdefault(iface.name, set())
78
				continue
79
		if addr in addresses:
79
			addresses = interface_addresses.setdefault(iface.name, set())
80
			print '# ERROR: duplicate IPv6 address in interfaces/%s/ipv6/%s/*' % \
80
			if addr.ip in addresses:
81
				(iface.name, name)
81
				print '# ERROR: duplicate IPv6 address in interfaces/%s/ipv6/%s/*' % \
82
			continue
82
					(iface.name, name)
83
		addresses.add(addr)
83
				continue
84
			addresses.add(addr.ip)
84
85
85
	# configure interface
86
	# configure interface
86
	for iface, names in groupby(interfaces.ipv6_interfaces, itemgetter(0)):
87
	for iface, names in groupby(interfaces.ipv6_interfaces, itemgetter(0)):
 Lines 88-95    Link Here 
88
			addresses = interface_addresses[iface.name]
89
			addresses = interface_addresses[iface.name]
89
		except KeyError:
90
		except KeyError:
90
			continue  # validation failed
91
			continue  # validation failed
91
		if not addresses:
92
			continue  # validation failed
93
92
94
		auto(iface.name, iface.start)
93
		auto(iface.name, iface.start)
95
		print 'iface %s inet6 static' % (iface.name,)
94
		print 'iface %s inet6 static' % (iface.name,)
 Lines 97-103    Link Here 
97
		for i, (iface, name) in enumerate(names):
96
		for i, (iface, name) in enumerate(names):
98
			addr = iface.ipv6_address(name)
97
			addr = iface.ipv6_address(name)
99
			try:
98
			try:
100
				addresses.remove(addr)
99
				addresses.remove(addr.ip)
101
			except KeyError:
100
			except KeyError:
102
				continue  # invalid or duplicate
101
				continue  # invalid or duplicate
103
			print '# %s' % (name,)
102
			print '# %s' % (name,)

Return to bug 33986