home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/perl
- #************************************************************************
- #* IRC - Internet Relay Chat, ircd/crypt/crypter
- #* Copyright (C) 1991 Sean Batt
- #*
- #* This program is free software; you can redistribute it and/or modify
- #* it under the terms of the GNU General Public License as published by
- #* the Free Software Foundation; either version 1, or (at your option)
- #* any later version.
- #*
- #* This program is distributed in the hope that it will be useful,
- #* but WITHOUT ANY WARRANTY; without even the implied warranty of
- #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- #* GNU General Public License for more details.
- #*
- #* You should have received a copy of the GNU General Public License
- #* along with this program; if not, write to the Free Software
- #* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #*/
-
- #From Sean Batt sean@coombs.anu.edu.au
- #
- #Temporary output file
- #
- $tmpfile = "/tmp/ircd.conf.tmp";
-
- #
- #Original ircd.conf file
- #
- $ircdconf = @ARGV[0];
-
- print "crypting ",$ircdconf,"\n";
- @saltset = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '.', '/');
-
- umask(0077);
- open ($ircdout, ">/tmp/ircd.conf.tmp") || die "open $!";
-
- while ($text = <>) {
- #if its not an "O" line we can ignore it
- $text =~ /^o/i || print ($ircdout $text) && next;
- chop($text);
- @oline = split(':', $text);
- $salt = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
- $oline[2] = crypt(@oline[2], $salt);
- print ($ircdout join(':',@oline)."\n");
- }
- close ($ircdout);
- close ($ircdin);
- print "/bin/cp ",$tmpfile," ",$ircdconf,"\n";
- (fork()==0) ? exec("/bin/cp", $tmpfile, $ircdconf) : wait;
-
- #unlink($tmpfile);
-