summaryrefslogtreecommitdiffstats
path: root/src/lib/kdb/keytab.c
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1997-07-25 19:34:42 +0000
committerTom Yu <tlyu@mit.edu>1997-07-25 19:34:42 +0000
commitb09cbdac52640cab3b3f0916c18c49f46d938a86 (patch)
tree9022976458207d71efa7fc462784c841ea54b3ab /src/lib/kdb/keytab.c
parent7faa30416aeea498e83f1e4f97449a0efa525436 (diff)
downloadkrb5-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.c33
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);
}