TCL Service
#10
oui pas de souci

tcl
namespace eval ::eva_tcl {
variable version "0.2 RC1"
variable eva
 
#********************#
# Service.Socket 1.0 by Alias#
#********************#
 
#**************************#
# Information link reseau. #
#**************************#
 
set eva(serv) "link.***.fr"
set eva(ip) "myip"
set eva(port) "4400"
set eva(pwdlink) "mot de passe"
set eva(info) "TCL Services"
#****************************#
# Configuration des sockets. #
#****************************#
 
set eva(nick) "Eva_TCL"
set eva(identd) "Data"
set eva(host) "localhost.com"
set eva(nom) "Services TCL"
 
#***************************#
# Salon de log des sockets. #
#***************************#
 
set eva(log) "#Services"
set eva(quit01) "Redemarage Service."
set eva(quit02) "Fermeture Service."
 
#****************************************#
# Lancement de la procédure des sockets. #
#****************************************#
proc checkconnect {} {
   if {![info exists eva(idx)]} { utimer 30 [namespace current]::checkconnect } else { xconnect:serv }
}
 
proc xconnect:serv {} {
   variable eva
   if [catch {set eva(idx) [connect $eva(ip) $eva(port)]} err] {
      putlog "Connection error :$err"
      return
   }
   putdcc $eva(idx) "PASS $eva(pwdlink)"
   putdcc $eva(idx) "SERVER $eva(serv) 1 [unixtime] [unixtime] J09 :TCL Services"
   putdcc $eva(idx) ":$eva(serv) NICK $eva(nick) 1 1 $eva(identd) $eva(ip) $eva(serv) :$eva(info)"
   putdcc $eva(idx) ":$eva(nick) MODE $eva(nick) +ikdowgs 16384"
   putdcc $eva(idx) ":$eva(nick) JOIN $eva(log)"
   putdcc $eva(idx) ":$eva(nick) MODE $eva(log) +nOtsv $eva(nick)"
   putdcc $eva(idx) ":$eva(nick) MODE $eva(log) +o $eva(nick)"
   putdcc $eva(idx) ":$eva(nick) TOPIC $eva(log) :1\[Eva Service\] Bienvenue sur le Channel des Logs de \2$eva(nick)\2 !"
   control $eva(idx) [namespace current]::controling_server
   utimer 10 [namespace current]::verify
}
 
#***********************************#
# Verify si le serveur est Connecté #
#***********************************#
 
proc verify {} {
   variable eva
   if [valididx [set [namespace current]::eva(idx)]] {
      utimer 30 [namespace current]::verify
   } else {
      xconnect:serv
   }
}
 
proc controling_server {idx arg} {
   variable eva
   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 [valididx [set [namespace current]::eva(idx)]] {
   if {$arg2=="PING"} {
      putdcc $eva(idx) ":$eva(serv) PONG $eva(ip) :$eva(serv)"
    }	
    }
 }
#**********************#
# Restart des sockets. #
#**********************#
 
proc eva:restart {args} {
   variable eva
   putdcc $eva(idx) ":$eva(serv) SQUIT $eva(serv) :Restart Sockets."
   catch {close $eva(idx)}
}
 
#********************#
# Rehash du Service. #
#********************#
 
proc eggy:xrehash {nick idx arg} {
   variable eva
   putdcc $idx "\002Rehash de TCL Service et des fichiers\002"
   utimer 4 rehash
}

#*********************#
# Restart du Service. #
#*********************#
 
proc eggy:xrestart {nick idx arg} {
   variable eva
   putdcc $idx "\002Redémarrage de TCL Service\002"
   if [valididx [set [namespace current]::eva(idx)]] {
      putdcc $eva(idx) ":$eva(nick) QUIT :$eva(quit01)"
      putdcc $eva(idx) ":$eva(serv) SQUIT :$eva(serv)"
      catch {close $eva(idx)}
      foreach kill [utimers] {
          if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
      }
    }
    xconnect:serv
}
 
#*****************#
# Die du Service. #
#*****************#
 
proc eggy:xdie {nick idx arg} {
variable eva
    putdcc $idx "\002Arrêt de TCL Service\002"
    if [valididx [set [namespace current]::eva(idx)]] {
       putdcc $eva(idx) ":$eva(nick) QUIT : $eva(quit02)"
       putdcc $eva(idx) ":$eva(serv) SQUIT :$eva(quit02)"
       catch {close $eva(idx)}
       foreach kill [utimers] {
          if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
       }
   }
}
 
proc xop {nick idx arg} {
variable eva
  set salon [lindex $arg 0]
  set pseudo [lindex $arg 1]
  if {$salon=="" || $pseudo=="" || ![string match *#* $salon]} {
	putdcc $idx "\2Utilisation:\2 xop <salon> <pseudo>"
	return 0
  }
if [valididx [set [namespace current]::eva(idx)]] {
putdcc $eva(idx) ":$eva(nick) MODE $salon +o $pseudo"
putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\2\[Commande\]\21 $nick \2->\2 xop"
catch {close $eva(idx)}
	}
}
 
proc xdeop {nick idx arg} {
  variable eva
  set salon [lindex $arg 0]
  set pseudo [lindex $arg 1]
  if {$salon=="" || $pseudo=="" || ![string match *#* $salon]} {
	putdcc $idx "\2Utilisation:\2 xdeop <salon> <pseudo>"
	return 0
  }
  if [valididx [set [namespace current]::eva(idx)]] {
  putdcc $eva(idx) ":$eva(nick) MODE $salon -o $pseudo"
  putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\[xdéOp\] *** $pseudo sur $salon par: $nick" 
  catch {close $eva(idx)}
	}
  putlog "*** Xdéop par $nick - $pseudo sur $salon"
}
 
 
proc xvoice {nick idx arg} {
  variable eva 
  set salon [lindex $arg 0]
  set pseudo [lindex $arg 1]
  if {$salon=="" || $pseudo=="" || ![string match *#* $salon]} {
	putdcc $idx "\2Utilisation:\2 xvoice <salon> <pseudo>"
	return 0
  }
  if [valididx [set [namespace current]::eva(idx)]] {
  putdcc $eva(idx) ":$eva(nick) MODE $salon +v $pseudo"
  putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\[xVoice\] *** $pseudo sur $salon par: $nick" 
  catch {close $eva(idx)}
	}
  putlog "*** Xvoice par $nick - $pseudo sur $salon"
}
 
 
proc xdevoice {nick idx arg} {
variable eva 
  set salon [lindex $arg 0]
  set pseudo [lindex $arg 1]
  if {$salon=="" || $pseudo=="" || ![string match *#* $salon]} {
	putdcc $idx "\2Utilisation:\2 xdevoice <salon> <pseudo>"
	return 0
  }
  if [valididx [set [namespace current]::eva(idx)]] {
  putdcc $eva(idx) ":$eva(nick) MODE $salon -v $pseudo"
  putlog "$eva(idx) :$eva(nick) MODE $salon -v $pseudo"
 putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\[xdeVoice\] *** $pseudo sur $salon par: $nick" 
 catch {close $eva(idx)}
	}
  putlog "*** Xdévoice par $nick - $pseudo sur $salon"
}
 
proc Pljoin {hand idx args} {
variable eva
	putdcc $idx "\0034\002\[\002\0031Authentification \0033\037OK\037\0034\002\]"
    if [valididx [set [namespace current]::eva(idx)]] {
	putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\0034|Join.Partyline\|\0032 - $hand vient de joindre la party-line."
	catch {close $eva(idx)}
		}
	}
 
proc Plpart {hand idx args} {
	variable eva 
	 if [valididx [set [namespace current]::eva(idx)]] {
	putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\0034|Part.Partyline\|\0032 - $hand vient de se déconnecter de la party line."
	catch {close $eva(idx)}   
		}
	}
#****************************#
# Fin du Service Sockets 1.0 #
#****************************#
bind evnt - prerehash [namespace current]::uninstall
bind evnt - prerestart [namespace current]::eva:restart
bind dcc n xrehash [namespace current]::eggy:xrehash
bind dcc n xrestart [namespace current]::eggy:xrestart
bind dcc n xdie [namespace current]::eggy:xdie
bind dcc n xop [namespace current]::xop
bind dcc - xdeop [namespace current]::xdeop
bind dcc - xvoice [namespace current]::xvoice
bind dcc - xdevoice [namespace current]::xdevoice
bind chon - * [namespace current]::Pljoin	
bind chof - * [namespace current]::Plpart
# connection
[namespace current]::xconnect:serv
}
putlog "[file tail [info script]] V[set eva_tcl::version] loaded success"



le souci n'y ai plus a partir du moment ou je kill le pid et relance le service.
[font=Times New Roman]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.[/font]
Répondre Avertir


Messages dans ce sujet
TCL Service - par fedora - 11/12/2013, 21:02
RE: TCL Service - par fedora - 13/12/2013, 09:59
RE: TCL Service - par CrazyCat - 13/12/2013, 14:09
RE: TCL Service - par fedora - 13/12/2013, 21:04
RE: TCL Service - par aliasangelius - 14/12/2013, 12:30
RE: TCL Service - par CrazyCat - 14/12/2013, 12:31
RE: TCL Service - par aliasangelius - 14/12/2013, 12:34
RE: TCL Service - par fedora - 14/12/2013, 16:26
RE: TCL Service - par aliasangelius - 14/12/2013, 20:01
RE: TCL Service - par fedora - 14/12/2013, 22:59
RE: TCL Service - par aliasangelius - 15/12/2013, 00:32

Atteindre :


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