|
Ce module contient des fonctions de connexion aux fournisseurs d'accès internet (FAI). Il permet de choisir entre différentes méthodes comme la connexion directe à un FAI prédéterminé, la connexion d'après une liste de FAIs ordonnée et pré-établie (voir Fai.ini) ou en choisissant un FAI dans une boite de dialogue.
Pratiquement toutes les lignes de ce module sont commentées, ce qui facilite la compréhension mais pas la lecture.
Une version non commentée est disponible ici
##################################################################### # Module : Fai.hsm # Description : Fonctions de connexion aux FAIs # Auteur : Olivier Zolli <ozolli@online.fr> # Version : 03/02/01 ##################################################################### # Procédure d'initialisation du module # Attention : La ligne qui suit n'est pas un commentaire ! #!initialize debug(255,"<<< module 'Fai.hsm' >>>") Return(0) ##################################################################### # TestCx : Teste si déja connecté à un FAI # [Entrée] : Aucune # [Sortie] : $CxHamster ##################################################################### # Début de la fonction sub TestCx # Déclaration et initialisation des variables VarSet($CxHamster,True) # Si déja connecté if(RasIsConnected) # change l'état de la balise $CxHamster $CxHamster=False # Avertit l'utilisateur print("Déja connecté à "+RasGetConnection) # Fin de la condition Si déja connecté endif # Transmet l'état de la balise $CxHamster à la commande appelante return($CxHamster) # Fin de la fonction endsub ##################################################################### # CxFai : Tente de se connecter à un FAI # [Entrée] : $FAI : Nom du FAI (connexion à distance valide) # $NbEssais : Nombre de tentatives de connexion # $Pause : Délai entre 2 tentatives en millisecondes # [Sortie] : $Connect ##################################################################### # Début de la fonction, chargement des paramètres transmis par le # script appelant sub Cxfai($Fai,$NbEssais,$Pause) # Déclaration et initialisation des variables var($Connect) varset($try,0) # Si pas connecté exécute les instructions qui suivent if(!RasIsConnected) # Début de la boucle repeat ... until # Répète les instructions jusqu'à la connexion repeat print("connexion à "+$Fai) # Tentative de connexion à $Fai et retourne le code d'erreur # dans $Connect $Connect=hamrasdial($Fai) # Sortie de la boucle si connecté break($Connect=-1) # Incrémentration du compteur de tentatives inc($try) # Sortie de la boucle si nombre de tentatives atteint break($try>=$NbEssais) # Pause selon le temps prescrit sleep($Pause) # Fin de la boucle, retour au début (repeat) si pas connecté until(RasIsConnected) # Si code d'erreur est 623, ouverture d'une boite de dialogue # indiquant que le FAI n'est pas valide if($Connect=623) $Re=MsgBox($Fai+" : Ce FAI n'est pas valide",_ "Hamster-Fr",0x10|0x0) # Fin de la condition Si code d'erreur est 623 endif # Fin de la condition Si pas connecté endif # Transmet le code d'erreur à la commande appelante return($Connect) # Fin de la fonction endsub ##################################################################### # CxMulti : Tente de se connecter à un FAI en suivant une # liste de priorités (dans Fai.ini) # [Entrée] : Aucune # [Sortie] : Aucune ##################################################################### # Début de la fonction sub CxMulti # Déclaration et initialisation des variables var($NomFai) varset($I,0) # Début de la boucle do ... loop do # Incrémentation du compteur inc($I) # Lecture du fichier Fai.ini, section [FAI], ligne FAI<valeur du # compteur> et écriture du résultat dans $NomFai $NomFai=iniread(Hampath+"Fai.ini","FAI","FAI"+$I,0) # Sortie de la boucle s'il n'y a plus de ligne FAI break($NomFai=0) # Appel de la fonction CxFai avec transmission des paramètres Cxfai($NomFai,1,5000) # Sortie de la boucle si connecté break(RasIsConnected) # Fin de la boucle, retour au début (do) loop # Fin de la fonction endsub ##################################################################### # CxListe : Tente de se connecter à un FAI choisi dans une # boite de dialogue # [Entrée] : Aucune # [Sortie] : Aucune ##################################################################### # Début de la fonction sub CxListe # Déclaration et initialisation des variables var($ListeFai,$Boite) # Initialisation de la liste $ListeFai $ListeFai = ListAlloc # Chargement de la liste $ListeFai avec tous les FAIs configurés # dans l'ordinateur et teste s'il en existe au moins un. # Si c'est le cas, exécution des instructions qui suivent if(ListRasEntries($ListeFai)>0) # Affichage d'une boite de dialogue avec la liste des FAIs # Chargement du choix de l'utilisateur dans $Boite $Boite=ListBox($ListeFai,"Choix du FAI","Hamster-Fr",-1) # Si le choix n'est pas nul if($Boite>=0) # Appel de la fonction CxFai avec transmission des paramètres # ListGet lit le nom du FAI dans la liste correspondant au choix # effectué par l'utilisateur et le transmet comme 1er paramètre cxfai(ListGet($ListeFai,$Boite),1,5000) # Fin de la condition Si le choix n'est pas nul endif # Fin de la condition S'il existe au moins un FAI endif # Libération de la liste en mémoire ListFree($ListeFai) # Fin de la fonction endsub
Pourquoi un fichier ini ?
Pourquoi un couple FAI-SMTP ?
##################################################################### # Fichier : Fai.ini # Description : Contient les infos concernant les FAIs # (Utilisé par Fai.hsm et Mail.hsm) # Auteur : Olivier Zolli <ozolli@online.fr> # Version : 03/02/01 ##################################################################### ##################################################################### # Section [FAI] # Liste des FAIs disponibles sur le système # Fai.hsm tentera de se connecter aux FAIs dans cet ordre # Rajouter les FAIs comme suit : FAI4 = blabla, FAI5 = tatitata, etc # Le libellé doit correspondre à une connexion à distance existante # sur le système (Démarrer | Programmes | Accessoires | # Communications| Accès réseau à distance) # # Syntaxe : FAI<No> = >Nom du FAI> ##################################################################### [FAI] FAI1 = LibertySurf FAI2 = freesbee - Olivier FAI3 = Free ##################################################################### # Section [SMTP] # Liste des serveurs SMTP disponibles pour l'utilisateur # Mail.hsm choisira le bon serveur en fonction du FAI connecté # Rajouter les serveurs SMTP comme pour la section [FAI] # Le FAI doit correspondre à une connexion à distance existante au # moment de la connexion (Oreka, par exemple, n'existe pas tant que # l'on n'est pas connecté et est effacé après la déconnexion) # # Syntaxe : SMTP<No> = <Nom du FAI>, <Serveur SMTP> [, <Port>] # # Si <Port> est omis, le port par défaut (25) sera utilisé ##################################################################### [SMTP] SMTP1 = LibertySurf,mail.libertysurf.fr,smtp SMTP2 = freesbee - Olivier,smtp.freesbee.fr,25 SMTP3 = Free,smtp.free.fr SMTP4 = Oreka,mail.oreka.com,25 ##################################################################### # Section [POP] # Liste des serveurs POP3 disponibles pour l'utilisateur # Mail.hsm relèvera le courrier de tous ces serveurs # Rajouter les serveurs POP3 comme pour la section [FAI] # # Syntaxe : POP<No> = <Serveur POP> [, <Port>, <Nom d'utilisateur>, # <Mot de passe>, <Compte local>, <Filtre>] # # Si <Port> est omis, le port par défaut (110) sera utilisé # Si <Nom d'utilisateur> et <Mot de passe> sont omis, la section : # Configuration | Mots de passe sera utilisée. # Si <Compte local> est omis, le courrier sera stocké dans la boîte # "admin" (sauf configuration contraire dans Mailfilt.hsc). # Si <Filtre> est renseigné, cette section sera utilisée dans # MailFilt.hst pour le courrier reçu. ##################################################################### [POP] POP1 = pop.libertysurf.fr,pop,ozolli,motpasse,olivier@olivier.jp3 POP2 = pop.freesbee.fr,,$2 POP3 = pop.free.fr,,$1,,olivier@olivier.jp3 POP4 = mail.oreka.com,110,$4,,olivier@olivier.jp3,[oreka]