X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap-cgi.git;a=blobdiff_plain;f=Util.pm;h=27060d703c80000cd78b748590e095f19cdcd1a5;hp=7f19694faa6e72f1d5c595123fa0238d31fe61fe;hb=5cea731d1b6f9504bd695fd2f201761c35f71a2c;hpb=49bc81d424f8f855bd39d281a385d0de93151f63 diff --git a/Util.pm b/Util.pm index 7f19694..27060d7 100644 --- a/Util.pm +++ b/Util.pm @@ -7,7 +7,7 @@ package Util; use strict; use Date::Manip qw(ParseDate); -use Net::LDAP qw(:all); +use Net::LDAP qw(LDAP_SUCCESS LDAP_PROTOCOL_ERROR); use English; my $blocksize = 8; # A blowfish block is 8 bytes @@ -33,21 +33,26 @@ sub CreateKey { } sub CreateCryptSalt { + # CreateCryptSalt(type = 0, skip_header = 0) # this can create either a DES type salt or a MD5 salt + # 0 for DES, 1 for MD5 salt + # if skip_header is 0, does not add $1$ for md5 salts. my $md5 = shift; # do we want a MD5 salt? + my $no_crypttype_header = shift; my $validstr = './0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; my @valid = split(//,$validstr); my ($in, $out); - + my $cryptsaltlen = ($md5 ? 8 : 2); - + open (F, "No activity detected" if (!$lastseenpgp && !$lastseenfrom); + $lastseen = $lastseenpgp; $lastseen = $lastseenfrom if (!$lastseenpgp); if ($lastseenfrom && $lastseenpgp) { - ($d1) = ($lastseenpgp =~ /^\[(.+?)\]/); $d1 = ParseDate($d1); + ($d1) = ($lastseenpgp =~ /^\[(.+?)\]/); $d1 = ParseDate($d1); ($d2) = ($lastseenfrom =~ /^\[(.+?)\]/); $d2 = ParseDate($d2); $lastseen = (($d1 gt $d2) ? $lastseenpgp : $lastseenfrom); } - my ($date,$user,$list,$msgid) = ($lastseen =~ /^\[(.+?)\]\s+"(.+?)"\s+"(?:<(.+?)>.*?|\-)"\s+"<(.+?)>"/); + my ($date,$user,$list,$msgid) = ($lastseen =~ /^\[(.+?)\]\s+"(.+?)"\s+"(?:<(.+?)>.*?|\-)"\s+"(<.+?>)"/); $list = "on $list" if ($list); + $date = CGI::escapeHTML($date); + $user = CGI::escapeHTML($user); + $list = CGI::escapeHTML($list); + $msgid = CGI::escapeHTML($msgid); return "$date $list
 Message ID: $msgid"; } @@ -354,7 +364,7 @@ sub UpgradeConnection($) { $mesg->sync; if ($mesg->code != LDAP_SUCCESS) { print "Content-type: text/html; charset=utf-8\n\n"; - print "

STARTTLS failed: "..$mesg->error."

\n"; + print "

STARTTLS failed: ".$mesg->error."

\n"; exit(1); }; };