[gestion/*.py] Ré-encodage de certains scripts en UTF-8
Ignore-this: dafa22ed56eaf0d816fd089e42672eb5 darcs-hash:20090309212124-0445d-09ac8ae4052b6f333706be1baa1c7f4d94455fd5.gz
This commit is contained in:
parent
7addc503a8
commit
cc31727b60
21 changed files with 1351 additions and 1351 deletions
|
@ -1,9 +1,9 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Serveur SSL qui renvoie la MAC correspondant à une IP
|
||||
# Ce serveur est utilisé sur Nectaris par les bornes wifi pour faire
|
||||
# les requêtes ARP.
|
||||
# Serveur SSL qui renvoie la MAC correspondant à une IP
|
||||
# Ce serveur est utilisé sur Nectaris par les bornes wifi pour faire
|
||||
# les requêtes ARP.
|
||||
|
||||
# Lancement : twistd -n -y arp.py --pidfile=/var/run/arp.pid
|
||||
# Pas de -n pour qu'il passe en fond
|
||||
|
@ -29,18 +29,18 @@ import re
|
|||
class ServerContextFactory(ContextFactory):
|
||||
|
||||
def getContext(self):
|
||||
"""Création d'un contexte SSL côté serveur."""
|
||||
"""Création d'un contexte SSL côté serveur."""
|
||||
ctx = SSL.Context(SSL.SSLv23_METHOD)
|
||||
ctx.use_certificate_file('/etc/ssl/certs/nectaris.pem')
|
||||
ctx.use_privatekey_file('/etc/ssl/private/nectaris.pem')
|
||||
return ctx
|
||||
|
||||
class ARPProtocol(basic.LineReceiver):
|
||||
"""Protocole de communication pour récupérer une adresse MAC.
|
||||
"""Protocole de communication pour récupérer une adresse MAC.
|
||||
|
||||
Chaque lignee reçue contient une adresse IP et le serveur répond
|
||||
Chaque lignee reçue contient une adresse IP et le serveur répond
|
||||
avec l'adresse MAC correspondante ou avec `unknown' si celle-ci
|
||||
est inconnue (ou non autorisée).
|
||||
est inconnue (ou non autorisée).
|
||||
"""
|
||||
def lineReceived(self, IP):
|
||||
self.factory.getMac(IP
|
||||
|
@ -51,7 +51,7 @@ class ARPProtocol(basic.LineReceiver):
|
|||
def answerMac(self, m):
|
||||
"""Renvoie au client la bonne adresse MAC.
|
||||
|
||||
`m' peut être None.
|
||||
`m' peut être None.
|
||||
"""
|
||||
if m:
|
||||
return self.transport.write(str(m) + "\r\n")
|
||||
|
@ -59,7 +59,7 @@ class ARPProtocol(basic.LineReceiver):
|
|||
return self.transport.write("unknown\r\n")
|
||||
|
||||
class ARPFactory(protocol.ServerFactory):
|
||||
"""Backend du serveur. Effectue la résolution IP/MAC."""
|
||||
"""Backend du serveur. Effectue la résolution IP/MAC."""
|
||||
protocol = ARPProtocol
|
||||
|
||||
def __init__(self, network='0.0.0.0/0'):
|
||||
|
@ -70,26 +70,26 @@ class ARPFactory(protocol.ServerFactory):
|
|||
return defer.succeed(self._getMac(IP))
|
||||
|
||||
def _getMac(self, IP):
|
||||
"""Fonction réelle, synchrone, qui obtient l'adresse MAC."""
|
||||
"""Fonction réelle, synchrone, qui obtient l'adresse MAC."""
|
||||
try:
|
||||
if AddrInNet(IP, self.network):
|
||||
results = self.ldap.search('ip=%s' % IP)['machine']
|
||||
if results:
|
||||
# On a au moins un résultat, on retourne le premier
|
||||
# On a au moins un résultat, on retourne le premier
|
||||
return results[0].mac().strip()
|
||||
else:
|
||||
# On a rien
|
||||
return None
|
||||
else:
|
||||
# L'IP n'est pas autorisée
|
||||
# L'IP n'est pas autorisée
|
||||
return None
|
||||
except ValueError:
|
||||
# A priori, ce n'était pas une IP
|
||||
# A priori, ce n'était pas une IP
|
||||
return None
|
||||
|
||||
# Corps du programme
|
||||
# On écoute sur le port 5243 et on ne répond qu'aux requêtes concernant le
|
||||
# sous-réseau wifi
|
||||
# On écoute sur le port 5243 et on ne répond qu'aux requêtes concernant le
|
||||
# sous-réseau wifi
|
||||
application = service.Application('arp')
|
||||
factory = ARPFactory('138.231.148.0/21')
|
||||
# Remplacer SSL par TCP pour ne pas utiliser SSL et virer ServerContextFactory
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue