$agent = lc $agent; $chan = lc $chan;
if($agents{$agent} and $agents{$agent}{CHANS} and $agents{$agent}{CHANS}{$chan}) {
- print "$agent is in $chan\n";
return 1;
} else {
return 0;
}
sub agent_sync() {
foreach my $j (@defer_join) {
- print "Processing join: $j\n" if DEBUG;
my ($agent, $chan) = split(/ /, $j);
if($agents{lc $agent}) {
$agents{lc $agent}{CHANS}{lc $chan} = 1;
} else {
my $rsUser = {NICK=>$main::rsnick,ID=>"123AAAAAA"}; #FIXME - erry
ircd::irckill($rsUser, $srcUser, "Do not kill services agents.");
+ #ftr they can't if the bots have +k in insp.
}
&agent_connect(@{$agents{lc $dst}{PARMS}}) if synced();
}
sub UID ($) {
if ($_[0] =~ /^(:\S+) UID (\S+) (\d+) (\S+) (\S+) (\S+) (\S+) (\S+) (\d+) (\S+) :(.*)$/) {
- print "1111111111111\n";
- #:583 UID 583AAAAAJ 1307703236 erry__ localhost localhost errietta 127.0.0.1 1307703241 + :errietta
+ #:583 UID 583AAAAAJ 1307703236 erry__ localhost localhost errietta 127.0.0.1 1307703241 + :errietta
my ($server, $uid, $stamp, $nick, $host, $vhost, $ident, $IP, $ts, $modes, $gecos) = ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12);
- print "UID $uid " . decodeUUID($uid) . "\n";
my $user = { NICK => $nick, ID => decodeUUID($uid) };
return ('NICKCONN', undef, undef, WF_NICK, $user, 0, $ts, $ident, $host, $server, $stamp, $modes, $vhost, $gecos,
join('.', unpack('C4', MIME::Base64::decode($IP))));
}
elsif ($_[0] =~ /^(:\S+) UID (\S+) (\d+) (\S+) (\S+) (\S+) (\S+) (\S+) (\d+) (\S+) (\S+) :(.*)$/) {
- print "2222222\n";
#:965 UID 965AAAAAG 1311863295 erry arceus.pokemonlake.com IceFyre/NetAdmin/erry ~erry 216.14.116.138 1311863255 +IWhiosw +ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz :erry
my ($server, $uid, $stamp, $nick, $host, $vhost, $ident, $IP, $ts, $modes, $snomasks, $gecos) = ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12);
$modes .= " " . $snomasks;
- print "UID $uid " . decodeUUID($uid) . "\n";
my $user = { NICK => $nick, ID => decodeUUID($uid) };
return ('NICKCONN', undef, undef, WF_NICK, $user, 0, $ts, $ident, $host, $server, $stamp, $modes, $vhost, $gecos,
join('.', unpack('C4', MIME::Base64::decode($IP))));
return ($event, undef, undef, WF_ALL, $server);
}
else {
- print "wot\n";
$_[0] =~ /^:(\S+) ENDBURST/;
my $server = $1;
set_server_state($server, 1);
}
elsif ($_[0] =~ /^SERVER (\S+) (\S+) (\d+) (\S+) :(.*)$/) {
print "RIGHT ONE WHOO\n";
- #SERVER inspircd.erry.omg mypass 0 583 :erry World
#SERVER irc.icefyre.org mypass 0 965 :IceFyre IRC Hub
#SERVER servername password hopcount SID :Server Desc
print "FJOIN\n";
#>> 114 :965 FJOIN #erry 1305486096 +nt :o,00BAAAAAX qo,965AAAAAC
if ($_[0] =~ m"^:(\S+) FJOIN (\S+) (\d+) (\S+) :(.*)$") {
- print "?????FJ\n";
my ($server, $channel, $ts, $modes, $userstring) = ($1, $2, $3, $4, $5);
print "userstring $userstring";
my @users = split (" ", $userstring);
#>> 15 :583 FJOIN #opers 1310128904 +Pis :
#CHANNELS CONFIGURED TO STAY OPEN WITH CHMODE +P (INSP)
elsif ($_[0] =~ m"^:(\S+) FJOIN (\S+) (\d+) (\S+) :$") {
- print "WHOOOOOOF";
#FIXME - Update channel modes.
}
}
my $m = $4;
my $a = $5;
my $user;
- print "FMODE ID $id " . length($id);
if (length($id) > 3) { #UID
- print "FFFFFFFFFFF\n";
$user = {ID => decodeUUID($id)};
get_user_nick ($user);
}
my $argz = $5;
my @args = split(/ /, $argz);
my $modes = $4;
- print "============MODES $modes=================\n";
- print "5: $4\n";
- print "6: $5\n";
my @modes = split(//, $modes);
my @userargs;
foreach my $mode (@modes) {
elsif($_[0] =~ /^:(\S+) FMODE (#\S+) (\d+) (\S+) :(.*)$/) {
my $id = $1;
my $user;
- print "FMODE ID $id " . length($id);
if (length($id) > 3) { #UID
- print "FFFFFFFFFFF\n";
$user = {ID => decodeUUID($id)};
get_user_nick ($user);
}
my $argz = $5;
my @args = split(/ /, $argz);
my $modes = $4;
- print "============MODES $modes=================\n";
- print "5: $4\n";
- print "6: $5\n";
my @modes = split(//, $modes);
my @userargs;
foreach my $mode (@modes) {
my $argz = $6;
my @args = split(/ /, $argz);
my $modes = $5;
- print "============MODES $modes=================\n";
- print "5: $5\n";
- print "6: $6\n";
my @modes = split(//, $modes);
my $newargs = "";
foreach my $mode (@modes) {
my $id = encodeUUID($arg);
my $tuser = {ID=>$id};
my $nick = get_user_nick ($tuser);
- print "!!!!!!!!!!!1!!!!!$nick\n";
$newargs .= ($newargs eq ""?$nick:" $nick"); # what an awful way to do it.
}
my $arguements;
#---
#What we care about: CHANMODES :admin=&a founder=~q Determines if we can set +a and +q on people, halfop %h: likewise... cloak=x determines if we can have cloaks or vhosts. in the modules we care about chghost, chgident, cloaking for vhosts, m_silence and m_watch for silence and watch respectively. Also c_registered, we can _NOT_ continue w/o it.
#I HAVE NO IDEA where to get the watch/silence list limit!!!
-#let's do this the lame way!
- #FIXME this is so ugly
my $capab = $_[0];
print "CAPAB $_[0]\n";
$capab =~ /CAPAB (\S+)/;
my $remote = $main_conf{remote};
my $port = $main_conf{port};
ircd_connect($remote, $port);
- #ircsendimm('PROTOCTL '.($tkn ? 'TOKEN ' : '').'NICKv2 UMODE2 TKLEXT'.
- #(CLK ? ' CLK' : ' VHP'). # CLK obsoletes VHP. Plus if you leave VHP on, CLK doesn't work.
- # (NOQUIT ? ' NOQUIT' : '').(SJ3 ? ' SJOIN SJOIN2 SJ3' : '').
- # (NICKIP ? ' NICKIP' : '').
- # (SJB64 ? ' SJB64 NS VL' : ''),
- #CONNECTCRAP
ircsendimm( 'PASS :'.$main_conf{pass},
'SERVER '.$main_conf{local}.' ' . $main_conf{pass} . ' 0 ' .$main_conf{numeric} . ' ' .$main_conf{info} );
ircsendimm ('BURST ' .time);
}
}
sub endburst {
- print "ENDBURST\n";
agent_sync();
flushmodes(\%preconnect_defer_mode);
ircd_flush_queue();
}
sub eos {
- print "GOT EOS\n\n";
#foreach my $k (keys %servers) {
# print "Server: $k ircline: ",$servers{$k}[0], " state: ", $servers{$k}[1], "\n";
my ($setter, $host, $expiry, $reason) = @_;
$setter=$main_conf{local} unless defined($setter);
my $setId = getAgentUuid($setter);
- if ($setId) { $setter = $setId; }
- #:583AAAAAE ADDLINE Z test.com inspircd.erry.omg 1308216407 0 :go away
+ if ($setId) { $setter = $setId; }
+ #:583AAAAAE ADDLINE Z test.com inspircd.erry.omg 1308216407 0 :go away
my $line = ":$setter ADDLINE Z $host " . $main_conf{local} . " ". time() . " " . ($expiry)." :$reason";
ircsend($line);
callfuncs('TKL', undef, undef, [parse_addline($line)]);
ircsend(":$main_conf{local} SVSNOOP $targetserver $bool");
}
-#START TODO - erry
sub svswatch ($$@) {
-# Changes the WATCH list of a user.
-# Syntax: SVSWATCH <nick> :<watch parameters>
-# Example: SVSWATCH Blah :+Blih!*@* -Bluh!*@* +Bleh!*@*.com
-# *** We do not track this info nor care.
my ($src, $target, @watchlist) = @_;
- my $srcId = ($src->{ID}?$src->{ID}:$src->{NICK});
+ my $srcId = ($src->{ID}?$src->{ID}:$src->{NICK});
my $targetId = ($target->{ID}?encodeUUID_($target):$target->{NICK});
my $base_str = ":$srcId SVSWATCH $targetId ";
my $send_str = $base_str;
$src = $main_conf{local} unless defined($src);
ircsend(":$src SWHOIS $target :$swhois");
}
-#END TODO - erry
sub svsjoin($$@) {
my ($src, $target, @chans) = @_;
sub qline($$$) {
my ($nickmask, $expiry, $reason) = @_;
#:583AAAAAA ADDLINE Q hell3o inspircd.erry.omg 1308295479 600 :Bye Bye
-
my $line = ':' . $main_conf{numeric} . ' ADDLINE Q '.$nickmask . ' ' . $main_conf{local} . ' '. time() . ' ' . ($expiry ? $expiry : 0).' :'.$reason;
ircsend($line);
sub unqline($) {
my ($nickmask) = @_;
-# TKL version
-# TKL - Q * test services.SC.net
- my $line = 'TKL - Q * '.$nickmask.' '.$main_conf{local};
+ #>> 37 :583AAAAAA DELLINE Q errietta3
+ my $line = ':' . $main_conf{numeric} . ' DELLINE Q '.$nickmask;
ircsend($line);
callfuncs('TKL', undef, undef, [parse_tkl($line)]);
}
our (%flags, @levels, @defflags, $allflags);
-our $asnick_default = 'AdminServ';
+our $asnick_default = 'AdminServ1';
our $asnick = $asnick_default;
our $asuser = { NICK => $asnick, ID => ircd::getAgentUuid($asnick) };
F_DEAF => 2
};
-our $bsnick_default = 'BotServ';
+our $bsnick_default = 'BotServ1';
our $bsnick = $bsnick_default;
our $botchmode;
our $bsuser = { NICK => $bsnick, ID => ircd::getAgentUuid($bsnick) };
unless(is_agent_in_chan($nick, $cn)) {
agent_join($bot, $cn);
my $bot2 = { NICK => $nick, ID => ircd::getAgentUuid($nick), UID=>ircd::getAgentUuid($nick) };
- print "FOUNDERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR " . $IRCd_capabilities{"FOUNDER"};
if(!ircd::PREFIXAQ_DISABLE() && $IRCd_capabilities{"FOUNDER"} ne "" && $IRCd_capabilities{"ADMIN"} ne "") {
$botchmode = '+q';
} else {
$u = agent($chan) unless $u;
my $nick = $u->{NICK};
return if (lc $chanserv::enforcers{lc $cn} eq lc $nick);
- print "nick $nick $bot $cn $reason $empty\n";
if(is_agent_in_chan($nick, $cn)) {
if(lc $bot eq lc $nick) {
if(cr_chk_flag($chan, CRF_BOTSTAY(), 1) or ($empty != 1 or chanserv::get_user_count($chan))) {
- print "count " . chanserv::get_user_count($chan);
return;
}
}
- print "????\n";
agent_part($nick, $cn, $reason);
}
}
$chanuser_table = 0;
-our $csnick_default = 'ChanServ';
+our $csnick_default = 'ChanServ1';
our $csnick = $csnick_default;
our $csUser = { NICK => $csnick, ID => ircd::getAgentUuid($csnick) };
my ($nick, $override) = can_do($chan, ($ban ? 'BAN' : 'KICK'), $user, { ACC => $srclevel });
if (!$nick) {
- print "NO NICK???\n";
return;
}
if($ban) {
kickban($chan, $tuser, undef, $reason, 1);
} else {
- print "is service? " , adminserv::is_service($user);
ircd::kick(agent($chan), $cn, $tuser, $reason) unless adminserv::is_service($user);
}
}
my $user = { NICK => $nick };
get_user_id ($user);
my $opmodes = get_op($user, $chan);
- print "OPMODES $opmodes\n";
for(my $i; $i < 5; $i++) {
if($opmodes & 2**$i) {
push @modelist, ['-'.$opmodes[$i], $user];
sub handle_sjoin($$$$$$$) {
my ($server, $cn, $ts, $chmodes, $chmodeparms, $userarray, $banarray, $exceptarray) = @_;
my $chan = { CHAN => $cn };
- print "handle_sjoin\n";
- print "USERS: " . Dumper(@$userarray);
if(synced()) {
chan_mode($server, $cn, $chmodes, $chmodeparms) if $chmodes;
} else {
update_modes($cn, "$chmodes $chmodeparms") if $chmodes;
}
- print "hm?\n";
user_join_multi($chan, $userarray) if scalar @$userarray;
foreach my $ban (@$banarray) {
}
sub user_join_multi($$) {
- print "user_join_multi\n";
my ($chan, $users) = @_;
my $cn = $chan->{CHAN};
my $seq = $ircline;
}
my $uid = get_user_id($user);
- print "part uid $uid\n";
my $seq = $ircline;
$get_joinpart_lock->execute; $get_joinpart_lock->finish;
sub chan_mode($$$$@) {
my ($user, $cn, $modes, $args, @userargs) = @_;
- print "CHAN_MODE $user $cn $modes $args\n";
my $src;
if (ref($user) eq "HASH") {
$src = $user->{NICK};
next if $arg eq '';
next if is_agent($arg);
my $auser = shift (@userargs);
- print "Auser " , Dumper ($auser);
$num = 0 if $mode eq 'v';
$num = 1 if $mode eq 'h';
$num = 2 if $mode eq 'o';
require SrSv::DB::StubGen;
-our $hsnick_default = 'HostServ';
+our $hsnick_default = 'HostServ1';
our $hsnick = $hsnick_default;
our $hsuser = { NICK => $hsnick, ID => ircd::getAgentUuid($hsnick) };
sub init() {
MAX_MEMO_LEN => 400
);
-our $msnick_default = 'MemoServ';
+our $msnick_default = 'MemoServ1';
our $msnick = $msnick_default;
our $msuser = { NICK => $msnick, ID => ircd::getAgentUuid($msnick) };
our (
MAX_PROFILE_LEN => 250,
};
-our $nsnick_default = 'NickServ';
+our $nsnick_default = 'NickServ1';
our $nsnick = $nsnick_default;
our $nsuser = { NICK => $nsnick, ID => ircd::getAgentUuid($nsnick) }; #FIXME - erry
our $cur_lock;
my ($ident, $host);
my $src;
if (ref ($user) eq "HASH") {
- print "WTF\n";
$src = get_user_nick($user);
}
else { $src = $user; }
my $user = { NICK => $nick, AGENT => $nsuser };
get_user_id($user);
if (is_identified($user, $nick)) {
- print "Line 2778\n";
$update_nickalias_last->execute($nick); $update_nickalias_last->finish();
return;
}
- elsif(!(is_online($nick)) or !(is_registered($nick))) { print "Line 2782\n"; return; }
+ elsif(!(is_online($nick)) or !(is_registered($nick))) { return; }
if($rem == 0) {
notice($user, 'Your nick is now being changed.');
$get_umodes->execute($uid);
my ($umodes) = $get_umodes->fetchrow_array;
$get_umodes->finish();
- print "UMODES $umodes\n";
return $umodes;
};
my $nick = $user->{NICK};
get_lock($nick);
my $id = get_user_id($user);
- print "DELETE: $nick, $id\n";
$del_nickchg_id->execute($id); $del_nickchg_id->finish();
$quit_update->execute($quit, $id); $quit_update->finish();
$update_lastseen->execute($id); $update_lastseen->finish();
my ($user, $new, $time) = @_;
my $old = $user->{NICK};
return if(lc $old eq lc $new);
- print "NICK CHANGE: $old -> $new ($time)\n";
get_lock($old);
nick_cede($new);
$nick_change->execute($new, $old);
my ($srcUser, $dstUser, $path, $reason) = @_;
my $dst = $dstUser->{NICK};
my $src = $srcUser->{NICK};
- print "KILL $src $dst\n";
unless (is_agent($dst)) {
nick_delete($dstUser, "Killed ($src ($reason))");
}
*kill_user = \&nickserv::kill_user;
-our $osnick_default = 'OperServ';
+our $osnick_default = 'OperServ1';
our $osnick = $osnick_default;
our $osuser = { NICK => $osnick, ID => ircd::getAgentUuid($osnick) };
my %newstypes = (
## IRC EVENTS ##
1;
+