+++ /dev/null
-#
-# originally by kevin lenzo.
-# revamped by the xk.
-#
-
-if (&IsParam("useStrict")) { use strict; }
-
-sub IsFlag {
- my $flags = shift;
- my ($ret, $f, $o) = "";
-
- foreach $f (split //, $userList{$userHandle}{'flags'}) {
- foreach $o ( split //, $flags ) {
- next unless ($f eq $o);
-
- $ret = $f;
- last;
- }
- }
-
- $ret;
-}
-
-sub verifyUser {
- my ($nick, $lnuh) = @_;
- my ($user,$m);
-
- $userHandle = "";
-
- foreach $user (keys %userList) {
- foreach $m (keys %{$userList{$user}{'mask'}}) {
- $m =~ s/\?/./g;
- $m =~ s/\*/.*?/g;
- $m =~ s/([\@\(\)\[\]])/\\$1/g;
-
- next unless ($lnuh =~ /^$m$/i);
-
- if ($user !~ /^\Q$nick\E$/i) {
- &status("vU: host matched but diff nick ($nick != $user).");
- }
-
- $userHandle = $user;
- last;
- }
-
- last if ($userHandle ne "");
-
- if ($user =~ /^\Q$nick\E$/i) {
- &status("vU: nick matched but host is not in list ($lnuh).");
- }
- }
-
- $userHandle ||= "default";
- $talkWho{$talkchannel} = $who if (defined $talkchannel);
- $talkWho = $who;
-
- return $userHandle;
-}
-
-sub ckpasswd {
- # returns true if arg1 encrypts to arg2
- my ($plain, $encrypted) = @_;
- if ($encrypted eq "") {
- ($plain, $encrypted) = split(/\s+/, $plain, 2);
- }
- return 0 unless ($plain ne "" and $encrypted ne "");
-
- # MD5 // DES. Bobby Billingsley++.
- my $salt = substr($encrypted, 0, 2);
- if ($encrypted =~ /^\$\d\$(\w\w)\$/) {
- $salt = $1;
- }
-
- return ($encrypted eq crypt($plain, $salt));
-}
-
-# mainly for dcc chat... hrm.
-sub hasFlag {
- my ($flag) = @_;
-
- if (&IsFlag($flag) eq $flag) {
- return 1;
- } else {
- &status("DCC CHAT: <$who> $message -- not enough flags.");
- &performStrictReply("error: you do not have enough flags for that. ($flag required)");
- return 0;
- }
-}
-
-1;
+++ /dev/null
-#
-# UserFile.pl: Dynamic userfile loader
-# Author: dms
-# Version: v0.1 (20000822)
-# Created: 20000822
-# Status: NOT WORKING YET
-#
-#####
-# TODO: major overhaul to support dynamic userfile.
-# support ignore in this file aswell.
-#####
-
-if (&IsParam("useStrict")) { use strict; }
-
-# File: User List.
-sub NEWloadUsers {
- my ($file) = @_;
- %userList = (); # clear it.
-
- if (!open(FILE, $file)) {
- &ERROR("FAILED loadUsers ($file): $!");
- exit 0;
- }
-
- my $userName;
-
- while (<FILE>) {
- next if /^\s*$/;
- next if /^#/;
-
- if (/^UserEntry\s+(.+?)\s/) {
- $userName = $1;
- if (/\s*\{\s*/) {
- while (<FILE>) {
- if (/^\s*(\w+)\s+(.+);$/) {
- my ($opt,$val) = ($1,$2);
-
- $opt =~ tr/A-Z/a-z/;
- $val =~ s/\"//g;
- $val =~ s/\+// if ($opt =~ /^flags$/i);
-
- if ($opt =~ /^mask$/i) {
- $userList{$userName}{$opt}{$val} = 1;
- } else {
- $userList{$userName}{$opt} = $val;
- }
- } elsif (/^\s*\}\s*$/) {
- last;
- }
- }
- } else {
- &status("parse error: User Entry $userName without right brace");
- }
- }
- }
- close FILE;
-
- return unless (&IsParam("VERBOSITY"));
-
- $file =~ s/^.*\///;
- &status("Loaded userlist $file (". scalar(keys %userList) ." users)");
- foreach $userName (keys %userList) {
- &status(" $userName:");
- &status(" flags: +$userList{$userName}{'flags'}");
-
- foreach (keys %{$userList{$userName}{'mask'}}) {
- &status(" hostmask: $_");
- }
- }
-}
-
-1;