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

foxr lon-capa-cvs@mail.lon-capa.org
Fri, 13 Sep 2002 02:46:12 -0000


foxr		Thu Sep 12 22:46:12 2002 EDT

  Modified files:              
    /loncom	lond 
  Log:
  Log error value from passwd change to lond.log as textual equivalent.
  Analysis for Bug 701.
   Useful addition in any event so we'll commit it that way too.
  
  
Index: loncom/lond
diff -u loncom/lond:1.95 loncom/lond:1.96
--- loncom/lond:1.95	Mon Sep  9 10:04:02 2002
+++ loncom/lond	Thu Sep 12 22:46:12 2002
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.95 2002/09/09 14:04:02 harris41 Exp $
+# $Id: lond,v 1.96 2002/09/13 02:46:12 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -83,6 +83,34 @@
 my $status='';
 my $lastlog='';
 
+#
+#  The array below are password error strings."
+#
+my $lasterror    = 10;		# Largest error number from lcpasswd.
+my @passwderrors = ("ok",
+		   "lcpasswd must be run as user 'www'",
+		   "lcpasswd got incorrect number of arguments",
+		   "lcpasswd did not get the right nubmer of input text lines",
+		   "lcpasswd too many simultaneous pwd changes in progress",
+		   "lcpasswd User does not exist.",
+		   "lcpasswd Incorrect current passwd",
+		   "lcpasswd Unable to su to root.",
+		   "lcpasswd Cannot set new passwd.",
+		   "lcpasswd Username has invalid characters",
+		   "lcpasswd Invalid characters in password");
+
+#
+#  Convert an error return code from lcpasswd to a string value.
+#
+sub lcpasswdstrerror {
+    my $ErrorCode = shift;
+    if(($ErrorCode < 0) || ($ErrorCode > $lasterror)) {
+	return "lcpasswd Unrecognized error return value ".$ErrorCode;
+    } else {
+	return $passwderrors($ErrorCode);
+    }
+}
+
 # grabs exception and records it to log before exiting
 sub catchexception {
     my ($error)=@_;
@@ -743,7 +771,8 @@
 				 close $pf;
 				 my $result = ($?>0 ? 'pwchange_failure' 
 					       : 'ok');
-				 &logthis("Result of password change for $uname: $result");
+				 &logthis("Result of password change for $uname: ".
+					  &lcpasswdstrerror($?));
 				 print $client "$result\n";
 			     } else {
 				 print $client "non_authorized\n";