Ticket #33 (closed defect: invalid)
délai entre identification nickserv et JOIN
| Reported by: | thaeron | Owned by: | thaeron |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | kernel | Version: | |
| Keywords: | Cc: |
Description (last modified by thaeron) (diff)
paradox a rapporté un petit problème qui arrive sur le serveur où il utilise le bot : le nickserv est trop lent pour identifier le bot et du coup lorsqu'il join il n'est pas op automatiquement.
Malheureusement le nickserv ne fait pas parti du protocole et donc vérifier que ça a fonctionné se résume à se fier à la notice qu'il envoie (on ne peut pas se fier au message puisqu'il est écrit pour les humains et donc doit varier d'un service à l'autre sans compter les traductions).
La solution sagwinne consisterait à mettre un délai (customisable) entre l'envoi au nickserv et JOIN mais ça ne garantirait rien du tout.
L'autre solution consisterait à mettre les JOIN dans un module afin de bénéficier des handlers sur notice. Cependant on ne peut pas écarter l'hypothèse que sur certains serveurs le nickserv n'envoie pas de confirmation (si c'est prévu comme ça ou le nickserv est down) auquel cas on pourrait mettre aussi un timeout qui enverrait les JOIN même si le nickserv ne répond pas.
Nonobstant il serait intéressant de mettre tout ce qui concerne la "post-connexion" dans un module afin d'affranchir un peu plus le kernel du protocole IRC.
Attachments
Change History
comment:2 Changed 4 years ago by thaeron
- Status changed from new to closed
- Resolution set to invalid
Après avoir vu le problème moi-même, j'ai compris qu'en réalité le serveur faisait joindre automatiquement le channel et ce JOIN est traité avant que le bot ait eu le temps de s'identifier (pourtant la commande est envoyée après réception du "001" et non du "376" (fin du MOTD). Il n'y a donc aucune solution codable.
La seule solution est la suivante :
dans le fichier de configuration vérifier qu'il y'a bien le module entree de chargé automatiquement
module=entree
puis rajouter :
entree=PRIVMSG ChanServ :op #nom_du_channel nick_du_bot
![(please configure the [header_logo] section in trac.ini)](http://cryptofractalx.ath.cx/imgs/ns-logo-complet.png)