Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


j'ai un souci sur le .restart
#1
Bonjour :)

Voilà je me trouve en difficulté avec le .restart de mon eggdrop.

Je vous explique mieux.

J'ai un tcl qui connecte 3 sockets : Eva,Geofront,LogServ.
Qui ont pour but de se connecter sur le réseau et qui auront plus tard divers fonctions.

Donc mon problème et lorsque je .restart mon eggdrop (lanceur) les sockets reste connecté et le réseau irc m'informe d'une erreur comme quoi ya déjà un Link.

Donc ensuite j'ai les commande .xdie qui as pour but de déconnecté les sockets du réseau qui fonctionne bien sauf si je tape .restart avec l'eggdrop lanceur.

Pareil si je tape la commande .xrestart qui doit redémarrer les sockets sur le réseau.

Voici les résultats obtenu lors des commandes taper en PL :

1 : ont .restart avec l'eggdrop lanceur :

Quote:[17:01:45] -irc.****.fr- *** Notice -- Client exiting: Xbot02 (user-FR@irc.****.fr) [Quit: Connection reset by peer]
[17:01:46] -irc.****.fr- *** Notice -- Link [@94.23.215.212.41983] cancelled, server Eva02.***.fr already exists from Eva02.***.fr

La ont peux voir que sa refuse de se connecté comme ya un Link qui et déjà détecter donc nous allons essayer de restart les sockets.

2 : Ont .xrestart les sockets :

Quote:[17:02:25] ( alias_angelius ) .xrestart
[17:02:25] <Xbot02> Redémarrage de Eva-service
[17:02:25] -irc.****.fr- *** Notice -- Link [@94.23.215.212.59578] cancelled, server Eva02.***.fr already exists from Eva02.***.fr

La pareil au .xrestart cela ne fait rien sa refuse même de lancer le restart des sockets vu qui ya un Link déjà existant.

3 : Ont .xdie les sockets :

Quote:[17:02:40] ( alias_angelius ) .xdie
[17:02:40] <Xbot02> Arrêt de Eva-Service
[17:02:40] -irc.****.fr- *** Notice -- Link [@94.23.215.212.42388] cancelled, server Eva02.***.fr already exists from Eva02.***.fr

La rien ne change encore.. Nous pouvons dire alors peut-être que c'est les binds qui ne fonctionnent pas ? Nous allons alors faire voir lorsque je die/reco l'eggdrop lanceurs et qu'il connecte bien les sockets.

4 : Ont .xdie les sockets :

Quote:[17:04:01] ( alias_angelius ) .xdie
[17:04:01] <Xbot02> Arrêt de Eva-Service
[17:04:01] -irc.****.fr- *** Notice -- Client exiting at Eva02.***: Eva!Eva-Service@***.fr ( Coupure Service Maintenance)
[17:04:01] -irc.****.fr- *** Notice -- Client exiting at Eva02.***.fr: Geofront!Geo-Service@***.fr ( Coupure Service Maintenance)
[17:04:01] -irc.****.fr- *** Notice -- Client exiting at Eva02.***.fr: LogServ!Log-Service@***.fr ( Coupure Service Maintenance)

Donc la les sockets se déconnecte bien correctement suite à la commande .xdie en PL lorsque l'eggdrop na pas subit de .restart

5 : Ont .xrestart les sockets :

Quote:[17:04:07] ( alias_angelius ) .xrestart
[17:04:07] <Xbot02> Redémarrage de Eva-service
[17:04:07] -irc.****.fr- *** LocOps -- Received SQUIT Eva02.***.fr from Eva02.***.fr[94.23.215.212] (Eva02.***.fr)
[17:04:07] -irc.****.fr- *** Notice -- (link) irc.****.fr -> Eva02.***.fr [@94.23.215.212.55939] established
[17:04:07] -irc.****.fr- *** OperOverride -- Eva (Eva-Service@***.fr) MODE #services +o Eva
[17:04:07] -irc.****.fr- *** OperOverride -- Geofront (Geo-Service@***.fr) MODE #services +o Geofront
[17:04:07] -irc.****.fr- *** OperOverride -- LogServ (Log-Service@***.fr) MODE #services +v LogServ

