summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2011-06-17 13:44:26 +0000
committerGreg Hudson <ghudson@mit.edu>2011-06-17 13:44:26 +0000
commit6d2780e121d8305c3acf43c56730884396990854 (patch)
treee66211bef53665e5ac1f93bc3b820a06f6b77b86 /src/include
parent4b778bc6d6e8db0c1145da0aa618289ab1812d37 (diff)
downloadkrb5-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.in5
-rw-r--r--src/include/k5-int.h11
-rw-r--r--src/include/osconf.hin3
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"