J'ai un bug tcl que je n'arrive pas à résoudre sur un bind raw - notice.
Mon egg est sous une oline, il scan les connexions entrantes.
Il agit sur une blacklist, badidents, badhosts et badnicks.
Le problème, c'est que dès que je load les scripts tcl, il me plante l'identification EOF de la partyline.
c'est à dire, dès que je fais un /CHAT bot ou /CTCP CHAT bot, au niveau de taper le pass, bah plus rien, c'est figé, puis au bout de quelques secondes vient bien sur le 'Timeout of ident' . Alors est ce que ca vient des boucles (while, foreach) que j'utilise dans mes tcl ou du scan des scripts qui fait lager le bots.
J'ai tester sans les tcl , le bot ne plante pas rien que sous sa oline.
Si quelqu'un a déjà rencontrer un problème de ce genre, qu'il m'éclaircisse volontier !
Ne lis pas le fichier à chaque notice, ouvres le fichier au lancement du script, place sont contenu dans une variable avec [read].
Ensuite analyse ta variable, tu auras un temps d'éxécution 100x meilleur, sans un seul while.
Merwin a écrit :Ne lis pas le fichier à chaque notice, ouvres le fichier au lancement du script, place sont contenu dans une variable avec [read].
Ensuite analyse ta variable, tu auras un temps d'éxécution 100x meilleur, sans un seul while.
Tout à fait d'accord avec Merwin sur ce coup là. Surtout que dans le cas "normal", tu parcoures les 2 fichiers pour rien.
Je ne comprends pas ce que tu veux dire...
Au début, tu charges tes fichiers dans des variables de type liste, et ensuite tu peux utiliser [lsearch] par exemple pour savoir si l'host est dans l'une ou l'autre des variables.
Salut Gro_MiNet
comment va depuis le temps??
déjà tu as une erreure a cette ligne (je pense)
tcl
if{$exempt_masks!= ""}{
ca ne devrais pas étres plutot sans le S de exempt_masks
tcl
if{$exempt_mask!= ""}{
(je ne pense pas que l erreur vienne de la)
ensuite tu devrais close les fichier avant de return 0 sinon au bou de 50 notice il y auras 50 fichiers ouvert ou tu peu remplacer le return 0 par un break (qui a pour effet de stopper la boucle et continue de lire la suite de la procédure)
l'idée de Merwin est pas mal du tout mais cela ne vient pas de la. \n signifie un retour a la ligne ("putlog 1\n2" renvera 2 ligne "1 et 2")
j pense que tu devrais ajouter des putlog et return a chaque condition pour voir ou le tcl se bloque (que tu deplacera au fur et a mesure)
tcl
putlog ok
return
le return aura pour effet d arreter la proc donc tu le place au debut, tu test et si ca marche tu le deplace dans la contition suivante.
Oh djkenny ca fait longtemps, ca fait plaisir !!! Moi depuis le temps tout va bien, je me remets au tcl petit à petit à mes heures perdues lol
Oué c'est ca qui fait planter le bot le fait d'ouvrir 50 000 fichiers , je suis d'accord aussi pour 'break', là je viens de finir de modifier la tcl avec l'idée de Merwin et j'attends un moment qu il y est plusieurs connexion serveur pour voir si la PL ne plante pas. Je repasse en soirée.