11/05/2011, 16:57
Bonjour,
Voilà j’ai un souci enfin cela fait quelque jours que je penche sur le système de namespace en sockets.
Je m’explique plus clairement.
En faite j’ai un système de sockets (ce qui me permets de connecté une socket).
Jusque la aucun problème le tout codé modifié pas de soucis.
Mais il se trouve que j’ai une erreur en PL.
J’ai tenté de rechercher cette erreur mais sans aucun succès.
J’ai demandé divers aides mais aucune na été concluante.
Alors donc je post en espérant que vous pourrez m’aider.
Donc voici mon erreur que mon robot me transmet en PL :
Erreur transmise lors d’un .rehash suivi d’un .restart
Voici le code TCL :
Si quelqu’un aurait une idée pour me guider merci d’avance :)
Voilà j’ai un souci enfin cela fait quelque jours que je penche sur le système de namespace en sockets.
Je m’explique plus clairement.
En faite j’ai un système de sockets (ce qui me permets de connecté une socket).
Jusque la aucun problème le tout codé modifié pas de soucis.
Mais il se trouve que j’ai une erreur en PL.
J’ai tenté de rechercher cette erreur mais sans aucun succès.
J’ai demandé divers aides mais aucune na été concluante.
Alors donc je post en espérant que vous pourrez m’aider.
Donc voici mon erreur que mon robot me transmet en PL :
Citation :[16:30:18] <Aurore> [15:30:40] Tcl error in script for 'timer4':
[16:30:18] <Aurore> [15:30:40] invalid command name "checkconnect"
Erreur transmise lors d’un .rehash suivi d’un .restart
Voici le code TCL :
tcl
namespace eval socks {
#********************#
# Service.Socket 1.0 #
#********************#
#**************************#
# Information link reseau. #
#**************************#
set aurore(serv) "Aurore.****.fr"
set aurore(ip) "ip"
set aurore(port) "port"
set aurore(pwdlink) "pass"
set aurore(info) "Aurore Services"
#****************************#
# Configuration des sockets. #
#****************************#
set aurore(nick) "Hera"
set aurore(identd) "Hera"
set aurore(host) "Services.****.fr"
set aurore(nom) "Services-Log"
#***************************#
# Salon de log des sockets. #
#***************************#
set aurore(log) "#Services"
set aurore(quit01) "Redemarage Aurore-Service."
set aurore(quit02) "Fermeture Aurore-Service."
#****************************************#
# Lancement de la procédure des sockets. #
#****************************************#
utimer 1 checkconnect
proc checkconnect {} {
if {![info exists aurore(idx)]} {
xconnect:serv
} else {
utimer 30 [namespace current]::checkconnect
}
}
proc xconnect:serv {} {
set aurore(idx) "[connect $::socks::aurore(ip) $::socks::aurore(port)]"
putdcc $aurore(idx) "PASS $::socks::aurore(pwdlink)"
putdcc $aurore(idx) "SERVER $::socks::aurore(serv) 1 [unixtime] [unixtime] J09 ACAA\] +s :$::socks::aurore(info)"
putdcc $aurore(idx) ":$::socks::aurore(serv) NICK $::socks::aurore(nick) '' '' $::socks::aurore(identd) $::socks::aurore(host) $::socks::aurore(serv) '' :$::socks::aurore(nom)"
putdcc $aurore(idx) ":$::socks::aurore(nick) MODE $::socks::aurore(nick) +owsgkd"
putdcc $aurore(idx) ":$::socks::aurore(nick) JOIN $::socks::aurore(log)"
putdcc $aurore(idx) ":$::socks::aurore(nick) MODE $::socks::aurore(log) +ntsv $::socks::aurore(nick)"
control $aurore(idx) controling_server
utimer 10 verify
}
#***********************************#
# Verify si le serveur est Connecté #
#***********************************#
proc verify {} {
if {[valididx $aurore(idx)]} {
utimer 30 verify
} else {
xconnect:serv
}
}
proc valididx {idx} {
set r 0
foreach j [dcclist] {
if {[lindex $j 0] == $idx} {
set r 1
}
}
return $r
}
proc controling_server {idx arg} {
regsub -all {\\} $arg {\\\\} arg
regsub -all {\{} $arg {\{} arg
regsub -all {\}} $arg {\}} arg
regsub -all {\]} $arg {\]} arg
regsub -all {\[} $arg {\[} arg
regsub -all {\"} $arg {\"} arg
regsub -all {\`} $arg {\`} arg
set arg1 "[lindex $arg 0]"
set arg2 "[lindex $arg 1]"
set arg3 "[lindex $arg 2]"
set arg4 "[lindex $arg 3]"
set arg5 "[lindex $arg 4]"
set arg6 "[lindex $arg 5]"
set arg7 "[lindex $arg 6]"
set arg8 "[lindex $arg 7]"
set arg10 "[string trim [lrange $arg 3 end] :]"
if {$arg2=="PING"} {
putdcc $aurore(idx) ":$::socks::aurore(serv) PONG $::socks::aurore(ip) :$::socks::aurore(serv)"
}
}
#**********************#
# Restart des sockets. #
#**********************#
bind evnt - prerestart restart1
proc restart1 {} {
putdcc $aurore(idx) ":$::socks::aurore(serv) SQUIT $::socks::aurore(serv) :Restart Sockets."
}
bind evnt - restart restart2
proc restart2 {arg} {
xconnect:serv
}
#********************#
# Rehash du Service. #
#********************#
bind dcc n xrehash eggy:xrehash
proc eggy:xrehash {nick idx arg} {
putdcc $idx "\002Rehash de Aurore-Service et des fichiers\002"
utimer 4 rehash
}
#*********************#
# Restart du Service. #
#*********************#
bind dcc n xrestart eggy:xrestart
proc eggy:xrestart {nick idx arg} {
putdcc $idx "\002Redémarrage de Aurore-service\002"
if {[valididx $aurore(idx)]} {
putdcc $aurore(idx) ":$::socks::aurore(nick) QUIT :$::socks::aurore(quit01)"
putdcc $aurore(idx) ":$::socks::aurore(serv) SQUIT :$::socks::aurore(serv)"
foreach kill [utimers] {
if {[lindex $kill 1]=="verification"} { killutimer [lindex $kill 2] }
}
}
xconnect:serv
}
#*****************#
# Die du Service. #
#*****************#
bind dcc n xdie eggy:xdie
proc eggy:xdie {nick idx arg} {
putdcc $idx "\002Arrêt de Aurore-Service\002"
if {[valididx $aurore(idx)]} {
putdcc $aurore(idx) ":$::socks::aurore(nick) QUIT : $::socks::aurore(quit02)"
putdcc $aurore(idx) ":$::socks::aurore(serv) SQUIT :$::socks::aurore(quit02)"
foreach kill [utimers] {
if {[lindex $kill 1]=="verification"} { killutimer [lindex $kill 2] }
}
}
}
#****************************#
# Fin du Service Sockets 1.0 #
#****************************#
}
putlog "\0031Service Sockets 1.0 \0034Chargé."
Si quelqu’un aurait une idée pour me guider merci d’avance :)