La pareil lorsque l'eggdrop lanceur na pas subit de .restart le .xrestart fonctionne parfaitement.

Donc je pense que lorsque je tape .restart en PL de l'eggdrop lanceur cela mets l'erreur du Link comme vous pouvez le voir à plusieurs reprise au dessus.

Ce que j'aimerais c'est faire en sorte lorsque je .restart cela ne mette pas cette erreur mais comment faire ?

Je vous transmets le cl :


tcl
set Eva(ip)   "ip"
set Eva(port) "port"
set Eva(pass) "password"
set Eva(serv) "Eva02.***.fr"
set Eva(info) "Eva-Service"
 
#**********#
# Info Eva #
#**********#
 
set Eva(nick) "Eva"
set Eva(host) "***.fr"
set Eva(real) "Eva-000Service"
set Eva(ident) "Eva-Service"
set Eva(mode) "oaOwsgk"
 
#**********#
# Info Geo #
#**********#
 
set Eva(geo) "Geofront"
set Eva(geohost) "***.fr"
set Eva(georeal) "Geo-000Service"
set Eva(geoident) "Geo-Service"
set Eva(geomode)  "oaOwsgk"
 
#**********#
# Info Geo #
#**********#
 
set Eva(logserv) "LogServ"
set Eva(loghost) "***.fr"
set Eva(logreal) "Log-000Service"
set Eva(logident) "Log-Service"
set Eva(logmode)  "oaOwsgk"
 
#***********#
# Salon log #
#***********#
 
set Eva(log) "#services"
set Eva(quit01) "Redémarrage Service"
set Eva(quit02) "Coupure Service Maintenance"
 
#***************************#
# Variable à ne pas toucher #
#***************************#
 
proc putspeed {arg} {
  putquick "$arg"
  clearqueue all
}
 
#***********************************#
# Connection de la socket Principal #
#***********************************#
 
 
proc connexion {} {
  global Eva 
  #if [info exists userserv] {unset -nocomplain userserv}
  if {![catch "connect $Eva(ip) $Eva(port)" Eva(idx)]} {
  putdcc $Eva(idx) "PASS $Eva(pass)"
  putdcc $Eva(idx) "SERVER $Eva(serv) 1 :$Eva(info)"
  putdcc $Eva(idx) ":$Eva(serv) NICK $Eva(nick) 1 [unixtime] $Eva(ident) $Eva(host) $Eva(serv) :$Eva(real)"
  putdcc $Eva(idx) ":$Eva(nick) MODE $Eva(nick) $Eva(mode)"
  putdcc $Eva(idx) ":$Eva(nick) JOIN $Eva(log)"
  putdcc $Eva(idx) ":$Eva(nick) MODE $Eva(log) +o $Eva(nick)"
  putdcc $Eva(idx) ":$Eva(serv) NICK $Eva(geo) 1 [unixtime] $Eva(geoident) $Eva(geohost) $Eva(serv) :$Eva(georeal)"
  putdcc $Eva(idx) ":$Eva(geo) MODE $Eva(geo) $Eva(geomode)"
  putdcc $Eva(idx) ":$Eva(geo) JOIN $Eva(log)"
  putdcc $Eva(idx) ":$Eva(geo) MODE $Eva(log) +o $Eva(geo)"
  putdcc $Eva(idx) ":$Eva(serv) NICK $Eva(logserv) 1 [unixtime] $Eva(logident) $Eva(loghost) $Eva(serv) :$Eva(logreal)"
  putdcc $Eva(idx) ":$Eva(logserv) MODE $Eva(logserv) $Eva(logmode)"
  putdcc $Eva(idx) ":$Eva(logserv) JOIN $Eva(log)"
  putdcc $Eva(idx) ":$Eva(logserv) MODE $Eva(log) +v $Eva(logserv)"
  control $Eva(idx) event 
  utimer 5 verification
 
}
}
 
#############
# Evenement #
#############
 
proc event {idx arg} {
   global Eva
   set arg [split $arg]
   if {[lindex $arg 0]=="PING"} { putdcc $idx "PONG [lindex $arg 1]" }
 
}
 
 
################
# Verification #
################
 
if {![info exists Eva(idx)]} { connexion }
 
proc verification {} {
   global Eva
   if {[valididx $Eva(idx)]} { utimer 5 verification } else { connexion }
}
 
