From 2c796aa6052de38e67dc7bfd37f3cc519693599e Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Thu, 13 Apr 2006 18:58:56 +0000 Subject: Partial merge from Novell LDAP integration branch, not including the actual LDAP bits: * include/kdb.h (krb5_db_entry_new): Add MASK field indicating what's changed. (KRB5_KDB_SRV_TYPE_*): New macros indicating which type of service is accessing the database. * lib/kadm5/srv/svr_principal.c: Set mask field. * lib/kadm5/srv/server_misc.c, server_init.c: Pass service type to krb5_db_open. * kadmin/dbutil/kdb5_stash.c (kdb5_stash): Pass service type to krb5_db_open. * kadmin/dbutil/kdb5_util.c (open_db_and_mkey): Pass service type to krb5_db_open. * kdc/main.c (init_realm): Pass service type to krb5_db_open. * lib/kadm5/srv/svr_principal.c: Set mask field. * kadmin/dbutil/dump.c (load_db): Pass service type to krb5_db_open. * lib/kdb/kdb5.h (KRB5_KDB_SRV_TYPE_*): New macros. * lib/kdb/err_handle.{c,h}: Deleted. * lib/kadm5/clnt/err_handle.{c,h}: Deleted. (krb5_db_clr_error): Declaration deleted. * lib/kdb/Makefile.in, lib/kadm5/clnt/Makefile.in: Don't build them. * lib/kdb/kdb5.c, lib/kadm5/clnt, lib/kadm5/srv: Use new error-message API. * kdc/do_tgs_req.c (process_tgs_req): Use new error-message API. * kdc/kdc_preauth.c (check_padata) * kdc/do_as_req.c (process_as_req): * kdc/main.c (init_realm): * kadmin/server/ovsec_kadmd.c (main, do_schpw): * schpw.c (process_chpw_request): * kadmin/server/server_stubs.c: * kadmin/cli/kadmin.c (extended_com_err_fn): New function. (kadmin_startup): Tell com_err library to use it, for kadmin.local. * lib/kdb/libkdb5.exports: Don't export krb5_db_clr_error. * lib/kdb/Makefile.in: (SRCS, STLIBOBJS): Don't build err_handle.c. * lib/kdb/kdb5.c (kdb_load_library): Don't pass argument to init_library. (krb5_db_clr_error): Function deleted. * lib/kdb/kdb5.h (struct _kdb_vftabl): Remove argument from init_library field. * lib/kadm5/logger.c (krb5_klog_init): Save the krb5_context pointer. (klog_com_err_proc): Use it, and call new error-message API. * lib/kadm5/srv/svr_principal.c: Use new error-message API. * kadmin/dbutil/kdb5_util.c (extended_com_err_fn): New function. (main): Tell com_err library to use it. * plugins/kdb/db2: Use new error-message APIs and updated DAL interface. * lib/kadm5/kadm_rpc.h: Delete err_str fields. * lib/kadm5/kadm_rpc_xdr.c: Don't process them. * kadmin/server/server_stubs.c: Don't use ret.err_str field. * include/k5-thread.h (k5_key_t): Deleted unused values. * lib/kdb/kdb5.h (KDB_MODULE_SECTION): Change db_modules to dbmodules. (KDB_MODULE_DEF_SECTION): New macro. * tests/Makefile.in (krb5.conf): Rename db_modules to dbmodules. * tests/dejagnu/config/default.exp (setup_krb5_conf): Likewise. * kadmin/testing/proto/krb5.conf.proto: Likewise. * lib/kdb/libkdb5.exports: Do export krb5_def_store_mkey. * lib/kadm5/admin.h (KADM5_CPW_FUNCTION, KADM5_RANDKEY_USED): New macros. (struct _kadm5_config_params): New field kpasswd_server. * lib/krb5/error_tables/kdb5_err.et (KRB5_KDB_SERVER_INTERNAL_ERR): New error code. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17899 dc483132-0cff-0310-8789-dd5450dbe970 --- src/plugins/kdb/db2/Makefile.in | 11 ++++------- src/plugins/kdb/db2/db2_exp.c | 4 ++-- src/plugins/kdb/db2/kdb_db2.c | 29 +++++++++++++++-------------- src/plugins/kdb/db2/kdb_db2.h | 6 +----- 4 files changed, 22 insertions(+), 28 deletions(-) (limited to 'src/plugins/kdb') diff --git a/src/plugins/kdb/db2/Makefile.in b/src/plugins/kdb/db2/Makefile.in index 5c4d68a1b..00a214506 100644 --- a/src/plugins/kdb/db2/Makefile.in +++ b/src/plugins/kdb/db2/Makefile.in @@ -35,7 +35,6 @@ SHLIB_EXPDEPS = \ $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ $(TOPLIBD)/libkrb5$(SHLIBEXT) SHLIB_EXPLIBS= $(GSSRPC_LIBS) -lkrb5 -lcom_err -lk5crypto $(KDB5_DB_LIB) $(SUPPORT_LIB) $(LIBS) -# -lgssrpc $(KDB5_DB_LIB) SHLIB_DIRS=-L$(TOPLIBD) SHLIB_RDIRS=$(KRB5_LIBDIR) @@ -130,9 +129,8 @@ kdb_db2.so kdb_db2.po $(OUTPRE)kdb_db2.$(OBJEXT): $(BUILDTOP)/include/autoconf.h $(SRCTOP)/include/k5-locate.h $(SRCTOP)/include/k5-platform.h \ $(SRCTOP)/include/k5-plugin.h $(SRCTOP)/include/k5-thread.h \ $(SRCTOP)/include/kdb.h $(SRCTOP)/include/port-sockets.h \ - $(SRCTOP)/include/socket-utils.h $(SRCTOP)/lib/kdb/err_handle.h \ - $(SRCTOP)/lib/kdb/kdb5.h kdb_compat.h kdb_db2.c kdb_db2.h \ - kdb_xdr.h policy_db.h + $(SRCTOP)/include/socket-utils.h $(SRCTOP)/lib/kdb/kdb5.h \ + kdb_compat.h kdb_db2.c kdb_db2.h kdb_xdr.h policy_db.h pol_xdr.so pol_xdr.po $(OUTPRE)pol_xdr.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ $(BUILDTOP)/include/gssapi/gssapi.h $(BUILDTOP)/include/gssrpc/auth.h \ $(BUILDTOP)/include/gssrpc/auth_gss.h $(BUILDTOP)/include/gssrpc/auth_unix.h \ @@ -153,6 +151,5 @@ db2_exp.so db2_exp.po $(OUTPRE)db2_exp.$(OBJEXT): $(BUILDTOP)/include/autoconf.h $(SRCTOP)/include/k5-locate.h $(SRCTOP)/include/k5-platform.h \ $(SRCTOP)/include/k5-plugin.h $(SRCTOP)/include/k5-thread.h \ $(SRCTOP)/include/kdb.h $(SRCTOP)/include/port-sockets.h \ - $(SRCTOP)/include/socket-utils.h $(SRCTOP)/lib/kdb/err_handle.h \ - $(SRCTOP)/lib/kdb/kdb5.h db2_exp.c kdb_db2.h kdb_xdr.h \ - policy_db.h + $(SRCTOP)/include/socket-utils.h $(SRCTOP)/lib/kdb/kdb5.h \ + db2_exp.c kdb_db2.h kdb_xdr.h policy_db.h diff --git a/src/plugins/kdb/db2/db2_exp.c b/src/plugins/kdb/db2/db2_exp.c index e44728dde..8938c6d4a 100644 --- a/src/plugins/kdb/db2/db2_exp.c +++ b/src/plugins/kdb/db2/db2_exp.c @@ -194,13 +194,13 @@ WRAP_K (krb5_db2_db_get_mkey, (context, key)); static krb5_error_code -hack_init (krb5_set_err_func_t f) +hack_init () { krb5_error_code c; c = krb5int_mutex_alloc (&krb5_db2_mutex); if (c) return c; - return krb5_db2_lib_init (f); + return krb5_db2_lib_init (); } static krb5_error_code diff --git a/src/plugins/kdb/db2/kdb_db2.c b/src/plugins/kdb/db2/kdb_db2.c index f3f1e00d6..48e848280 100644 --- a/src/plugins/kdb/db2/kdb_db2.c +++ b/src/plugins/kdb/db2/kdb_db2.c @@ -88,7 +88,6 @@ krb5_error_code krb5_db2_db_lock(krb5_context, int); static krb5_error_code krb5_db2_db_set_hashfirst(krb5_context, int); static char default_db_name[] = DEFAULT_KDB_FILE; -krb5_set_err_func_t krb5_db2_dal_err_funcp = NULL; /* * Locking: @@ -958,11 +957,12 @@ krb5_db2_db_put_principal(krb5_context context, krb5_db2_context *db_ctx; kdb5_dal_handle *dal_handle; + krb5_clear_error_message (context); if (db_args) { /* DB2 does not support db_args DB arguments for principal */ - char buf[KRB5_MAX_ERR_STR]; - sprintf(buf, "Unsupported argument \"%s\" for db2", db_args[0]); - krb5_db2_dal_err_funcp(context, krb5_err_have_str, EINVAL, buf); + krb5_set_error_message(context, EINVAL, + "Unsupported argument \"%s\" for db2", + db_args[0]); return EINVAL; } @@ -1209,9 +1209,8 @@ krb5_db2_db_set_lockmode(krb5_context context, krb5_boolean mode) * DAL API functions */ krb5_error_code -krb5_db2_lib_init(krb5_set_err_func_t set_err) +krb5_db2_lib_init() { - krb5_db2_dal_err_funcp = set_err; return 0; } @@ -1230,6 +1229,8 @@ krb5_db2_open(krb5_context kcontext, char **t_ptr = db_args; char db_name_set = 0; + krb5_clear_error_message (kcontext); + if (k5db2_inited(kcontext)) return 0; @@ -1248,10 +1249,9 @@ krb5_db2_open(krb5_context kcontext, } /* ignore hash argument. Might have been passed from create */ else if (!opt || strcmp(opt, "hash")) { - char buf[KRB5_MAX_ERR_STR]; - sprintf(buf, "Unsupported argument \"%s\" for db2", - opt ? opt : val); - krb5_db2_dal_err_funcp(kcontext, krb5_err_have_str, EINVAL, buf); + krb5_set_error_message(kcontext, EINVAL, + "Unsupported argument \"%s\" for db2", + opt ? opt : val); free(opt); free(val); return EINVAL; @@ -1299,6 +1299,8 @@ krb5_db2_create(krb5_context kcontext, char *conf_section, char **db_args) krb5_int32 flags = KRB5_KDB_CREATE_BTREE; char *db_name = NULL; + krb5_clear_error_message (kcontext); + if (k5db2_inited(kcontext)) return 0; @@ -1321,10 +1323,9 @@ krb5_db2_create(krb5_context kcontext, char *conf_section, char **db_args) else if (opt && !strcmp(opt, "hash")) { flags = KRB5_KDB_CREATE_HASH; } else { - char buf[KRB5_MAX_ERR_STR]; - sprintf(buf, "Unsupported argument \"%s\" for db2", - opt ? opt : val); - krb5_db2_dal_err_funcp(kcontext, krb5_err_have_str, EINVAL, buf); + krb5_set_error_message(kcontext, EINVAL, + "Unsupported argument \"%s\" for db2", + opt ? opt : val); free(opt); free(val); return EINVAL; diff --git a/src/plugins/kdb/db2/kdb_db2.h b/src/plugins/kdb/db2/kdb_db2.h index 77ca60c33..41dad9035 100644 --- a/src/plugins/kdb/db2/kdb_db2.h +++ b/src/plugins/kdb/db2/kdb_db2.h @@ -134,7 +134,7 @@ krb5_db2_db_delete_principal(krb5_context context, krb5_const_principal searchfor, int *nentries); -krb5_error_code krb5_db2_lib_init(krb5_set_err_func_t); +krb5_error_code krb5_db2_lib_init(); krb5_error_code krb5_db2_lib_cleanup(void); @@ -204,8 +204,4 @@ krb5_error_code krb5_db2_delete_policy ( krb5_context kcontext, void krb5_db2_free_policy( krb5_context kcontext, osa_policy_ent_t entry ); - - -extern krb5_set_err_func_t krb5_db2_dal_err_funcp; - #endif /* KRB5_KDB_DB2_H */ -- cgit