diff options
author | Tom Yu <tlyu@mit.edu> | 1997-07-25 19:34:42 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 1997-07-25 19:34:42 +0000 |
commit | b09cbdac52640cab3b3f0916c18c49f46d938a86 (patch) | |
tree | 9022976458207d71efa7fc462784c841ea54b3ab /src/lib/kdb/keytab.c | |
parent | 7faa30416aeea498e83f1e4f97449a0efa525436 (diff) | |
download | krb5-b09cbdac52640cab3b3f0916c18c49f46d938a86.tar.gz krb5-b09cbdac52640cab3b3f0916c18c49f46d938a86.tar.xz krb5-b09cbdac52640cab3b3f0916c18c49f46d938a86.zip |
* t_kdb.c: Reflect changes in the API, mostly db_create
* Makefile.in: Bump version due to major reworking.
* kdb_db2.h:
* kdb_db2.c: Add Berkely DB backend.
* keytab.c: Add support for new kdb API; delete dead arguments.
* kdb_xdr.c: Remove dependencies on dbm; encode things to
krb5_datas rather than datums.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10130 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kdb/keytab.c')
-rw-r--r-- | src/lib/kdb/keytab.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/lib/kdb/keytab.c b/src/lib/kdb/keytab.c index 82ed08e33c..c114946ea0 100644 --- a/src/lib/kdb/keytab.c +++ b/src/lib/kdb/keytab.c @@ -23,7 +23,7 @@ */ #include "k5-int.h" -#include "kdb_dbc.h" +#include "kdb_kt.h" krb5_error_code krb5_ktkdb_close KRB5_PROTOTYPE((krb5_context, krb5_keytab)); @@ -50,23 +50,12 @@ typedef struct krb5_ktkdb_data { } krb5_ktkdb_data; krb5_error_code -krb5_ktkdb_resolve(context, kdb, id) +krb5_ktkdb_resolve(context, id) krb5_context context; - krb5_db_context * kdb; krb5_keytab * id; { - krb5_db_context * data; - if ((*id = (krb5_keytab) malloc(sizeof(**id))) == NULL) return(ENOMEM); - - if ((data = (krb5_db_context *)malloc(sizeof(krb5_db_context))) == NULL) { - krb5_xfree(*id); - return(ENOMEM); - } - - memcpy(data, kdb, sizeof(krb5_db_context)); - (*id)->data = (krb5_pointer)data; (*id)->ops = &krb5_kt_kdb_ops; (*id)->magic = KV5M_KEYTAB; return(0); @@ -85,8 +74,7 @@ krb5_ktkdb_close(context, kt) * This routine should undo anything done by krb5_ktkdb_resolve(). */ - krb5_xfree(kt->data); - kt->ops = 0; + kt->ops = NULL; krb5_xfree(kt); return 0; @@ -109,25 +97,24 @@ krb5_ktkdb_get_entry(context, id, principal, kvno, enctype, entry) int n = 0; /* Open database */ - /* krb5_dbm_db_init(context); */ - if ((kerror = krb5_dbm_db_open_database(context))) + /* krb5_db_init(context); */ + if ((kerror = krb5_db_open_database(context))) return(kerror); /* get_principal */ - kerror = krb5_dbm_db_get_principal(context, principal, & + kerror = krb5_db_get_principal(context, principal, & db_entry, &n, &more); if (kerror) { - krb5_dbm_db_close_database(context); + krb5_db_close_database(context); return(kerror); } if (n != 1) { - krb5_dbm_db_close_database(context); + krb5_db_close_database(context); return KRB5_KT_NOTFOUND; } /* match key */ - /* WTF??? 2nd arg to dbm_db_get_mkey appears to be unused! -tlyu */ - kerror = krb5_dbm_db_get_mkey(context, id->ops, &master_key); + kerror = krb5_db_get_mkey(context, &master_key); if (kerror) goto error; @@ -148,6 +135,6 @@ krb5_ktkdb_get_entry(context, id, principal, kvno, enctype, entry) /* Close database */ error: krb5_dbe_free_contents(context, &db_entry); - krb5_dbm_db_close_database(context); + krb5_db_close_database(context); return(kerror); } |