Lines Matching full:db
526 #include <db.h>
531 mdb_close(krb5_context context, HDB *db) in mdb_close() argument
533 DB *d = (DB*)db->hdb_db; in mdb_close()
539 mdb_destroy(krb5_context context, HDB *db) in mdb_destroy() argument
543 ret = hdb_clear_master_key (context, db); in mdb_destroy()
544 free(db->hdb_name); in mdb_destroy()
545 free(db); in mdb_destroy()
550 mdb_lock(krb5_context context, HDB *db, int operation) in mdb_lock() argument
552 DB *d = (DB*)db->hdb_db; in mdb_lock()
556 "Can't lock database: %s", db->hdb_name); in mdb_lock()
563 mdb_unlock(krb5_context context, HDB *db) in mdb_unlock() argument
565 DB *d = (DB*)db->hdb_db; in mdb_unlock()
569 "Can't unlock database: %s", db->hdb_name); in mdb_unlock()
577 mdb_seq(krb5_context context, HDB *db, in mdb_seq() argument
580 DB *d = (DB*)db->hdb_db; in mdb_seq()
585 code = db->hdb_lock(context, db, HDB_RLOCK); in mdb_seq()
587 krb5_set_error_message(context, HDB_ERR_DB_INUSE, "Database %s in use", db->hdb_name); in mdb_seq()
591 db->hdb_unlock(context, db); /* XXX check value */ in mdb_seq()
595 db->hdb_name, strerror(code)); in mdb_seq()
610 return mdb_seq(context, db, flags, entry, R_NEXT); in mdb_seq()
612 if (db->hdb_master_key_set && (flags & HDB_F_DECRYPT)) { in mdb_seq()
613 code = hdb_unseal_keys (context, db, &entry->entry); in mdb_seq()
623 mdb_firstkey(krb5_context context, HDB *db, unsigned flags, hdb_entry_ex *entry) in mdb_firstkey() argument
625 return mdb_seq(context, db, flags, entry, R_FIRST); in mdb_firstkey()
630 mdb_nextkey(krb5_context context, HDB *db, unsigned flags, hdb_entry_ex *entry) in mdb_nextkey() argument
632 return mdb_seq(context, db, flags, entry, R_NEXT); in mdb_nextkey()
636 mdb_rename(krb5_context context, HDB *db, const char *new_name) in mdb_rename() argument
641 asprintf(&old, "%s.db", db->hdb_name); in mdb_rename()
642 asprintf(&new, "%s.db", new_name); in mdb_rename()
649 free(db->hdb_name); in mdb_rename()
650 db->hdb_name = strdup(new_name); in mdb_rename()
655 mdb__get(krb5_context context, HDB *db, krb5_data key, krb5_data *reply) in mdb__get() argument
657 DB *d = (DB*)db->hdb_db; in mdb__get()
663 code = db->hdb_lock(context, db, HDB_RLOCK); in mdb__get()
667 db->hdb_unlock(context, db); in mdb__get()
671 db->hdb_name, strerror(code)); in mdb__get()
684 mdb__put(krb5_context context, HDB *db, int replace, in mdb__put() argument
687 DB *d = (DB*)db->hdb_db; in mdb__put()
695 code = db->hdb_lock(context, db, HDB_WLOCK); in mdb__put()
699 db->hdb_unlock(context, db); in mdb__put()
703 db->hdb_name, strerror(code)); in mdb__put()
714 mdb__del(krb5_context context, HDB *db, krb5_data key) in mdb__del() argument
716 DB *d = (DB*)db->hdb_db; in mdb__del()
721 code = db->hdb_lock(context, db, HDB_WLOCK); in mdb__del()
725 db->hdb_unlock(context, db); in mdb__del()
729 db->hdb_name, strerror(code)); in mdb__del()
738 mdb_fetch_kvno(krb5_context context, HDB *db, krb5_const_principal principal, in mdb_fetch_kvno() argument
747 ret = db->hdb__get(context, db, key, &value); in mdb_fetch_kvno()
756 if (db->hdb_master_key_set && (flags & HDB_F_DECRYPT)) { in mdb_fetch_kvno()
757 ret = hdb_unseal_keys (context, db, &entry->entry); in mdb_fetch_kvno()
768 mdb_store(krb5_context context, HDB *db, unsigned flags, hdb_entry_ex *entry) in mdb_store() argument
780 ret = _hdb_set_master_key_usage(context, db, 0); /* MIT KDB uses KU 0 */ in mdb_store()
781 ret = hdb_seal_keys(context, db, &entry->entry); in mdb_store()
800 ret = mdb__put(context, db, 1, key, kdb_ent); in mdb_store()
815 mdb_remove(krb5_context context, HDB *db, krb5_const_principal principal) in mdb_remove() argument
820 code = db->hdb__del(context, db, key); in mdb_remove()
826 mdb_open(krb5_context context, HDB *db, int flags, mode_t mode) in mdb_open() argument
833 asprintf(&fn, "%s.db", db->hdb_name); in mdb_open()
842 actual_fn = db->hdb_name; in mdb_open()
843 db->hdb_db = dbopen(actual_fn, flags, mode, DB_BTREE, NULL); in mdb_open()
844 if (db->hdb_db == NULL) { in mdb_open()
850 db->hdb_db = dbopen(actual_fn, flags, mode, DB_BTREE, NULL); in mdb_open()
855 /* try to open without .db extension */ in mdb_open()
856 if(db->hdb_db == NULL && errno == ENOENT) in mdb_open()
857 db->hdb_db = dbopen(db->hdb_name, flags, mode, DB_BTREE, NULL); in mdb_open()
858 if(db->hdb_db == NULL) { in mdb_open()
861 db->hdb_name, strerror(ret)); in mdb_open()
870 ret = hdb_init_db(context, db); in mdb_open()
872 ret = hdb_check_db_format(context, db); in mdb_open()
878 mdb_close(context, db); in mdb_open()
882 db->hdb_name); in mdb_open()
888 hdb_mdb_create(krb5_context context, HDB **db, in hdb_mdb_create() argument
891 *db = calloc(1, sizeof(**db)); in hdb_mdb_create()
892 if (*db == NULL) { in hdb_mdb_create()
897 (*db)->hdb_db = NULL; in hdb_mdb_create()
898 (*db)->hdb_name = strdup(filename); in hdb_mdb_create()
899 if ((*db)->hdb_name == NULL) { in hdb_mdb_create()
900 free(*db); in hdb_mdb_create()
901 *db = NULL; in hdb_mdb_create()
905 (*db)->hdb_master_key_set = 0; in hdb_mdb_create()
906 (*db)->hdb_openp = 0; in hdb_mdb_create()
907 (*db)->hdb_capability_flags = 0; in hdb_mdb_create()
908 (*db)->hdb_open = mdb_open; in hdb_mdb_create()
909 (*db)->hdb_close = mdb_close; in hdb_mdb_create()
910 (*db)->hdb_fetch_kvno = mdb_fetch_kvno; in hdb_mdb_create()
911 (*db)->hdb_store = mdb_store; in hdb_mdb_create()
912 (*db)->hdb_remove = mdb_remove; in hdb_mdb_create()
913 (*db)->hdb_firstkey = mdb_firstkey; in hdb_mdb_create()
914 (*db)->hdb_nextkey= mdb_nextkey; in hdb_mdb_create()
915 (*db)->hdb_lock = mdb_lock; in hdb_mdb_create()
916 (*db)->hdb_unlock = mdb_unlock; in hdb_mdb_create()
917 (*db)->hdb_rename = mdb_rename; in hdb_mdb_create()
918 (*db)->hdb__get = mdb__get; in hdb_mdb_create()
919 (*db)->hdb__put = mdb__put; in hdb_mdb_create()
920 (*db)->hdb__del = mdb__del; in hdb_mdb_create()
921 (*db)->hdb_destroy = mdb_destroy; in hdb_mdb_create()