]> jfr.im git - irc/SurrealServices/srsv.git/commitdiff
Fixed some more stuff.. No more getuuid for normal users!
authorerry <redacted>
Sat, 23 Jul 2011 13:03:58 +0000 (13:03 +0000)
committererry <redacted>
Sat, 23 Jul 2011 13:03:58 +0000 (13:03 +0000)
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

14 files changed:
branches/0.5.0/SrSv/IRCd/Parse.pm
branches/0.5.0/SrSv/IRCd/Send.pm
branches/0.5.0/SrSv/Insp/Parse.pm
branches/0.5.0/SrSv/Insp/Send.pm
branches/0.5.0/SrSv/Unreal/Parse.pm
branches/0.5.0/SrSv/Unreal/Send.pm
branches/0.5.0/modules/core.pm
branches/0.5.0/modules/serviceslibs/adminserv.pm
branches/0.5.0/modules/serviceslibs/botserv.pm
branches/0.5.0/modules/serviceslibs/chanserv.pm
branches/0.5.0/modules/serviceslibs/hostserv.pm
branches/0.5.0/modules/serviceslibs/memoserv.pm
branches/0.5.0/modules/serviceslibs/nickserv.pm
branches/0.5.0/modules/serviceslibs/operserv.pm

index aef043a0d85a7889df1526e99b857da52e96d44c..b41efdd8a63b30ced4b611e25cd23e2e7efe9b2e 120000 (symlink)
@@ -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
index 48afa4ff9cbeb8e09ff1a7e8ccf17ab5c462bb60..2ccd2bf8ec1aee8bdd72bccccee3b08cc3834b98 120000 (symlink)
@@ -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
index 61e20d53db5bbf692314afe51de76bcaf4a666d9..f6413e960eef4f24bbb44fd5f4cdd42e97ce06e8 100644 (file)
@@ -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
        }
index c5b0a309e7b307cb6eaf4c3ff58f026099afd41f..67aeb197854124d3cdca6750e48493675453b919 100644 (file)
@@ -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");
index 9e159c53ac2198beb1056acc077b9321b1b0f9c8..d9455528eea4cebd9fec5026846c810738e846c4 100644 (file)
@@ -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.
 }
index d0db7ac4ee818f7b240410808cd192178c6e573e..7e0a161a387d53be6923b87968790e7677768d0e 100644 (file)
@@ -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;
index 7384a1e9da1343199809d72e79c5e922f0bed582..633db2f63fbf7fa5d59ae08c98bdeacd9e189895 100644 (file)
@@ -117,7 +117,7 @@ sub dispatch {
        }
 }
 
-sub init { }
+sub init { $rsUser = { NICK => $rsnick, ID => ircd::getAgentUuid($rsnick) };}
 sub begin { }
 sub end { }
 sub unload { }
index d2473cbbcee2ab7340f38b1dfb6f2b460596aed9..b2ba094b11b9ec0d490ea9a1c51ab0da27c9587f 100644 (file)
@@ -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");
 
index 4b35086268077ad77eb8d771d8d74a1dfdaad4c1..2085b6749cc378ec43e711b180383322fc6cbc59 100644 (file)
@@ -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 {
index 0c245837844b6d1611831eb5182dacc64eff97ff..108af76732eb190a654786b65aba491f29c8111d 100644 (file)
@@ -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};
index 376dab55d8a447987ebb2ab808f64d21e9d3e77f..7557c10b7889b25d89450568f8f891e50d7a4329 100644 (file)
@@ -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+//;
index a7e145d6a12cc1e9c8a5f2131a6fff2070205e90..d7c4d6cfeb1f3bd6cc3c617c477e9f449904386d 100644 (file)
@@ -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
index 19631885f2efe25631c7e7b116c8f97da83c84b7..ffd1b21bcc120682d396e793acc3f9e5ffd7aeda 100644 (file)
@@ -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=?");
index b8bf2b9ddbc462a8921c478cc2263f3e9b738755..f82fb5ed27ae52b2ce104bde3f20dadd1b3b061e 100644 (file)
@@ -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);