summaryrefslogtreecommitdiffstats
path: root/crypto/kerberosIV/admin/kdb_destroy.c
blob: ec4a5d0087761197c470ca0c53a3cdd8ba34957b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
 * Copyright 1988 by the Massachusetts Institute of Technology.
 *
 * For copying and distribution information, please see the file
 * <mit-copyright.h>.
 *
 * Description.
 */

#include "adm_locl.h"

RCSID("$Id: kdb_destroy.c,v 1.9 1998/06/09 19:24:13 joda Exp $");

int
main(int argc, char **argv)
{
    char    answer[10];		/* user input */
#ifdef HAVE_NEW_DB
    char   *file;               /* database file names */
#else
    char   *file1, *file2;	/* database file names */
#endif

    set_progname (argv[0]);

#ifdef HAVE_NEW_DB
    asprintf(&file, "%s.db", DBM_FILE);
    if (file == NULL)
	err (1, "malloc");
#else
    asprintf(&file1, "%s.dir", DBM_FILE);
    asprintf(&file2, "%s.pag", DBM_FILE);
    if (file1 == NULL || file2 == NULL)
	err (1, "malloc");
#endif

    printf("You are about to destroy the Kerberos database ");
    printf("on this machine.\n");
    printf("Are you sure you want to do this (y/n)? ");
    if (fgets(answer, sizeof(answer), stdin) != NULL
	&& (answer[0] == 'y' || answer[0] == 'Y')) {
#ifdef HAVE_NEW_DB
      if (unlink(file) == 0)
#else
	if (unlink(file1) == 0 && unlink(file2) == 0)
#endif
	  {
	    warnx ("Database deleted at %s", DBM_FILE);
	    return 0;
	  }
	else
	    warn ("Database cannot be deleted at %s", DBM_FILE);
    } else
        warnx ("Database not deleted at %s", DBM_FILE);
    return 1;
}
OpenPOWER on IntegriCloud