[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";