--- loncom/lond 2004/09/08 18:57:33 1.252 +++ loncom/lond 2004/09/14 10:27:22 1.254 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.252 2004/09/08 18:57:33 albertel Exp $ +# $Id: lond,v 1.254 2004/09/14 10:27:22 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -57,7 +57,7 @@ my $DEBUG = 0; # Non zero to ena my $status=''; my $lastlog=''; -my $VERSION='$Revision: 1.252 $'; #' stupid emacs +my $VERSION='$Revision: 1.254 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -1994,12 +1994,19 @@ sub remove_user_file_handler { if (-e $udir) { my $file=$udir.'/userfiles/'.$ufile; if (-e $file) { + # + # If the file is a regular file unlink is fine... + # However it's possible the client wants a dir. + # removed, in which case rmdir is more approprate: + # if (-f $file){ unlink($file); } elsif(-d $file) { rmdir($file); } if (-e $file) { + # File is still there after we deleted it ?!? + &Failure($client, "failed\n", "$cmd:$tail"); } else { &Reply($client, "ok\n", "$cmd:$tail"); @@ -3124,21 +3131,22 @@ sub put_course_id_handler { my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT()); if ($hashref) { foreach my $pair (@pairs) { - my ($key,$value)=split(/=/,$pair); - $hashref->{$key}=$value.':'.$now; + my ($key,$descr,$inst_code)=split(/=/,$pair); + $hashref->{$key}=$descr.':'.$inst_code.':'.$now; } if (untie(%$hashref)) { - &Reply($client, "ok\n", $userinput); + &Reply( $client, "ok\n", $userinput); } else { - &Failure( $client, "error: ".($!+0) + &Failure($client, "error: ".($!+0) ." untie(GDBM) Failed ". "while attempting courseidput\n", $userinput); } } else { - &Failure( $client, "error: ".($!+0) + &Failure($client, "error: ".($!+0) ." tie(GDBM) Failed ". "while attempting courseidput\n", $userinput); } + return 1; } @@ -3791,6 +3799,41 @@ sub get_institutional_code_format_handle 0,1,0); # +# Portofolio directory list: +# +# Parameters: +# cmd - Command request that got us called. +# tail - the remainder of the command line. In this case this is a colon +# separated list containing the username and domain. +# used to locate their portfolio. +# client - Socket openon the client. +# Returns: +# 1 indicating processing should continue. +# +sub list_portfolio { + my ($cmd, $tail, $client) = @_; + my ($uname, $udom) = split(/:/, $tail); + my $userinput = "$cmd:$tail"; + + my $udir=propath($udom,$uname).'/userfiles/portfolio'; + my $dirLine=''; + my $dirContents=''; + if (opendir(LSDIR,$udir.'/')){ + while ($dirLine = readdir(LSDIR)){ + $dirContents = $dirContents.$dirLine.'
'; + } + } else { + $dirContents = "No directory found\n"; + } + &Reply( $client, $dirContents."\n", $userinput); + + + + return 1; +} +®ister_handler("portls", \&list_portfolio, 0,1,0); + +# # # #