if (&IsParam("useStrict")) { use strict; }
sub IsFlag {
- my $flags = $_[0];
+ my $flags = shift;
my ($ret, $f, $o) = "";
- my @ind = split //, $flags;
-
- $userHandle ||= "default";
-
- &DEBUG("isFlag: userHandle == '$userHandle'.");
foreach $f (split //, $userList{$userHandle}{'flags'}) {
- foreach $o (@ind) {
+ foreach $o ( split //, $flags ) {
next unless ($f eq $o);
$ret = $f;
last;
}
}
+
$ret;
}
sub verifyUser {
my ($nick, $lnuh) = @_;
-# my ($n,$u,$h) = ($lnuh =~ /^(\S+)!(\S+)\@(\S+)$/);
my ($user,$m);
- $userHandle = "default";
- ### FIXME: THIS NEEDS TO BE FIXED TO RECOGNISE HOSTMASKS!!!
- my $userinlist = "";
foreach $user (keys %userList) {
- ### Hack for time being.
- if (0) {
- if ($user =~ /^\Q$nick\E$/i) {
- &DEBUG("vU: setting uH => '$user'.");
- $userHandle = $user;
- last;
- }
- next;
- } else {
- $userinlist = $user if ($user =~ /^\Q$nick\E$/);
- }
-
foreach $m (keys %{$userList{$user}{'mask'}}) {
$m =~ s/\?/./g;
$m =~ s/\*/.*?/g;
$m =~ s/([\@\(\)\[\]])/\\$1/g;
next unless ($lnuh =~ /^$m$/i);
- &DEBUG("vUser: $lnuh matched masked ($m). Good!");
+
+ if ($user !~ /^\Q$nick\E$/i) {
+ &status("vU: host matched but diff nick ($nick != $user).");
+ }
$userHandle = $user;
- $userinlist = "";
last;
}
- last if ($userHandle ne "");
- }
- if ($userinlist and $userHandle eq "") {
- &DEBUG("vUser: user is in list but wrong host.");
- $userHandle = $userinlist;
- }
+ last if ($userHandle ne "");
- # seen.
- if (&IsParam("seen") and $msgType =~ /public/) {
- $seencache{$who}{'time'} = time();
- $seencache{$who}{'nick'} = $orig{who};
- $seencache{$who}{'host'} = $uh;
- $seencache{$who}{'chan'} = $talkchannel;
- $seencache{$who}{'msg'} = $orig{message};
- $seencache{$who}{'msgcount'}++;
+ if ($user =~ /^\Q$nick\E$/i) {
+ &status("vU: nick matched but host is not in list ($lnuh).");
+ }
}
-# $talkWho{$talkchannel} = $orig{who};
-# $talkWho = $orig{who};
-### FIXME HERE.
+ $userHandle ||= "default";
$talkWho{$talkchannel} = $who if (defined $talkchannel);
$talkWho = $who;