Bonsoir,
depuis peut je me remet au TCL est je me lance dans un petit projet.
je souhaiterais savoir en utilisant le namespace comment dois je faire pour crée mon link.
dois je mettre tout en variable ?
c'est a dire comme cela ?
ou utilisé dans le namespace set eva(serv) ect ...
car en regardant dans le forum j'ai vue le NS de Alias mais qd j'ajoute genre les commandes op voice ect .. j'ai des erreurs de idx ...
Cordialement
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
Bonjour,
je rencontre un souci concernant une erreur assez génante car je trouve pas d'ou vient le souci.le Service est bien link au serveur,aucun souci dessus.
erreurs PL
Quote:Tcl error [::eva_tcl::xop]: can't read "eva(idx)": no such variable
code
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
j'ai essayé en global eva mais pareille je rencontre toujours la même erreur
tcl
Tcl error [::eva_tcl::xop]: can't read "eva(idx)": no such variable
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
(14/12/2013, 12:34)aliasangelius Wrote: A savoir, variable sa créer absolument pas la var !
Il fait comme un bloque de mémoire en gros, et pour que il sache ce tiens tel que $evaIP il faut le set pour permettre que info exists retourne le 0
Sinon, Tiens prend exemple sur celui que j'avais que djkenny m'avais refait :
tcl
namespace eval ::socks {
variable aurore
#********************#
# 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. #
#****************************************#
proc checkconnect {} {
if {![info exists aurore(idx)]} { utimer 30 [namespace current]::checkconnect } else { xconnect:serv }
}
proc xconnect:serv {} {
variable aurore
if [catch {set aurore(idx) [connect $aurore(ip) $aurore(port)]} err] {
putlog "Connection error :$err"
return
}
putdcc $aurore(idx) "PASS $aurore(pwdlink)"
putdcc $aurore(idx) "SERVER $aurore(serv) 1 [unixtime] [unixtime] J09 ACAA\] +s :$aurore(info)"
putdcc $aurore(idx) ":$aurore(serv) NICK $aurore(nick) '' '' $aurore(identd) $aurore(host) $aurore(serv) '' :$aurore(nom)"
putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(nick) +owsgkd"
putdcc $aurore(idx) ":$aurore(nick) JOIN $aurore(log)"
putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(log) +ntsv $aurore(nick)"
control $aurore(idx) [namespace current]::controling_server
utimer 10 [namespace current]::verify
}
#***********************************#
# Verify si le serveur est Connecté #
#***********************************#
proc verify {} {
variable aurore
if [valididx [set [namespace current]::aurore(idx)]] {
utimer 30 [namespace current]::verify
} else {
xconnect:serv
}
}
proc controling_server {idx arg} {
variable aurore
set arg1 [lindex [split $arg " "] 0]
set arg2 [lindex [split $arg " "] 1]
set arg3 [lindex [split $arg " "] 2]
set arg4 [lindex [split $arg " "] 3]
set arg5 [lindex [split $arg " "] 4]
set arg6 [lindex [split $arg " "] 5]
set arg7 [lindex [split $arg " "] 6]
set arg8 [lindex [split $arg " "] 7]
set arg10 [string trim [lrange [split $arg " "] 3 end] :]
if {$arg2=="PING"} {
putdcc $aurore(idx) ":$aurore(serv) PONG $aurore(ip) :$aurore(serv)"
}
}
#**********************#
# Restart des sockets. #
#**********************#
bind evnt - prerestart [namespace current]::eva:restart
proc eva:restart {args} {
variable aurore
putdcc $aurore(idx) ":$aurore(serv) SQUIT $aurore(serv) :Restart Sockets."
catch {close $aurore(idx)}
}
#********************#
# Rehash du Service. #
#********************#
bind dcc n xrehash [namespace current]::eggy:xrehash
proc eggy:xrehash {nick idx arg} {
variable aurore
putdcc $idx "\002Rehash de Aurore-Service et des fichiers\002"
utimer 4 rehash
}
#*********************#
# Restart du Service. #
#*********************#
bind dcc n xrestart [namespace current]::eggy:xrestart
proc eggy:xrestart {nick idx arg} {
variable aurore
putdcc $idx "\002Redémarrage de Aurore-service\002"
if [valididx [set [namespace current]::aurore(idx)]] {
putdcc $aurore(idx) ":$aurore(nick) QUIT :$aurore(quit01)"
putdcc $aurore(idx) ":$aurore(serv) SQUIT :$aurore(serv)"
catch {close $aurore(idx)}
foreach kill [utimers] {
if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
}
}
xconnect:serv
}
#*****************#
# Die du Service. #
#*****************#
bind dcc n xdie [namespace current]::eggy:xdie
proc eggy:xdie {nick idx arg} {
putdcc $idx "\002Arrêt de Aurore-Service\002"
if [valididx [set [namespace current]::aurore(idx)]] {
putdcc $aurore(idx) ":$aurore(nick) QUIT : $aurore(quit02)"
putdcc $aurore(idx) ":$aurore(serv) SQUIT :$aurore(quit02)"
catch {close $aurore(idx)}
foreach kill [utimers] {
if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
}
}
}
#****************************#
# Fin du Service Sockets 1.0 #
#****************************#
# connection
[namespace current]::xconnect:serv
}
putlog "\0031Service Sockets 1.0 \0034Chargé."
Bonjour,
merci pour vos réponse rapide,et alias justement je me suis basé dessus voir même laissé comme ça le tcl en y rajoutant juste la proc xop mais toujours le même problème survient ...
CrazyCat je vais voir tout a heure ce que me retourne eva(idx)
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
oui pas de souci
le souci n'y ai plus a partir du moment ou je kill le pid et relance le service.
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.