--- base/univention-base-files/conffiles/etc/network/interfaces.d/10-default 2014-01-20 14:50:24.157553631 +0100 +++ base/univention-base-files/conffiles/etc/network/interfaces.d/10-default 2014-01-24 10:07:23.072685202 +0100 @@ -69,18 +69,19 @@ # Validate addresses interface_addresses = {} - for iface, name in interfaces.ipv6_interfaces: - addr = iface.ipv6_address(name) - if addr is False: - print '# ERROR: invalid IPv6 address in interfaces/%s/ipv6/%s/*' % \ - (iface.name, name) - continue - addresses = interface_addresses.setdefault(iface.name, set()) - if addr in addresses: - print '# ERROR: duplicate IPv6 address in interfaces/%s/ipv6/%s/*' % \ - (iface.name, name) - continue - addresses.add(addr) + for _name, iface in interfaces.all_interfaces: + for name in iface.ipv6_names: + addr = iface.ipv6_address(name) + if not addr: + print '# ERROR: incomplete/invalid IPv6 address in interfaces/%s/ipv6/%s/*' % \ + (iface.name, name) + continue + addresses = interface_addresses.setdefault(iface.name, set()) + if addr.ip in addresses: + print '# ERROR: duplicate IPv6 address in interfaces/%s/ipv6/%s/*' % \ + (iface.name, name) + continue + addresses.add(addr.ip) # configure interface for iface, names in groupby(interfaces.ipv6_interfaces, itemgetter(0)): @@ -88,8 +89,6 @@ addresses = interface_addresses[iface.name] except KeyError: continue # validation failed - if not addresses: - continue # validation failed auto(iface.name, iface.start) print 'iface %s inet6 static' % (iface.name,) @@ -97,7 +96,7 @@ for i, (iface, name) in enumerate(names): addr = iface.ipv6_address(name) try: - addresses.remove(addr) + addresses.remove(addr.ip) except KeyError: continue # invalid or duplicate print '# %s' % (name,)