net.comms
Class Standard

java.lang.Object
  extended byjava.lang.Thread
      extended bynet.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
 

Field Detail

comms

public static java.util.Vector comms
les instances de Comm en cours de traitement

Constructor Detail

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.

Method Detail

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