From: erry Date: Thu, 28 Jul 2011 13:51:09 +0000 (+0000) Subject: Fix stuff like sending hashes instead of nicks X-Git-Url: https://jfr.im/git/irc/SurrealServices/srsv.git/commitdiff_plain/86a50b128c4dbf158d30fe98ab40157e83c7b67f Fix stuff like sending hashes instead of nicks git-svn-id: http://svn.tabris.net/repos/srsv@3548 70d4eda1-72e9-0310-a436-91e5bd24443c --- diff --git a/branches/0.5.0/SrSv/IRCd/Validate.pm b/branches/0.5.0/SrSv/IRCd/Validate.pm index 3f28a486..1906838b 120000 --- a/branches/0.5.0/SrSv/IRCd/Validate.pm +++ b/branches/0.5.0/SrSv/IRCd/Validate.pm @@ -1 +1 @@ -/home/errietta/srsv/branches/0.5.0/SrSv/Unreal/Validate.pm \ No newline at end of file +/home/errietta/0.5.0/SrSv/Unreal/Validate.pm \ No newline at end of file diff --git a/branches/0.5.0/SrSv/Log.pm b/branches/0.5.0/SrSv/Log.pm index a0c29719..0b5877e0 100644 --- a/branches/0.5.0/SrSv/Log.pm +++ b/branches/0.5.0/SrSv/Log.pm @@ -62,6 +62,7 @@ open_log('diag', 'services.log'); open_log('netdump', 'netdump.log') if main::NETDUMP(); sub wlog($$$) { + my ($service, $level, $text) = @_; my $prefix; diff --git a/branches/0.5.0/SrSv/Unreal/Send.pm b/branches/0.5.0/SrSv/Unreal/Send.pm index 7e0a161a..19735139 100644 --- a/branches/0.5.0/SrSv/Unreal/Send.pm +++ b/branches/0.5.0/SrSv/Unreal/Send.pm @@ -541,7 +541,7 @@ sub irckill($$$) { my $targetN = $target->{NICK}; return 0 unless update_userkill($targetN); ircsendimm(":$srcN KILL $targetN ($reason)"); - callfuncs('KILL', 0, 1, [$srcN, $targetN, $srcN, $reason]); + callfuncs('KILL', 0, 1, [$src, $target, $srcN, $reason]); } sub svssno($$$) { @@ -728,13 +728,15 @@ sub unqline($) { } sub svskill($$$) { - my ($src, $target, $reason) = @_; + my ($srcUser, $targetUser, $reason) = @_; # SVSKILL requires a src, it will NOT work w/o one. # not sure if it'll accept a servername or not. # consider defaulting to ServServ - die('svskill called w/o $src') unless $src; - ircsend(':'.$src.' SVSKILL '.$target.' :'.$reason); - callfuncs('QUIT', 0, undef, [$target, $reason]); + my $srcN = $srcUser -> {NICK}; + my $targetN = $targetUser -> {NICK}; + die('svskill called w/o $srcUser') unless $srcUser; + ircsend(':'.$srcN.' SVSKILL '.$targetN.' :'.$reason); + callfuncs('QUIT', 0, undef, [$targetUser, $reason]); } sub version($) { diff --git a/branches/0.5.0/SrSv/User.pm b/branches/0.5.0/SrSv/User.pm index 1f08425e..673d9f58 100644 --- a/branches/0.5.0/SrSv/User.pm +++ b/branches/0.5.0/SrSv/User.pm @@ -344,7 +344,7 @@ sub get_host($) { my ($user) = @_; my $id; - if(ref($user)) { + if(ref($user) eq "HASH") { $id = get_user_id($user); } else { $id = get_user_id({ NICK => $user }); diff --git a/branches/0.5.0/modules/services.pm b/branches/0.5.0/modules/services.pm index 377b9ebb..d54455e7 100644 --- a/branches/0.5.0/modules/services.pm +++ b/branches/0.5.0/modules/services.pm @@ -170,10 +170,10 @@ addhandler('PRIVMSG', undef, lc services_conf_hostserv, 'hostserv::dispatch') if # $nick should be a registered root nick, if applicable # $src is the nick or nickid that sent the command sub ulog($$$$;$$) { + my ($service, $level, $text) = splice(@_, 0, 3); my $hostmask = nickserv::get_hostmask($_[0]); - # TODO - Record this in the database wlog($service, $level, "$hostmask - $text"); diff --git a/branches/0.5.0/modules/serviceslibs/nickserv.pm b/branches/0.5.0/modules/serviceslibs/nickserv.pm index ffd1b21b..e5565b59 100644 --- a/branches/0.5.0/modules/serviceslibs/nickserv.pm +++ b/branches/0.5.0/modules/serviceslibs/nickserv.pm @@ -1110,7 +1110,7 @@ sub ns_register($$$) { } $id_update->execute($src, $uid); $id_update->finish(); - services::ulog($nsuser, LOG_INFO(), "registered $src (email: $email)". + services::ulog($nsnick, LOG_INFO(), "registered $src (email: $email)". (services_conf_validate_email ? ' requires email validation code' : ''), $src); } else { @@ -2705,8 +2705,12 @@ sub authcode($;$$) { sub get_hostmask($) { my ($user) = @_; my ($ident, $host); - my $src = get_user_nick($user); - + my $src; + if (ref ($user) eq "HASH") { + print "WTF\n"; + $src = get_user_nick($user); + } + else { $src = $user; } ($ident, $host) = get_host($user); return "$src!$ident\@$host";