[2729] in testers

home help back first fref pref prev next nref lref last post

v4 kinit/kdestroy patch

daemon@ATHENA.MIT.EDU (Richard Basch)
Thu Dec 29 17:26:24 1994

Date: Thu, 29 Dec 1994 17:25:58 -0500
To: testers@MIT.EDU, rel-eng@MIT.EDU
Cc: tytso@MIT.EDU
From: "Richard Basch" <basch@MIT.EDU>


The following is an UNTESTED patch that addresses all the complaints in
the 7.7 patch release for V5 support...

I just wanted to let people know that the work is in progress.

Craig: I may just say this works, so keep the message around...

-Richard

--- kinit.c-	Thu Dec 29 15:31:37 1994
+++ kinit.c	Thu Dec 29 17:08:11 1994
@@ -325,9 +325,8 @@
 	    retval =  do_v5_kinit(aname, inst, realm, lifetime, password,
 				  0, &etext);
 	    memset(password, 0, PWSIZE);
-	    if (retval) {
+	    if (retval && retval != KRB5_CONFIG_CANTOPEN) {
 		    com_err(argv[0], retval, etext);
-		    exit(1);
 	    }
     }
     exit(0);
Exit 1
--- kdestroy.c-	Thu Dec 29 17:08:49 1994
+++ kdestroy.c	Thu Dec 29 17:22:26 1994
@@ -60,7 +60,7 @@
 main(argc, argv)
     char   *argv[];
 {
-    int     fflag=0, qflag=0, k_errno;
+    int     fflag=0, qflag=0, k_errno, k5_errno, retval;
     register char *cp;
 
     cp = rindex (argv[0], '/');
@@ -79,25 +79,25 @@
 	else usage();
     }
 
+    retval = 0;
     k_errno = dest_tkt();
-    do_v5_kdestroy(0);
+    k5_errno = do_v5_kdestroy(0);
+    
+    if (k_errno != 0 && k_errno != RET_TKFIL) {
+	retval = 1;
+	if (!fflag) fprintf(stderr, "V4 tickets NOT destroyed.\n");
+    }
+    if (k5_errno != 0 && k5_errno != KRB5_FCC_NOFILE) {
+	retval = 1
+	if (!fflag) fprintf(stderr, "V5 tickets NOT destroyed.\n");
+    }
+    if (fflag) return retval;
 
-    if (fflag) {
-	if (k_errno != 0 && k_errno != RET_TKFIL)
-	    exit(1);
-	else
-	    exit(0);
+    if (retval) {
+	if (!qflag) fprintf(stderr, "\007");
     } else {
-	if (k_errno == 0)
-	    printf("Tickets destroyed.\n");
-	else if (k_errno == RET_TKFIL)
-	    fprintf(stderr, "No tickets to destroy.\n");
-	else {
-	    fprintf(stderr, "Tickets NOT destroyed.\n");
-	    if (!qflag)
-		fprintf(stderr, "\007");
-	    exit(1);
-	}
+	if (k_errno || k5_errno) fprintf(stderr, "Tickets destroyed.\n");
+	else fprintf(stderr, "No tickets to destroy.\n");
     }
-    exit(0);
+    return retval;
 }

home help back first fref pref prev next nref lref last post