net.comms
Class Standard
java.lang.Object
java.lang.Thread
net.comms.Standard
- All Implemented Interfaces:
- java.lang.Runnable
- public class Standard
- extends java.lang.Thread
Le role de cette classe est de traiter les demandes de connection. Lors de sa construction,
le Standard lance une instance de java.net.ServerSocket,
en écoute sur l'adresse et le port du PROXY
. Chaque nouvelle Socket
obtenue, si elle provient d'une adresse ip autorisée, est passé en parametre à la
construction d'une nouvelle Comm
.
Le Standard determine si une adresse est autorisée en fonction de l'attribut RESEAU de la classe
PROXY. Par defaut, RESEAU est la chaine "0.0.0.0", ce qui signifie que toutes les adresses sont
autorisées. Le parametre RESEAU se modifie avec l'option -r au lancement du proxy.
Pour savoir si une adresse appartient au réseau, Le standard commence par construire un MASQUE
correspondant à ce RESEAU : pour chaque partie (separées par les points) du RESEAU, si une partie
vaut 0, la partie correspondante du MASQUE vaut 0 sinon 255. Enfin, si un ET logique, partie par partie,
entre l'adresse IP a tester et ce MASQUE donne le RESEAU, alors c'est que cette adresse est autorisée.
ex:
si RESEAU est la chaine "81.56.154.0", toutes les adresses entre 81.56.154.0 et 81.56.154.255 sont autorisées.
si RESEAU est la chaine "81.56.0.0", toutes les adresses entre 81.56.0.0 et 81.56.255.255 sont autorisées.
si RESEAU est la chaine "81.56.154.187", seule l'adresse 81.56.154.187 est autorisée.
Field Summary |
static java.util.Vector |
comms
les instances de Comm en cours de traitement |
Fields inherited from class java.lang.Thread |
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary |
Standard()
Lance un nouveau Standard, en ecoute sur l'adresse et le port du proxy.
|
Method Summary |
void |
add(java.net.Socket socket)
instancie eventuellemnt une nouvelle Comm avec cette Socket.
|
void |
end()
termine ce Standard |
static void |
end(Comm comm)
termine cette Comm |
void |
run()
boucle sur la reception des nouvelles connections.
|
Methods inherited from class java.lang.Thread |
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
comms
public static java.util.Vector comms
- les instances de
Comm
en cours de traitement
Standard
public Standard()
throws java.lang.Exception
- Lance un nouveau Standard, en ecoute sur l'adresse et le port du proxy.
Si le parametre IDLE de PROXY ne vaut pas -1 (option -idle <max>), ce constructeur instancie
un nouveau
IDLE
, chargé de verifier les connections bloquées.
run
public void run()
- boucle sur la reception des nouvelles connections.
chaque nouvelle Socket est passée en parametre à la methode add(Socket)
add
public void add(java.net.Socket socket)
throws java.lang.Exception
- instancie eventuellemnt une nouvelle
Comm
avec cette Socket.
la methode verifie que l'adresse d'origine de cette Socket est autorisée.
Si c'est le cas, une nouvelle Comm est instanciée. Sinon, une réponse de
type "403 Forbidden" est renvoyée sur la connection.
- Throws:
java.lang.Exception
end
public static void end(Comm comm)
- termine cette
Comm
end
public void end()
- termine ce Standard