###############
# eggy:rehash #
###############
 
bind dcc n xrehash eggy:xrehash
proc eggy:xrehash {nick idx arg} {
    putdcc $idx "\002Rehash de Eva-Service et des fichiers\002"
        utimer 4 rehash
}
 
################
# eggy:restart #
################
 
bind dcc n xrestart eggy:xrestart
proc eggy:xrestart {nick idx arg} {
    global Eva
        putdcc $idx "\002Redémarrage de Eva-service\002"
    if {[valididx $Eva(idx)]} {
        putdcc $Eva(idx) ":$Eva(nick) SQUIT :$::Eva(quit01)"
        putdcc $Eva(idx) ":$Eva(geo) SQUIT :$::Eva(quit01)"
	putdcc $Eva(idx) ":$Eva(logserv) SQUIT :$::Eva(quit01)"
        putdcc $Eva(idx) ":$Eva(serv) SQUIT :$::Eva(serv)"
	  foreach kill [utimers] { 
            if {[lindex $kill 1]=="verification"} { killutimer [lindex $kill 2] }
      }
    }
    connexion
 
}
 
############
# eggy:die #
############
 
bind dcc n xdie eggy:xdie
proc eggy:xdie {nick idx arg} {
    global Eva
        putdcc $idx "\002Arrêt de  Eva-Service\002"
    if {[valididx $Eva(idx)]} {
        putdcc $Eva(idx) ":$Eva(nick) QUIT : $::Eva(quit02)"
        putdcc $Eva(idx) ":$Eva(geo) QUIT : $::Eva(quit02)"
	putdcc $Eva(idx) ":$Eva(logserv) QUIT : $::Eva(quit02)"
        putdcc $Eva(idx) ":$Eva(serv) QUIT :$::Eva(quit02)"
	  foreach kill [utimers] { 
            if {[lindex $kill 1]=="verification"} { killutimer [lindex $kill 2] }
      }
    }
}


En espérant que vous serez me guider merci d'avance pour vos futur aide :).
#2
salut,

utilise un bind evnt - prerestart .. pour faire un SQUIT sur tes services
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#3
d’ailleurs tes squit ne sont pas, il suffi simplement de quitter le serveur, pas les pseudo qui y sont connecté
ce qui donne quelque chose comme

tcl
putdcc $Eva(idx) ":$Eva(nick) QUIT :$::Eva(quit01)"
putdcc $Eva(idx) ":$Eva(geo) QUIT :$::Eva(quit01)"
putdcc $Eva(idx) ":$Eva(logserv) QUIT :$::Eva(quit01)"
putdcc $Eva(idx) ":$Eva(serv) SQUIT :$::Eva(serv)"

C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#4
oui j'ai modifier pour les SQUIT beussay me la signalé c'est une erreur de ma part lorsque j'ai voulut faire divers test oublier de replacer ceci correctement.

le SQUIT reste sur le $Eva(serv)...
#5
sinon en gros


tcl
bind evnt - prerestart eva:evnt:prerestart
 
proc eva:evnt:prerestart event {
  global Eva
  putdcc $Eva(idx) ":$Eva(nick) QUIT :$::Eva(quit01)"
  putdcc $Eva(idx) ":$Eva(geo) QUIT :$::Eva(quit01)"
  putdcc $Eva(idx) ":$Eva(logserv) QUIT :$::Eva(quit01)"
  putdcc $Eva(idx) ":$Eva(serv) SQUIT :$::Eva(serv)"
}


ça devrais ressembler à ça (à tester)
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#6
je suis en train de regarder la doc sur ça lol.

Mais je tester et te dire ça dessuite
#7
Donc oui c'est bon comme ça djkenny.

Merci beaucoup.
Mais par curiosité le bind evnt - prerestart

Fait un appel au restart et empêche de recharger le tcl ?
#8
nanan il exécute simplement la proc avant de restart
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#9
oki merci pour tout en tout cas :)


Possibly Related Threads…
Thread Author Replies Views Last Post
  Rehash & Restart Babytigrou16 13 8,297 02/06/2010, 15:11
Last Post: Marc

Forum Jump:


Users browsing this thread: 1 Guest(s)