Problème d'authentification avec un script
#1
Bonjour,

J'ai installé ce script sur mon eggdrop : http://pastebin.com/yRvAyJaJ

J'ai configuré mon bot afin qu'il me reconnaisse comme étant son propriétaire.

Cependant, régulièrement, lorsque j'utilise la commande "auth" pour m'identifier à l'eggdrop, je n'y arrive pas.

Lorsque je me connecte à mon serveur et que je connecte l'eggdrop à celui ci et que j'utilise le "auth", mon Eggdrop me reconnait.

Lorsque je me déconnecte de me script, que je le ferme, que je le rouvre et me reconnecte, lorsque j'utilise la commande "auth", mon eggdrop ne me reconnait plus. En notice j'ai ceci :
Bot : Désolé Nicolas mais je ne trouve pas ton accès dans ma base de données !

Pouvez vous m'aider à résoudre ce problème s'il vous plait ? Je vous remercie.
Répondre Avertir
#2
Donc tu passes dans la condition suivante:
tcl
set pseudo [lindex $arg 0]
# ...
if { [nick2hand $pseudo] eq "*" } {
         puthelp "notice $nick :[subst -nocommands -nobackslashes $::GB::msg(access)]"


Donc, j'imagine qu'il y a un souci sur la manière dont tu t'authentifies, si je ne me trompe pas il faut faire:
Code :
/msg botnick auth <pseudo> <pass>
Et <pseudo> doit correspondre à ton handle dans l'eggdrop.
Répondre
#3
Bonsoir,

C'est pourtant bien ce que je fais.
/msg Bot auth Nicolas <pass>

Dans le premier cas il me trouve mon accès, dans le deuxième il ne le trouve pas. Cependant j'ai toujours le même pseudo, le même host, la même ip, etc. Tout est vraiment identique.

De plus, j'ai ré associé mon handle à Nicolas en PL afin qu'il n'y ai pas de problème. Lorsque j'ai fais cela il a ré associé Nicolas à Nicolas.

Je vois pas d'où cela peut venir surtout que j'ai un ami qui a des accès dessus et celui ci n'a aucun problème pour utiliser la commande auth.
Répondre Avertir
#4
Salut,

Je pense pouvoir éclaircir ton soucis
Lorsque tu fait un .match *
Au niveau de toi en retour tu as quoi ?
Sinon test ce système d'authentification ci :

tcl
proc auth {nick host hand arg} {
    set arg [gbfilter $arg]
    set chan [lindex $arg 0]
    set pseudo [lindex $arg 0]
    set args [split $arg]
    set pass [lindex $args 1]
    if {[llength $args] != 2} {
        putserv "notice $nick :/msg $::botnick auth <pseudo> <pass>"
        return 0
    }
    if {[nick2hand $pseudo] eq "*"} {
        putserv "notice $nick :[subst -nocommands -nobackslashes $::GB::msg(access)]"
        retrun 0
    }
    if {![passwdok $pseudo $pass]} {
        putserv "notice $nick :\002Erreur :\002 Votre mot de pass ou/et votre pseudo est/sont incorrect(s) !"
        return 0
    }
    if {![string match -nocase [lindex [getuser $pseudo HOSTS] 0] "$nick!$host"]} {
        putserv "notice $nick :[\002Erreur :\002 Votre host ne correspond pas avec votre accès !"
        return 0
    }
    if {[getuser $pseudo XTRA AUTH] eq "ON"} {
        putserv "notice $nick :\002Erreur :\002 Vous êtes déjà authentifier !"
        return 0
    }
    if {[getuser $hand XTRA SUSPEND] eq "ON"} {
        putserv "notice $nick :\002Erreur :\002 Vous êtes suspendu !"
        return 0
    }
         puthelp "notice $nick :\0031\[AUTHENTIFICATION REUSSIE\]\0031 Vous êtes maintenant authentifié !"
         putserv "privmsg $GB::log :\00314Commande \0036\[\0033Auth\0036\] \0031par : \0034$hand"
         putquick "invite $nick $::GB::log"
         setuser $pseudo XTRA AUTH ON;
         setuser $hand XTRA SEEN [clock format [clock seconds] -format "le %d/%m/%Y à %Hh%M"]
         save
    return
}



Oups tromper désoler les lindex sont mal fait voici la correction :

tcl
proc auth {nick host hand arg} {
    set arg [gbfilter $arg]
    set pseudo [lindex $arg 0]
    set chan [lindex $arg 2]
    set pass [lindex $arg 1]
    set args [split $arg]
    if {[llength $args] != 2} {
        putserv "notice $nick :\002Erreur :\002 ( /msg $::botnick auth <pseudo> <pass> )"
        return 0
    }
    if {[nick2hand $pseudo] eq "*"} {
        putserv "notice $nick :[subst -nocommands -nobackslashes $::GB::msg(access)]"
        retrun 0
    }
    if {![passwdok $pseudo $pass]} {
        putserv "notice $nick :\002 Votre mot de pass ou/et votre pseudo est/sont incorrect(s) !"
        return 0
    }
    if {![string match -nocase [lindex [getuser $pseudo HOSTS] 0] "$nick!$host"]} {
        putserv "notice $nick :\002Erreur :\002 Votre host ne correspond pas avec votre accès !"
        return 0
    }
    if {[getuser $pseudo XTRA AUTH] eq "ON"} {
        putserv "notice $nick :\002Erreur :\002 Vous êtes déjà authentifier !"
        return 0
    }
    if {[getuser $hand XTRA SUSPEND] eq "ON"} {
        putserv "notice $nick :\002Erreur :\002 Vous êtes suspendu !"
        return 0
    }
         puthelp "notice $nick :\0031\[AUTHENTIFICATION REUSSIE\]\0031 Vous êtes maintenant authentifié !"
         putserv "privmsg $GB::log :\00314Commande \0036\[\0033Auth\0036\] \0031par : \0034$hand"
         putquick "invite $nick $::GB::log"
         setuser $pseudo XTRA AUTH ON;
         setuser $hand XTRA SEEN [clock format [clock seconds] -format "le %d/%m/%Y à %Hh%M"]
         save
    return
}



Sa devrais être mieux sinon je tu retourne toujours $chan en gros je pense que le soucis peut venir de là essaye si sa fonctionne ou pas Smile
Répondre Avertir
#5
coucou,

idée en passant ,est-ce Nicolas, ou nicolas ? , la casse etant importante . ( fichier texte de la bd / et en pl )

Cordialement.
Répondre Avertir
#6
Bonjour,

(14/03/2013, 01:28)aliasangelius a écrit : Je pense pouvoir éclaircir ton soucis
Lorsque tu fait un .match *
Au niveau de toi en retour tu as quoi ?
Sinon test ce système d'authentification ci :

En retour j'ai ceci :
Code :
.match *
[17:48:22] #Nicolas# match *
*** Recherche '*':
HANDLE    PASS NOTES FLAGS           LAST
Nicolas   yes      2 hjlmnoptx       17:48 (partyline)
   #Operateurs        -               00:18
  HOSTS: *!*Nicolas@*.sta.abo.bbox.fr, -telnet!*@*

Ce qui correspond bien à mon host.

En ce qui concerne le code, je l'ai copié et collé dans le TCL.
/!\ Ligne 13 le "return" est mal écrit. Je l'ai réécrit mais malgré cela, j'ai toujours le même problème :
Bot a écrit :Bot : Désolé Nicolas mais je ne trouve pas ton accès dans ma base de données !

Et pour finir :
cestlemien a écrit :idée en passant ,est-ce Nicolas, ou nicolas ? , la casse etant importante . ( fichier texte de la bd / et en pl )

C'est bien => Nicolas <= Et c'est toujours ainsi et avec ce pseudo que j'essaye de m'authentifié.
Répondre Avertir
#7
Ton client IRC ne balancerai pas un code couleur lors du auth ?
CrazyCat a écrit :La prochaine fois, essaye d'imaginer que j'ai un cerveau ...
Répondre Avertir
#8
Non justement. Je l'ai désactivé pour évité tout problème de la sorte car je l'avais déjà eu avant. Cela ne peut donc pas venir de là.
Répondre Avertir
#9
@Demonis ta tester ce que j'ai mis ?
Le nouveau code auth ?

@cestlemien relis le code tcl.... au niveau de : proc gbfilter etc Et les majuscules ne pose aucun soucis sur ce tcl.
La il à un soucis sur le host et non de majuscules

@Demonis sinon en pl tape sa pour des test :


Code :
.-host  Nicolas *!*Nicolas@*.sta.abo.bbox.fr
.-host Nicolas -telnet!*@*

Code :
Ensuite tape ceci :
.+host Nicolas Nicolas*!*@*
.+host Nicolas -telnet!*@*
.save
Répondre Avertir
#10
Et si vous faisiez du vrai debug:
tcl
putlog "Anayse: \[$pseudo\] => [nick2hand $pseudo]"
 if {[nick2hand $pseudo] eq "*"} {
       putserv "notice $nick :[subst -nocommands -nobackslashes $::GB::msg(access)]"
       return 0
    }


Vous verrez bien quel pseudo est envoyé, s'il n'y a pas des caractères ALC qui s'ajouteraient, ...
Répondre
#11
Bonjour,

aliasangelius a écrit :ta tester ce que j'ai mis ?
Le nouveau code auth ?

Oui et c'est celui qui tourne en ce moment même. Il fonctionne très très bien mais, parfois, encore quelque fois, il me notice avec la même erreur.

aliasangelius a écrit :sinon en pl tape sa pour des test

C'est ce que j'avais déjà fait mais cela n'avait rien changer et présentement je l'ai refait mais comme je viens de le dire juste plus haut, j'arrive à utiliser la commande de auth tout le temps sauf rare exception où il me redit qu'il ne trouve pas mon accès dans sa base de données.

@CrazyCat : Pas de soucis ! J'insère ce petit bout de code où dans le tcl ?
Répondre Avertir
#12
J'ai juste ajouté une ligne de code, à une partie de code que j'avais déjà citée et pointée du doigt. Je te laisse chercher ce qu'il faut modifier ou ajouter.
Indice: ça commence par putlog et ça tient sur une ligne.
Répondre
#13
Bonjour

J'ai du redémarré mon pc suite à des MAJ Windows. Depuis lors, et AVEC la modification du script que aliasangelius a donné précédemment, j'arrive à m'authentifier au bot à chaque fois.

Je sais pas ce que le redémarrage à changé mais bon...

En tout cas, merci à vous et merci aliasangelius Smile
Répondre Avertir
#14
Par contre, je viens de m'apercevoir que j'ai ces erreurs en Party-Line alors que je me suis bien authentifié dessus avec la commande /msg bot auth <user> <mdp> :

Code :
[19:13:00] Tcl error [::GB::kickban]: can't read "::GB::msg(kickban)": no such variable
[19:13:08] Tcl error [::GB::kickban]: can't read "::GB::msg(auth)": no such variable
[19:08:37] Tcl error [::GB::ban]: can't read "::GB::msg(auth)": no such variable

Et cela provient bien du script car j'ai désactivé les autres et laissé que celui ci et j'ai toujours les présentes erreurs.
Répondre Avertir
#15
Je ferais certaines modifications dans la semaine.
Donc je ne pourrais les tester n'ayant plus de dedie etc.. Mais tu le fera je m'occupe de t'aider à débug.

Pour information y'aura pas mal de modification sur certaines choses tu comprendra lorsque sa sera fait.
Je te donnerais les modification dans ton post dans le courant de la semaine.
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté