From: erry Date: Sat, 23 Jul 2011 13:03:58 +0000 (+0000) Subject: Fixed some more stuff.. No more getuuid for normal users! X-Git-Url: https://jfr.im/git/irc/SurrealServices/srsv.git/commitdiff_plain/1eb006d92f519067afaa2f32b2e856ba2b9477e6 Fixed some more stuff.. No more getuuid for normal users! It works well in unreal AND insp Next is to solve the mystery of commands being sent with :HASH(Something) as source git-svn-id: http://svn.tabris.net/repos/srsv@3545 70d4eda1-72e9-0310-a436-91e5bd24443c --- diff --git a/branches/0.5.0/SrSv/IRCd/Parse.pm b/branches/0.5.0/SrSv/IRCd/Parse.pm index aef043a0..b41efdd8 120000 --- a/branches/0.5.0/SrSv/IRCd/Parse.pm +++ b/branches/0.5.0/SrSv/IRCd/Parse.pm @@ -1 +1 @@ -../Insp/Parse.pm \ No newline at end of file +/home/errietta/srsv/branches/0.5.0/SrSv/Unreal/Parse.pm \ No newline at end of file diff --git a/branches/0.5.0/SrSv/IRCd/Send.pm b/branches/0.5.0/SrSv/IRCd/Send.pm index 48afa4ff..2ccd2bf8 120000 --- a/branches/0.5.0/SrSv/IRCd/Send.pm +++ b/branches/0.5.0/SrSv/IRCd/Send.pm @@ -1 +1 @@ -../Insp/Send.pm \ No newline at end of file +/home/errietta/srsv/branches/0.5.0/SrSv/Unreal/Send.pm \ No newline at end of file diff --git a/branches/0.5.0/SrSv/Insp/Parse.pm b/branches/0.5.0/SrSv/Insp/Parse.pm index 61e20d53..f6413e96 100644 --- a/branches/0.5.0/SrSv/Insp/Parse.pm +++ b/branches/0.5.0/SrSv/Insp/Parse.pm @@ -828,6 +828,9 @@ sub CAPAB { if ($capab =~ /founder=(\S)(\S)/) { $IRCd_capabilities{"FOUNDER"} = $2; } + if ($capab =~ /halfop=(\S)(\S)/) { + $IRCd_capabilities{"HALFOP"} = $2; + } if ($capab =~ /silence/) { $IRCd_capabilities{"SILENCE"} = 32; #unless we can make it TELL US } diff --git a/branches/0.5.0/SrSv/Insp/Send.pm b/branches/0.5.0/SrSv/Insp/Send.pm index c5b0a309..67aeb197 100644 --- a/branches/0.5.0/SrSv/Insp/Send.pm +++ b/branches/0.5.0/SrSv/Insp/Send.pm @@ -781,6 +781,7 @@ sub userip($) { sub chghost($$$) { my ($src, $target, $vhost) = @_; + print "SRC " . Dumper ($src); my $srcId = ($src->{ID}?$src->{ID}:$src->{NICK}); my $targetId = ($target->{ID}?encodeUUID_($target):$target->{NICK}); ircsend(($srcId?":$srcId ":'')." CHGHOST $targetId $vhost"); diff --git a/branches/0.5.0/SrSv/Unreal/Parse.pm b/branches/0.5.0/SrSv/Unreal/Parse.pm index 9e159c53..d9455528 100644 --- a/branches/0.5.0/SrSv/Unreal/Parse.pm +++ b/branches/0.5.0/SrSv/Unreal/Parse.pm @@ -685,6 +685,7 @@ sub ISUPPORT($) { $IRCd_capabilities{"SILENCE"} = 32; $IRCd_capabilities{"WATCH"} = 32; $IRCd_capabilities{"REG"} = 1; + $IRCd_capabilities{"HALFOP"} = 'h'; $IRCd_capabilities{"INSP"} = 0; # so ugly. Ugly Ugly UGLY. } diff --git a/branches/0.5.0/SrSv/Unreal/Send.pm b/branches/0.5.0/SrSv/Unreal/Send.pm index d0db7ac4..7e0a161a 100644 --- a/branches/0.5.0/SrSv/Unreal/Send.pm +++ b/branches/0.5.0/SrSv/Unreal/Send.pm @@ -78,17 +78,16 @@ addhandler('SEOS', undef(), undef(), 'ircd::eos', 1); addhandler('NETINFO', undef(), undef(), 'ircd::netinfo', 1); addhandler('VERSION', undef(), undef(), 'ircd::version', 1); addhandler('SERVER', undef(), undef(), 'ircd::handle_server', 1); -sub setUuid ($$) { - return undef; +sub getAgentRevUuid($) { + return undef; } -sub setRevUuid ($$) { - return undef; +sub getAgentUuid($) { + return undef; } -sub getUuid ($) { - return undef; +sub setAgentRevUuid ($$) { } -sub getRevUuid ($) { - return undef; +sub setAgentUuid ($$) { + } sub serv_connect() { my $remote = main_conf_remote; diff --git a/branches/0.5.0/modules/core.pm b/branches/0.5.0/modules/core.pm index 7384a1e9..633db2f6 100644 --- a/branches/0.5.0/modules/core.pm +++ b/branches/0.5.0/modules/core.pm @@ -117,7 +117,7 @@ sub dispatch { } } -sub init { } +sub init { $rsUser = { NICK => $rsnick, ID => ircd::getAgentUuid($rsnick) };} sub begin { } sub end { } sub unload { } diff --git a/branches/0.5.0/modules/serviceslibs/adminserv.pm b/branches/0.5.0/modules/serviceslibs/adminserv.pm index d2473cbb..b2ba094b 100644 --- a/branches/0.5.0/modules/serviceslibs/adminserv.pm +++ b/branches/0.5.0/modules/serviceslibs/adminserv.pm @@ -90,6 +90,7 @@ our ( ); sub init() { + $asuser = { NICK => $asnick, ID => ircd::getAgentUuid($asnick) }; $create_svsop = $dbh->prepare("INSERT IGNORE INTO svsop SELECT id, NULL, NULL FROM nickreg WHERE nick=?"); $delete_svsop = $dbh->prepare("DELETE FROM svsop USING svsop, nickreg WHERE nickreg.nick=? AND svsop.nrid=nickreg.id"); diff --git a/branches/0.5.0/modules/serviceslibs/botserv.pm b/branches/0.5.0/modules/serviceslibs/botserv.pm index 4b350862..2085b674 100644 --- a/branches/0.5.0/modules/serviceslibs/botserv.pm +++ b/branches/0.5.0/modules/serviceslibs/botserv.pm @@ -63,6 +63,7 @@ our ( ); sub init() { + $bsuser = { NICK => $bsnick, ID => ircd::getAgentUuid($bsnick) }; $get_all_bots = $dbh->prepare("SELECT nick, ident, vhost, gecos, flags FROM bot"); $get_botchans = $dbh->prepare("SELECT chan, COALESCE(bot, '$chanserv::csnick') FROM chanreg WHERE bot != '' OR (flags & ". CRF_BOTSTAY() . ")"); $get_botstay_chans = $dbh->prepare("SELECT chan, COALESCE(bot, '$chanserv::csnick') FROM chanreg WHERE (flags & ". @@ -253,7 +254,7 @@ sub bs_assign($$$) { if($bot) { $assign_bot->execute($bot, $cn); - my $botUser = { NICK=>$bot, ID=>ircd::getAgentUUID ($bot) }; + my $botUser = { NICK=>$bot, ID=>ircd::getAgentUuid ($bot) }; bot_join($chan, $botUser); notice($user, "\002$bot\002 now assigned to \002$cn\002."); } else { @@ -879,6 +880,7 @@ sub bot_join($;$) { 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 { diff --git a/branches/0.5.0/modules/serviceslibs/chanserv.pm b/branches/0.5.0/modules/serviceslibs/chanserv.pm index 0c245837..108af767 100644 --- a/branches/0.5.0/modules/serviceslibs/chanserv.pm +++ b/branches/0.5.0/modules/serviceslibs/chanserv.pm @@ -216,6 +216,7 @@ our ( ); sub init() { + $csUser = { NICK => $csnick, ID => ircd::getAgentUuid($csnick) }; #$chan_create = $dbh->prepare("INSERT IGNORE INTO chan SET id=(RAND()*294967293)+1, chan=?"); $get_joinpart_lock = $dbh->prepare("LOCK TABLES chan WRITE, chanuser WRITE"); $get_modelock_lock = $dbh->prepare("LOCK TABLES chanreg READ LOCAL, chan WRITE"); @@ -1205,7 +1206,16 @@ sub cs_xop_add($$$$) { return unless defined($old); my $cn = $chan->{CHAN}; - + if ($level == 3 && $IRCd_capabilities{"HALFOP"} eq "") { + notice ($user, "m_halfop.so is required to add half ops."); + notice ($user, "Please notify your friendly network administrators to enable it."); + return; + } + if ($level == 5 && $IRCd_capabilities{"ADMIN"} eq "") { + notice ($user, "m_chanprotect.so is required to add SOPs."); + notice ($user, "Please notify your friendly network administrators to enable it."); + return; + } if($old == $level) { notice($user, "\002$nick\002 already has $levels[$level] access to \002$cn\002."); return; @@ -4242,6 +4252,9 @@ sub set_mode_mask($$$$) { if ($IRCd_capabilities{"ADMIN"} eq "") { $l[3] = 'o'; } + if ($IRCd_capabilities{"HALFOP"} eq "") { + $l[2] = "v"; + } if($masks[$sign] & 2**$i) { $out .= $l[$i]; my $user_ = { NICK => $nick, AGENT => $csnick}; diff --git a/branches/0.5.0/modules/serviceslibs/hostserv.pm b/branches/0.5.0/modules/serviceslibs/hostserv.pm index 376dab55..7557c10b 100644 --- a/branches/0.5.0/modules/serviceslibs/hostserv.pm +++ b/branches/0.5.0/modules/serviceslibs/hostserv.pm @@ -38,6 +38,7 @@ our $hsnick_default = 'HostServ'; our $hsnick = $hsnick_default; our $hsuser = { NICK => $hsnick, ID => ircd::getAgentUuid($hsnick) }; sub init() { +$hsuser = { NICK => $hsnick, ID => ircd::getAgentUuid($hsnick) }; import SrSv::DB::StubGen ( dbh => $dbh, generator => 'services_mysql_stubgen', @@ -57,7 +58,6 @@ services_mysql_stubgen( } sub dispatch($$$) { - $hsuser = { NICK => $hsnick, ID => ircd::getAgentUuid($hsnick) }; my ($user, $dstUser, $msg) = @_; my $src = $user->{NICK}; $msg =~ s/^\s+//; diff --git a/branches/0.5.0/modules/serviceslibs/memoserv.pm b/branches/0.5.0/modules/serviceslibs/memoserv.pm index a7e145d6..d7c4d6cf 100644 --- a/branches/0.5.0/modules/serviceslibs/memoserv.pm +++ b/branches/0.5.0/modules/serviceslibs/memoserv.pm @@ -67,6 +67,7 @@ our ( ); sub init() { + $msuser = { NICK => $msnick, ID => ircd::getAgentUuid($msnick) }; $get_first_unread = $dbh->prepare("SELECT memo.src, memo.chan, memo.time, memo.flag, memo.msg FROM memo, nickreg WHERE nickreg.nick=? AND memo.dstid=nickreg.id AND memo.flag=0 LIMIT 1"); $send_memo = $dbh->prepare("INSERT INTO memo SELECT ?, id, NULL, UNIX_TIMESTAMP(), NULL, ? FROM nickreg WHERE nick=?"); $send_chan_memo = $dbh->prepare("INSERT INTO memo SELECT ?, nickreg.id, ?, ?, NULL, ? FROM chanacc, nickreg diff --git a/branches/0.5.0/modules/serviceslibs/nickserv.pm b/branches/0.5.0/modules/serviceslibs/nickserv.pm index 19631885..ffd1b21b 100644 --- a/branches/0.5.0/modules/serviceslibs/nickserv.pm +++ b/branches/0.5.0/modules/serviceslibs/nickserv.pm @@ -184,6 +184,7 @@ our ( ); sub init() { + $nsuser = { NICK => $nsnick, ID => ircd::getAgentUuid($nsnick) }; $nick_check = $dbh->prepare("SELECT id FROM user WHERE nick=? AND online=0 AND time=?"); $nick_checkExists = $dbh -> prepare ("SELECT nick FROM user WHERE id=? AND time=?"); $nick_deleteChanUser = $dbh -> prepare ("DELETE FROM chanuser WHERE nickid=?"); diff --git a/branches/0.5.0/modules/serviceslibs/operserv.pm b/branches/0.5.0/modules/serviceslibs/operserv.pm index b8bf2b9d..f82fb5ed 100644 --- a/branches/0.5.0/modules/serviceslibs/operserv.pm +++ b/branches/0.5.0/modules/serviceslibs/operserv.pm @@ -38,7 +38,7 @@ use SrSv::NickReg::Flags qw(NRF_NOHIGHLIGHT nr_chk_flag_user); use SrSv::MySQL '$dbh'; use SrSv::IPv6; - +use Data::Dumper; use constant { MAX_LIM => 16777215 }; @@ -47,7 +47,7 @@ use constant { our $osnick_default = 'OperServ'; our $osnick = $osnick_default; -our $osuser = { NICK => $osnick, ircd::getAgentUuid($osnick) }; +our $osuser = { NICK => $osnick, ID => ircd::getAgentUuid($osnick) }; my %newstypes = ( u => 'User', o => 'Oper' @@ -77,6 +77,7 @@ our ( ); sub init() { + $osuser = { NICK => $osnick, ID => ircd::getAgentUuid($osnick) }; =cut $add_akill = $dbh->prepare("INSERT INTO akill SET setter=?, mask=?, reason=?, time=?, expire=?"); $del_akill = $dbh->prepare("DELETE FROM akill WHERE mask=?"); @@ -138,7 +139,7 @@ sub init() { } sub dispatch($$$) { - $osuser = { NICK => $osnick, ircd::getAgentUuid($osnick) }; + $osuser = { NICK => $osnick, ID => ircd::getAgentUuid($osnick) }; my ($user, $dstUser, $msg) = @_; $msg =~ s/^\s+//; my @args = split(/\s+/, $msg);