--- loncom/lond	2006/02/07 16:43:22	1.305.2.3
+++ loncom/lond	2006/05/18 19:58:36	1.305.2.6
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.305.2.3 2006/02/07 16:43:22 albertel Exp $
+# $Id: lond,v 1.305.2.6 2006/05/18 19:58:36 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -61,7 +61,7 @@ my $status='';
 my $lastlog='';
 my $lond_max_wait_time = 13;
 
-my $VERSION='$Revision: 1.305.2.3 $'; #' stupid emacs
+my $VERSION='$Revision: 1.305.2.6 $'; #' stupid emacs
 my $remoteVERSION;
 my $currenthostid="default";
 my $currentdomainid;
@@ -2291,7 +2291,9 @@ sub token_auth_user_file_handler {
     if (open(ENVIN,$perlvar{'lonIDsDir'}.'/'.
 	     $session.'.id')) {
 	while (my $line=<ENVIN>) {
-	    if ($line=~ m|userfile\.\Q$fname\E\=|) { $reply="ok\n"; }
+	    my ($envname)=split(/=/,$line,2);
+	    $envname=&unescape($envname);
+	    if ($envname=~ m|^userfile\.\Q$fname\E|) { $reply="ok\n"; }
 	}
 	close(ENVIN);
 	&Reply($client, $reply, "$cmd:$tail");
@@ -4330,10 +4332,19 @@ sub photo_permission_handler {
     my $userinput               = "$cmd:$tail";
     my $cdom = $tail;
     my ($perm_reqd,$conditions);
-    my $outcome = &localenroll::photo_permission($cdom,\$perm_reqd,
-						 \$conditions);
-    &Reply($client, &escape($outcome.':'.$perm_reqd.':'. $conditions)."\n",
-	   $userinput);
+    my $outcome;
+    eval {
+	local($SIG{__DIE__})='DEFAULT';
+	$outcome = &localenroll::photo_permission($cdom,\$perm_reqd,
+						  \$conditions);
+    };
+    if (!$@) {
+	&Reply($client, &escape($outcome.':'.$perm_reqd.':'. $conditions)."\n",
+	       $userinput);
+    } else {
+	&Failure($client,"unknown_cmd\n",$userinput);
+    }
+    return 1;
 }
 &register_handler("autophotopermission",\&photo_permission_handler,0,1,0);
 
@@ -4358,6 +4369,7 @@ sub photo_check_handler {
     my $result = &localstudentphoto::fetch($udom,$uname,$pid,\$response);
     $result .= ':'.$response;
     &Reply($client, &escape($result)."\n",$userinput);
+    return 1;
 }
 &register_handler("autophotocheck",\&photo_check_handler,0,1,0);
 
@@ -4371,8 +4383,17 @@ sub photo_choice_handler {
     my ($cmd, $tail, $client) = @_;
     my $userinput             = "$cmd:$tail";
     my $cdom                  = &unescape($tail);
-    my ($update,$comment) = &localenroll::manager_photo_update($cdom);
-    &Reply($client,&escape($update).':'.&escape($comment)."\n",$userinput);
+    my ($update,$comment);
+    eval {
+	local($SIG{__DIE__})='DEFAULT';
+	($update,$comment)    = &localenroll::manager_photo_update($cdom);
+    };
+    if (!$@) {
+	&Reply($client,&escape($update).':'.&escape($comment)."\n",$userinput);
+    } else {
+	&Failure($client,"unknown_cmd\n",$userinput);
+    }
+    return 1;
 }
 &register_handler("autophotochoice",\&photo_choice_handler,0,1,0);
 
@@ -4405,7 +4426,10 @@ sub student_photo_handler {
     &mkpath($path);
     my $file;
     if ($type eq 'thumbnail') {
-        $file=&localstudentphoto::fetch_thumbnail($domain,$uname);
+	eval {
+	    local($SIG{__DIE__})='DEFAULT';
+	    $file=&localstudentphoto::fetch_thumbnail($domain,$uname);
+	};
     } else {
         $file=&localstudentphoto::fetch($domain,$uname);
     }
@@ -5127,7 +5151,7 @@ sub sub_sql_reply {
                                       Type    => SOCK_STREAM,
                                       Timeout => 10)
        or return "con_lost";
-    print $sclient "$cmd\n";
+    print $sclient "$cmd:$currentdomainid\n";
     my $answer=<$sclient>;
     chomp($answer);
     if (!$answer) { $answer="con_lost"; }