--- loncom/lond 2004/04/07 09:39:18 1.178.2.14 +++ loncom/lond 2004/04/19 11:28:18 1.178.2.17 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.178.2.14 2004/04/07 09:39:18 foxr Exp $ +# $Id: lond,v 1.178.2.17 2004/04/19 11:28:18 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -53,7 +53,7 @@ my $DEBUG = 1; # Non zero to ena my $status=''; my $lastlog=''; -my $VERSION='$Revision: 1.178.2.14 $'; #' stupid emacs +my $VERSION='$Revision: 1.178.2.17 $'; #' stupid emacs my $remoteVERSION; my $currenthostid; my $currentdomainid; @@ -796,7 +796,7 @@ sub ChangePasswordHandler { # First require that the user can be authenticated with their # old password: - my $validated = ValidUser($udom, $uname, $upass); + my $validated = ValidateUser($udom, $uname, $upass); if($validated) { my $realpasswd = GetAuthType($udom, $uname); # Defined since authd. @@ -1138,10 +1138,7 @@ sub FetchUserFileHandler { } RegisterHandler("fetchuserfile", \&FetchUserFileHandler, 0, 1, 0); # -# Authenticate access to a user file. Question? The token for athentication -# is allowed to be sent as cleartext is this really what we want? This token -# represents the user's session id. Once it is forged does this allow too much -# access?? +# Authenticate access to a user file. # # Parameters: # $cmd - The command that got us here. @@ -1617,7 +1614,7 @@ sub GetProfileEntryEncrypted { return 1; } -RegisterHandler("eget", \&GetProfileEncrypted, 0, 1, 0); +RegisterHandler("eget", \&GetProfileEntryEncrypted, 0, 1, 0); # # Deletes a key in a user profile database. @@ -1848,7 +1845,8 @@ sub DumpWithRegexp { } RegisterHandler("dump", \&DumpWithRegexp, 0, 1, 0); -# Store an aitem in any database but the roles database. +# Store an aitem in any resource meta data(?) or database with +# versioning? # # Parameters: # $cmd - Request command keyword. @@ -2223,19 +2221,24 @@ sub DumpCourseIdHandler { } unless (defined($since)) { $since=0; } my $qresult=''; - + logthis(" Looking for $description since $since"); my $hashref = TieDomainHash($udom, "nohist_courseids", &GDBM_WRCREAT()); if ($hashref) { while (my ($key,$value) = each(%$hashref)) { my ($descr,$lasttime)=split(/\:/,$value); + logthis("Got: key = $key descr = $descr time: $lasttime"); if ($lasttime<$since) { + logthis("Skipping .. too early"); next; } if ($description eq '.') { + logthis("Adding wildcard match"); $qresult.=$key.'='.$descr.'&'; } else { my $unescapeVal = &unescape($descr); + logthis("Matching with $unescapeVal"); if (eval('$unescapeVal=~/$description/i')) { + logthis("Adding on match"); $qresult.="$key=$descr&"; } } @@ -2382,7 +2385,8 @@ sub TmpPutHandler { my $store; $tmpsnum++; - my $id=$$.'_'.$clientip.'_'.$tmpsnum; + my $pid = $$; + my $id=$$.'_'.$clientip.'_'.$tmpsnum.'_'.$pid; $id=~s/\W/\_/g; $what=~s/\n//g; my $execdir=$perlvar{'lonDaemons'}; @@ -4494,6 +4498,7 @@ sub make_passwd_file { # my $uid = getpwnam($uname); if((defined $uid) && ($uid == 0)) { + &logthis(">>>Attempted add of privileged account blocked<<<"); return "no_priv_account_error\n"; } @@ -4509,7 +4514,9 @@ sub make_passwd_file { my $useraddok = $?; if($useraddok > 0) { - &logthis("Failed lcuseradd: ".&lcuseraddstrerror($useraddok)); + my $lcstring = lcuseraddstrerror($useraddok); + &logthis("Failed lcuseradd: $lcstring"); + return "error: lcuseradd failed: $lcstring\n"; } my $pf = IO::File->new(">$passfilename"); print $pf "unix:\n";