diff options
author | Greg Hudson <ghudson@mit.edu> | 2011-06-17 13:44:26 +0000 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2011-06-17 13:44:26 +0000 |
commit | 6d2780e121d8305c3acf43c56730884396990854 (patch) | |
tree | e66211bef53665e5ac1f93bc3b820a06f6b77b86 /src/include | |
parent | 4b778bc6d6e8db0c1145da0aa618289ab1812d37 (diff) | |
download | krb5-6d2780e121d8305c3acf43c56730884396990854.tar.gz krb5-6d2780e121d8305c3acf43c56730884396990854.tar.xz krb5-6d2780e121d8305c3acf43c56730884396990854.zip |
Add k5_plugin_register_dyn internal API
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24969 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/Makefile.in | 5 | ||||
-rw-r--r-- | src/include/k5-int.h | 11 | ||||
-rw-r--r-- | src/include/osconf.hin | 3 |
3 files changed, 17 insertions, 2 deletions
diff --git a/src/include/Makefile.in b/src/include/Makefile.in index ed7d20fbb4..d6a9b3c389 100644 --- a/src/include/Makefile.in +++ b/src/include/Makefile.in @@ -65,8 +65,9 @@ PROCESS_REPLACE = -e "s+@KRB5RCTMPDIR+$(KRB5RCTMPDIR)+" \ -e "s+@SBINDIR+$(SBINDIR)+" \ -e "s+@MODULEDIR+$(MODULE_DIR)+" \ -e "s+@GSSMODULEDIR+$(GSS_MODULE_DIR)+" \ - -e 's+@LOCALSTATEDIR+$(LOCALSTATEDIR)+' \ - -e 's+@SYSCONFDIR+$(SYSCONFDIR)+' + -e 's+@LOCALSTATEDIR+$(LOCALSTATEDIR)+' \ + -e 's+@SYSCONFDIR+$(SYSCONFDIR)+' \ + -e 's+@DYNOBJEXT+$(DYNOBJEXT)+' OSCONFSRC = $(srcdir)/osconf.hin diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 0a00f1d282..86ec114b0a 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -256,6 +256,7 @@ typedef INT64_TYPE krb5_int64; #define KRB5_CONF_NO_HOST_REFERRAL "no_host_referral" #define KRB5_CONF_PERMITTED_ENCTYPES "permitted_enctypes" #define KRB5_CONF_PLUGINS "plugins" +#define KRB5_CONF_PLUGIN_BASE_DIR "plugin_base_dir" #define KRB5_CONF_PREAUTH_MODULE_DIR "preauth_module_dir" #define KRB5_CONF_PREFERRED_PREAUTH_TYPES "preferred_preauth_types" #define KRB5_CONF_PROXIABLE "proxiable" @@ -1435,6 +1436,15 @@ krb5_error_code k5_plugin_register(krb5_context context, int interface_id, const char *modname, krb5_plugin_initvt_fn module); +/* + * Register a plugin module which is part of the krb5 tree but is built as a + * dynamic plugin. Look for the module in modsubdir relative to the + * context->base_plugin_dir. + */ +krb5_error_code +k5_plugin_register_dyn(krb5_context context, int interface_id, + const char *modname, const char *modsubdir); + /* Destroy the module state within context; used by krb5_free_context. */ void k5_plugin_free_context(krb5_context context); @@ -1496,6 +1506,7 @@ struct _krb5_context { void *trace_callback_data; struct plugin_interface plugins[PLUGIN_NUM_INTERFACES]; + char *plugin_base_dir; }; /* could be used in a table to find an etype and initialize a block */ diff --git a/src/include/osconf.hin b/src/include/osconf.hin index 073ce1422f..04f10ce82e 100644 --- a/src/include/osconf.hin +++ b/src/include/osconf.hin @@ -59,6 +59,9 @@ #define DEFAULT_LNAME_FILENAME "@PREFIX/lib/krb5.aname" #endif /* _WINDOWS */ +#define DEFAULT_PLUGIN_BASE_DIR "@LIBDIR/krb5/plugins" +#define PLUGIN_EXT "@DYNOBJEXT" + #define DEFAULT_KDB_FILE "@LOCALSTATEDIR/krb5kdc/principal" #define DEFAULT_KEYFILE_STUB "@LOCALSTATEDIR/krb5kdc/.k5." #define KRB5_DEFAULT_ADMIN_ACL "@LOCALSTATEDIR/krb5kdc/krb5_adm.acl" |