par Gesp » 06 Déc 2003 15:10
...et j'en ai connu quelques unes ces derniers jours sur le plan de la disponibilité de ma ligne ADSL.
<BR>Donc j'ai pu tester et améliorer.
<BR>
<BR>Attention le script est très très tétu, <!-- BBCode Start --><B>il essaye de se reconnecter jusqu'à ce qu'il y arrive</B><!-- BBCode End -->, donc <!-- BBCode Start --><B>vous prenez vos responsabilités avec un modem 56K sur ligne analogique ou RNIS concernant le nombre de tentatives de reconnexion</B><!-- BBCode End --> (il peut y avoir une incidence sur votre facture télécom suivant votre forfait).
<BR>
<BR>Si l'option persistant n'est pas sélectionné dans la configuration par l'interface web, cela ne changera rien à priori.
<BR>Je conseillerais de mettre le nombre maximum d'essai vers 3/5 (particulièrement en PPPoE et/ou avec un modem usb). De celle manière, si la reconnexion automatique par l'option persist échoue, le script prend rapidement le relais et relance rc.red.
<BR>Pour les modems usb, cela permet de les réinitialiser/resynchroniser, ce que le speedtouch usb et le eci usb ne savent pas faire d'eux-mêmes.
<BR>
<BR>
<BR>
<BR>Applicable en V1.4.0 ou V1.3.0 mais il y a de petits détails qui changent entre les 2
<BR>
<BR>Il faut modifier /etc/rc.red,/etc/ppp/ip-down et créer un nouveau fichier rc.connectioncheck.
<BR>
<BR>
<BR>Les modifs sont les suivantes <!-- BBCode Start --><B>en V1.4.0a2</B><!-- BBCode End -->
<BR><!-- BBCode Start --><B><!-- BBCode Start --><I>dans rc.red </I><!-- BBCode End --></B><!-- BBCode End -->
<BR><!-- BBCode Start --><B>après</B><!-- BBCode End -->
<BR> &log ("ERROR: Can't start RED when it's still active");
<BR> exit 1;
<BR> }
<BR>
<BR>ajouter
<BR> if ($pppsettings{'RECONNECTION'} eq 'persistent') {
<BR> system ('/bin/touch', "${swroot}/red/keepconnected");
<BR> system ('/etc/rc.d/rc.connectioncheck &');
<BR> }
<BR>
<BR><!-- BBCode Start --><B>après</B><!-- BBCode End -->
<BR> unlink "${swroot}/red/resolv.conf";
<BR>ajouter
<BR> unlink "${swroot}/red/keepconnected";
<BR>
<BR><!-- BBCode Start --><B><!-- BBCode Start --><I>dans /etc/ppp/ip-down</I><!-- BBCode End --></B><!-- BBCode End -->
<BR><!-- BBCode Start --><B>après</B><!-- BBCode End -->
<BR>system "/bin/echo -en a >/dev/console";
<BR> sleep 1;
<BR>system "/bin/echo -en a >/dev/console";
<BR>
<BR>ajouter
<BR>
<BR>if ( -e "/var/ipcop/red/keepconnected") {
<BR> system ('/etc/rc.d/rc.connectioncheck &');
<BR>}
<BR>
<BR><!-- BBCode Start --><B><!-- BBCode Start --><I>le fichier rc.connectioncheck contient</I><!-- BBCode End --></B><!-- BBCode End -->
<BR>#!/bin/bash
<BR>#
<BR># rc.connectioncheck
<BR>
<BR>
<BR>eval $(/usr/local/bin/readhash /var/ipcop/ppp/settings)
<BR>
<BR>
<BR># wait until pppd has started (and usb/pci modem obtained syncro if necessary)
<BR>/bin/sleep 65
<BR>
<BR>if [ -e "/var/ipcop/red/keepconnected" -a "$RECONNECTION" = "persistent" ]; then
<BR> while [ -e "/var/run/ppp-ipcop.pid" ]; do
<BR> if [ -e "/var/ipcop/red/active" ]; then
<BR> # already connected directly or by persist option
<BR> exit 0
<BR> fi
<BR><!-- BBCode Start --><B> /bin/sleep 10</B><!-- BBCode End -->
<BR> done
<BR>
<BR> echo "Wait before new connection attempt"
<BR> /bin/sleep 60
<BR> /etc/rc.d/rc.red start
<BR>fi
<BR>copier le fichier dans /etc/rc.d et faire un chmod 755 /etc/rc.d/rc.connectioncheck
<BR>
<BR>
<BR>
<BR>
<BR><!-- BBCode Start --><B><!-- BBCode Start --><I>en V1.3.0</I><!-- BBCode End --></B><!-- BBCode End -->
<BR>
<BR>Sur le principe, cela marchera aussi en V1.3.0 mais pas dans quelques détails
<BR>Il faut :
<BR>- remplacer dans /etc/ppp/ip-down
<BR>eval $(/usr/local/bin/readhash /var/ipcop/ppp/settings)
<BR>par
<BR>./var/ipcop/ppp/settings
<BR>
<BR>- et remplacer dans /etc/rc.red et /etc/ppp/ip-down "$RECONNECTION" = "persistent" par "$PERSISTENT"='on'
<BR>
<BR>rectifié le mauvais placement du sleep à l'intérieur du if/fi au lieu d'être à l'extérieur
<BR>
<BR>vous avez :
<BR>"$PERSISTENT"='on' si Persistant est une case à cocher jusqu'en V1.4.0a1
<BR>"$RECONNECTION" = "persistent" si Persistant est un bouton radio =>après V1.4.0a1
<BR>
<BR>merci à pierre pour ses remarques
<BR>j'ai remodifié pour supprimer les commentaires rendant les bips silencieux<BR><BR><font size=-2></font>