<automatique> pour les macs et u'' si pas d'ipv6

This commit is contained in:
Daniel STAN 2014-03-02 00:28:15 +01:00
parent 8f9c6c1d17
commit 99d864b81c
2 changed files with 10 additions and 2 deletions

View file

@ -134,7 +134,10 @@ def ip6_of_mac(mac, rid):
# En théorie, format_mac est inutile, car on ne devrait avoir
# que des mac formatées.
mac = format_mac(mac).replace(u':', u'')
mac = format_mac(mac)
if mac == u'<automatique>':
return u''
mac = mac.replace(u':', u'')
# hex retourne un str, donc on concatène, suivant la RFC
euid64v6 = hex(int(mac[:2], 16)^0b00000010) + mac[2:6] + u'fffe' + mac[6:12]
@ -183,6 +186,9 @@ def format_mac(mac):
Transforme une adresse pour obtenir la forme xx:xx:xx:xx:xx:xx
Retourne la mac formatée.
"""
mac = unicode(mac).lower()
if mac == u'<automatique>':
return mac
mac = netaddr.EUI(mac)
if not mac:
raise ValueError(u"MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.")