diff options
| author | John Kohl <jtkohl@mit.edu> | 1991-01-04 14:51:45 +0000 |
|---|---|---|
| committer | John Kohl <jtkohl@mit.edu> | 1991-01-04 14:51:45 +0000 |
| commit | a6985818378387da012a32898ee50054c48da06b (patch) | |
| tree | 0ec7c7da848ca7ab99c1c000f115832e1a88a6ce /src/admin | |
| parent | 0a43cfa4a7b8278e5678633fc86d4528bc95b017 (diff) | |
| download | krb5-a6985818378387da012a32898ee50054c48da06b.tar.gz krb5-a6985818378387da012a32898ee50054c48da06b.tar.xz krb5-a6985818378387da012a32898ee50054c48da06b.zip | |
some better error interpretation and sequencing when a database
exists already
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1616 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/admin')
| -rw-r--r-- | src/admin/create/kdb5_create.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/admin/create/kdb5_create.c b/src/admin/create/kdb5_create.c index a4d436bd9..e0e2de6d2 100644 --- a/src/admin/create/kdb5_create.c +++ b/src/admin/create/kdb5_create.c @@ -173,13 +173,12 @@ char *argv[]; if (!dbname) dbname = DEFAULT_DBM_FILE; /* XXX? */ - if (retval = krb5_db_create(dbname)) { - com_err(argv[0], retval, "while creating database '%s'", - dbname); - exit(1); - } - if (retval = krb5_db_set_name(dbname)) { - com_err(argv[0], retval, "while setting active database to '%s'", + retval = krb5_db_set_name(dbname); + if (!retval) retval = EEXIST; + + if (retval == EEXIST || retval == EACCES || retval == EPERM) { + /* it exists ! */ + com_err(argv[0], 0, "The database '%s' appears to already exist", dbname); exit(1); } @@ -228,6 +227,20 @@ master key name '%s'\n", (void) krb5_finish_key(&master_encblock); exit(1); } + if (retval = krb5_db_create(dbname)) { + (void) krb5_finish_key(&master_encblock); + (void) krb5_finish_random_key(&master_encblock, &rblock.rseed); + com_err(argv[0], retval, "while creating database '%s'", + dbname); + exit(1); + } + if (retval = krb5_db_set_name(dbname)) { + (void) krb5_finish_key(&master_encblock); + (void) krb5_finish_random_key(&master_encblock, &rblock.rseed); + com_err(argv[0], retval, "while setting active database to '%s'", + dbname); + exit(1); + } if (retval = krb5_db_init()) { (void) krb5_finish_key(&master_encblock); (void) krb5_finish_random_key(&master_encblock, &rblock.rseed); |
