summaryrefslogtreecommitdiffstats
path: root/src/admin
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1994-10-07 05:05:27 +0000
committerTheodore Tso <tytso@mit.edu>1994-10-07 05:05:27 +0000
commit69e504fd08cea9471986d065d6d5c835506b86aa (patch)
tree405d100a0106cad385fc43bc153d2fb40fa9a7b7 /src/admin
parent65fc7036916bfa0ef655a9a2bb9401fb95036f29 (diff)
downloadkrb5-69e504fd08cea9471986d065d6d5c835506b86aa.tar.gz
krb5-69e504fd08cea9471986d065d6d5c835506b86aa.tar.xz
krb5-69e504fd08cea9471986d065d6d5c835506b86aa.zip
Add an option to force destruction of the database, without asking any
questions. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4475 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/admin')
-rw-r--r--src/admin/destroy/ChangeLog5
-rw-r--r--src/admin/destroy/kdb5_destroy.c82
2 files changed, 49 insertions, 38 deletions
diff --git a/src/admin/destroy/ChangeLog b/src/admin/destroy/ChangeLog
index b5f8a0e3b8..c444a81f7f 100644
--- a/src/admin/destroy/ChangeLog
+++ b/src/admin/destroy/ChangeLog
@@ -1,3 +1,8 @@
+Thu Oct 6 23:43:38 1994 Theodore Y. Ts'o (tytso@dcl)
+
+ * kdb5_destroy.c (main): Add option to force destruction of a
+ database.
+
Mon Oct 3 19:10:23 1994 Theodore Y. Ts'o (tytso@dcl)
* Makefile.in: Use $(srcdir) to find manual page for make install.
diff --git a/src/admin/destroy/kdb5_destroy.c b/src/admin/destroy/kdb5_destroy.c
index 5758ce30b8..412a0e2d02 100644
--- a/src/admin/destroy/kdb5_destroy.c
+++ b/src/admin/destroy/kdb5_destroy.c
@@ -60,62 +60,68 @@ char *argv[];
char buf[5];
char dbfilename[MAXPATHLEN];
krb5_error_code retval;
+ int force = 0;
krb5_init_ets();
if (strrchr(argv[0], '/'))
argv[0] = strrchr(argv[0], '/')+1;
- while ((optchar = getopt(argc, argv, "d:")) != EOF) {
+ while ((optchar = getopt(argc, argv, "d:f")) != EOF) {
switch(optchar) {
case 'd': /* set db name */
dbname = optarg;
break;
+ case 'f':
+ force++;
+ break;
case '?':
default:
usage(argv[0], 1);
/*NOTREACHED*/
}
}
- printf("Deleting KDC database stored in '%s', are you sure?\n", dbname);
- printf("(type 'yes' to confirm)? ");
- if ((fgets(buf, sizeof(buf), stdin) != NULL) && /* typed something */
- !strcmp(buf,yes)) { /* it matches yes */
- printf("OK, deleting database '%s'...\n", dbname);
- (void) strcpy(dbfilename, dbname);
- (void) strcat(dbfilename, ".dir");
- if (unlink(dbfilename) == -1) {
- retval = errno;
- com_err(argv[0], retval, "deleting database file '%s'",dbfilename);
- if (retval == ENOENT)
- fprintf(stderr,
- "Database appears to not exist--inspect files manually!\n");
- else
- fprintf(stderr,
- "Database may be partially deleted--inspect files manually!\n");
-
+ if (!force) {
+ printf("Deleting KDC database stored in '%s', are you sure?\n",
+ dbname);
+ printf("(type 'yes' to confirm)? ");
+ if (fgets(buf, sizeof(buf), stdin) == NULL)
exit(1);
- }
- (void) strcpy(dbfilename, dbname);
- (void) strcat(dbfilename, ".pag");
- if (unlink(dbfilename) == -1) {
- retval = errno;
- com_err(argv[0], retval, "deleting database file '%s'",dbfilename);
- fprintf(stderr,
- "Database may be partially deleted--inspect files manually!\n");
+ if (strcmp(buf, yes))
exit(1);
- }
- (void) strcpy(dbfilename, dbname);
- (void) strcat(dbfilename, ".ok");
- if (unlink(dbfilename) == -1) {
- retval = errno;
- com_err(argv[0], retval, "deleting database file '%s'",dbfilename);
+ printf("OK, deleting database '%s'...\n", dbname);
+ }
+ (void) strcpy(dbfilename, dbname);
+ (void) strcat(dbfilename, ".dir");
+ if (unlink(dbfilename) == -1) {
+ retval = errno;
+ com_err(argv[0], retval, "deleting database file '%s'",dbfilename);
+ if (retval == ENOENT)
fprintf(stderr,
- "Database partially deleted--inspect files manually!\n");
- exit(1);
- }
- printf("** Database '%s' destroyed.\n", dbname);
- exit(0);
+ "Database appears to not exist--inspect files manually!\n");
+ else
+ fprintf(stderr,
+ "Database may be partially deleted--inspect files manually!\n");
+ exit(1);
+ }
+ (void) strcpy(dbfilename, dbname);
+ (void) strcat(dbfilename, ".pag");
+ if (unlink(dbfilename) == -1) {
+ retval = errno;
+ com_err(argv[0], retval, "deleting database file '%s'",dbfilename);
+ fprintf(stderr,
+ "Database may be partially deleted--inspect files manually!\n");
+ exit(1);
+ }
+ (void) strcpy(dbfilename, dbname);
+ (void) strcat(dbfilename, ".ok");
+ if (unlink(dbfilename) == -1) {
+ retval = errno;
+ com_err(argv[0], retval, "deleting database file '%s'",dbfilename);
+ fprintf(stderr,
+ "Database partially deleted--inspect files manually!\n");
+ exit(1);
}
- exit(1);
+ printf("** Database '%s' destroyed.\n", dbname);
+ exit(0);
}