<automatique> pour les macs et u'' si pas d'ipv6
This commit is contained in:
parent
8f9c6c1d17
commit
99d864b81c
2 changed files with 10 additions and 2 deletions
|
@ -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.")
|
||||
|
|
|
@ -309,7 +309,9 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
|
|||
# La machine peut-elle avoir une ipv4 ?
|
||||
if 'v6' not in realm:
|
||||
uldif['ipHostNumber'] = [ unicode(crans_utils.ip4_of_rid(int(rid[0]))) ]
|
||||
uldif['ip6HostNumber'] = [ unicode(crans_utils.ip6_of_mac(uldif['macAddress'][0], int(rid[0]))) ]
|
||||
|
||||
ip6 = unicode(crans_utils.ip6_of_mac(uldif['macAddress'][0], int(rid[0])))
|
||||
uldif['ip6HostNumber'] = [ ip6 ] if ip6 else []
|
||||
|
||||
# Mid
|
||||
uldif['mid'] = [ unicode(self._find_id('mid', lockId=lockId)) ]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue