hi, im need any kill/gline/akill protection for ulines (services and stats cant be killed or glined)
thanks.
Req: protect ulines
ServicesAdmins can kill them too.
Code from my Services_on_PHP, a.k.a. possible solution for services-killers:
(...)
if ($text[1] == 'KILL') { //RAW: ":John KILL Nick1 :You are so lame ;("
$killer=str_replace(':','',$text[0]);
$nick = $text[2];
$text[3]=substr($text[3],1,strlen($text[3])-1);
unset($text[0],$text[1],$text[2]);
$reason=implode(' ',$text);
if ($nick == 'ChanServ') {
ssend('NICK ChanServ 1 0 '.$GLOBALS['conf']['servicesident'].' '.$GLOBALS['conf']['servicesvhost'].' '.$GLOBALS['conf']['serviceshost'].' 1 +iSqo * :ChanServ!'); //re-init
putlog("CHANSERV KILLED ($reason) by $killer");
ssend(':'.$GLOBALS['conf']['servicesvhost'].' ZLINE 0 '.$nick.' Don\'t kill services'); //punishment
}
(...)
Code from my Services_on_PHP, a.k.a. possible solution for services-killers:
(...)
if ($text[1] == 'KILL') { //RAW: ":John KILL Nick1 :You are so lame ;("
$killer=str_replace(':','',$text[0]);
$nick = $text[2];
$text[3]=substr($text[3],1,strlen($text[3])-1);
unset($text[0],$text[1],$text[2]);
$reason=implode(' ',$text);
if ($nick == 'ChanServ') {
ssend('NICK ChanServ 1 0 '.$GLOBALS['conf']['servicesident'].' '.$GLOBALS['conf']['servicesvhost'].' '.$GLOBALS['conf']['serviceshost'].' 1 +iSqo * :ChanServ!'); //re-init
putlog("CHANSERV KILLED ($reason) by $killer");
ssend(':'.$GLOBALS['conf']['servicesvhost'].' ZLINE 0 '.$nick.' Don\'t kill services'); //punishment
}
(...)
-
- Posts: 267
- Joined: Tue Jan 18, 2005 3:24 pm
- Location: Scotland - United Kingdom
For killing? o_OWhite_Magic wrote:add a exception
Btw, services cannot `akick` themselves :) For who how, but SUX-Services are trying to add kline to all servers, where they are. If you mean really automatic on-connect killing from services path, services are not so stupid to allow adding/killing services.
First, as stealth said, *:lines don't need any specific exclusion. When a *:line is added, it's up to each server to enforce it (else, execpt tkl {} would be useless). Since services are a "server" it's up to them to enforce *:lines on their own "clients" (== the service bots). Services simply choose not to do that.
As for killing, have the service bots put themselves +S. This pretty much excludes any use of /kill by anyone short of a netadmin. Most services that properly support unreal do this.
Also, imho, punishing people over killing services is unnecessary. Just reintroduce the bot and be done with it. If an oper tries to DoS by repeatedly killing services, services will win because ulines, being technically servers, typically have higher send/recv buffers than opers, so the oper will flood himself out before he floods services out (even if the service must rejoin the bot to many channels). (And if he manages to somehow trigger "FATAL: introduce_user() loop" then another active op can just /gline him for that, or another active op can just gline him anyway for killflooding.) Plus if you do the +S suggestion, you could just SVSMODE -N / SVSO -N and be done with it that way, since without +N their killing spree is stopped short. Also, sometimes, /kill can be a good way to force a resynchronization, for whatever possible reasons.
As for killing, have the service bots put themselves +S. This pretty much excludes any use of /kill by anyone short of a netadmin. Most services that properly support unreal do this.
Also, imho, punishing people over killing services is unnecessary. Just reintroduce the bot and be done with it. If an oper tries to DoS by repeatedly killing services, services will win because ulines, being technically servers, typically have higher send/recv buffers than opers, so the oper will flood himself out before he floods services out (even if the service must rejoin the bot to many channels). (And if he manages to somehow trigger "FATAL: introduce_user() loop" then another active op can just /gline him for that, or another active op can just gline him anyway for killflooding.) Plus if you do the +S suggestion, you could just SVSMODE -N / SVSO -N and be done with it that way, since without +N their killing spree is stopped short. Also, sometimes, /kill can be a good way to force a resynchronization, for whatever possible reasons.