[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 @@
®ister_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;
+
+}
+®ister_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
#