Correction du bug sur les adresses MAC + mécanisme plus général pour

canonicaliser les adresses MAC.

darcs-hash:20050714180401-d1718-d16a57cc796e6094328b8125eea4f33a3ba35281.gz
This commit is contained in:
bernat 2005-07-14 20:04:01 +02:00
parent 30b729c713
commit 81e0328b7a

View file

@ -157,7 +157,14 @@ def format_mac(mac) :
Retourne la mac formatée.
"""
l, mac = preattr(mac)
mac= mac.replace(':','').replace('-','').replace(' ','').lower()
mac = mac.strip()
if mac.count(":") + mac.count("-") == 5:
# On a une adresse de la forme 0:01:02:18:d1:90
# On va compléter s'il manque des 0
for car in (":", "-"):
mac = car.join(map(lambda x: x.replace(' ', '0'),
map(lambda x: "%02s" % x, mac.split(car))))
mac= mac.replace(':','').replace('-','').lower()
if len(mac)!=12 :
raise ValueError(u'Longueur adresse mac incorrecte.')
for c in mac[:] :
@ -455,8 +462,7 @@ class crans_ldap :
el = '(%s=%s*)' % ( champ, expr)
elif champ == 'macAddress' :
# Formatage adresse mac
try : el = '(macAddress=%s)' % format_mac(expr)
except : return ''
el = '(macAddress=%s)' % format_mac(expr)
elif champ == 'paiement' and expr == 'ok' :
# Paiement donnant droit à une connexion maintenant ?
# Deux cas :