[LON-CAPA-cvs] cvs: loncom(version_2_5_X) / lond

albertel lon-capa-cvs-allow@mail.lon-capa.org
Sat, 29 Sep 2007 04:05:29 -0000


albertel		Sat Sep 29 00:05:29 2007 EDT

  Modified files:              (Branch: version_2_5_X)
    /loncom	lond 
  Log:
  - backport 1.382
  
  
Index: loncom/lond
diff -u loncom/lond:1.380 loncom/lond:1.380.2.1
--- loncom/lond:1.380	Thu Aug 23 13:39:51 2007
+++ loncom/lond	Sat Sep 29 00:05:29 2007
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.380 2007/08/23 17:39:51 albertel Exp $
+# $Id: lond,v 1.380.2.1 2007/09/29 04:05:29 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -59,7 +59,7 @@
 my $status='';
 my $lastlog='';
 
-my $VERSION='$Revision: 1.380 $'; #' stupid emacs
+my $VERSION='$Revision: 1.380.2.1 $'; #' stupid emacs
 my $remoteVERSION;
 my $currenthostid="default";
 my $currentdomainid;
@@ -2095,6 +2095,37 @@
 &register_handler("renameuserfile", \&rename_user_file_handler, 0,1,0);
 
 #
+#  Checks if the specified user has an active session on the server
+#  return ok if so, not_found if not
+#
+# Parameters:
+#   cmd      - The request keyword that dispatched to tus.
+#   tail     - The tail of the request (colon separated parameters).
+#   client   - Filehandle open on the client.
+# Return:
+#    1.
+sub user_has_session_handler {
+    my ($cmd, $tail, $client) = @_;
+
+    my ($udom, $uname) = map { &unescape($_) } (split(/:/, $tail));
+    
+    &logthis("Looking for $udom $uname");
+    opendir(DIR,$perlvar{'lonIDsDir'});
+    my $filename;
+    while ($filename=readdir(DIR)) {
+	last if ($filename=~/^\Q$uname\E_\d+_\Q$udom\E_/);
+    }
+    if ($filename) {
+	&Reply($client, "ok\n", "$cmd:$tail");
+    } else {
+	&Failure($client, "not_found\n", "$cmd:$tail");
+    }
+    return 1;
+
+}
+&register_handler("userhassession", \&user_has_session_handler, 0,1,0);
+
+#
 #  Authenticate access to a user file by checking that the token the user's 
 #  passed also exists in their session file
 #