[LON-CAPA-cvs] cvs: loncom / lond

foxr lon-capa-cvs@mail.lon-capa.org
Mon, 16 Aug 2004 10:54:20 -0000


foxr		Mon Aug 16 06:54:20 2004 EDT

  Modified files:              
    /loncom	lond 
  Log:
  Added unsubscribe_hander removed the old hander from the if/elsif chain
  
  
Index: loncom/lond
diff -u loncom/lond:1.228 loncom/lond:1.229
--- loncom/lond:1.228	Tue Aug 10 18:55:31 2004
+++ loncom/lond	Mon Aug 16 06:54:19 2004
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.228 2004/08/10 22:55:31 foxr Exp $
+# $Id: lond,v 1.229 2004/08/16 10:54:19 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -57,7 +57,7 @@
 my $status='';
 my $lastlog='';
 
-my $VERSION='$Revision: 1.228 $'; #' stupid emacs
+my $VERSION='$Revision: 1.229 $'; #' stupid emacs
 my $remoteVERSION;
 my $currenthostid="default";
 my $currentdomainid;
@@ -1872,6 +1872,37 @@
 }
 
 &register_handler("tokenauthuserfile", \&token_auth_user_file_handler, 0,1,0);
+
+
+#
+#   Unsubscribe from a resource.
+#
+# Parameters:
+#    $cmd      - The command that got us here.
+#    $tail     - Tail of the command (remaining parameters).
+#    $client   - File descriptor connected to client.
+# Returns
+#     0        - Requested to exit, caller should shut down.
+#     1        - Continue processing.
+#
+sub unsubscribe_handler {
+    my ($cmd, $tail, $client) = @_;
+
+    my $userinput= "$cmd:$tail";
+    
+    my ($fname) = split(/:/,$tail); # Split in case there's extrs.
+
+    &Debug("Unsubscribing $fname");
+    if (-e $fname) {
+	&Debug("Exists");
+	&Reply($client, &unsub($fname,$clientip), $userinput);
+    } else {
+	&Failure($client, "not_found\n", $userinput);
+    }
+    return 1;
+}
+&register_handler("unsub", \&unsubscribe_handler, 0, 1, 0);
+
 #---------------------------------------------------------------
 #
 #   Getting, decoding and dispatching requests:
@@ -1987,21 +2018,9 @@
 
 
 
-# ----------------------------------------------------------------- unsubscribe
-    if ($userinput =~ /^unsub/) {
-	if(isClient) {
-	    my ($cmd,$fname)=split(/:/,$userinput);
-	    if (-e $fname) {
-		print $client &unsub($fname,$clientip);
-	    } else {
-		print $client "not_found\n";
-	    }
-	} else {
-	    Reply($client, "refused\n", $userinput);
-	    
-	}
+
 # ------------------------------------------------------------------- subscribe
-    } elsif ($userinput =~ /^sub/) {
+   if ($userinput =~ /^sub/) {
 	if(isClient) {
 	    print $client &subscribe($userinput,$clientip);
 	} else {