summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/ccache/ccapi/winccld.h
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1999-03-31 05:11:39 +0000
committerTheodore Tso <tytso@mit.edu>1999-03-31 05:11:39 +0000
commitccda4601762304ffc41f81715de641b92130bdf1 (patch)
tree2dd59ea0709776542e56ed12dd1d06a87a187a7b /src/lib/krb5/ccache/ccapi/winccld.h
parent8e29b83161e3942e766dc450fb3e3d9929a50b67 (diff)
downloadkrb5-ccda4601762304ffc41f81715de641b92130bdf1.tar.gz
krb5-ccda4601762304ffc41f81715de641b92130bdf1.tar.xz
krb5-ccda4601762304ffc41f81715de641b92130bdf1.zip
winccld.c, winccld.h, stdcc.c: Add files to dynamically load
krbcc32.dll, so that we can fall back and use the built-in file ccache type if krbcc32.dll doesn't exist. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11331 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/ccache/ccapi/winccld.h')
-rw-r--r--src/lib/krb5/ccache/ccapi/winccld.h142
1 files changed, 142 insertions, 0 deletions
diff --git a/src/lib/krb5/ccache/ccapi/winccld.h b/src/lib/krb5/ccache/ccapi/winccld.h
new file mode 100644
index 0000000000..30de8196aa
--- /dev/null
+++ b/src/lib/krb5/ccache/ccapi/winccld.h
@@ -0,0 +1,142 @@
+/*
+ * winccld.h -- the dynamic loaded version of the ccache DLL
+ */
+
+
+#ifndef KRB5_WINCCLD_H_
+#define KRB5_WINCCLD_H_
+
+#include "cacheapi.h"
+
+typedef cc_int32 (*FP_cc_initialize)(apiCB**, const cc_int32,
+ cc_int32*, const char**);
+typedef cc_int32 (*FP_cc_shutdown)(apiCB**);
+typedef cc_int32 (*FP_cc_get_change_time)(apiCB*, cc_time_t*);
+typedef cc_int32 (*FP_cc_create)(apiCB*, const char*, const char*,
+ const enum cc_cred_vers, const cc_int32, ccache_p**);
+typedef cc_int32 (*FP_cc_open)(apiCB*, const char*, const enum cc_cred_vers,
+ const cc_int32, ccache_p**);
+typedef cc_int32 (*FP_cc_close)(apiCB*, ccache_p**);
+typedef cc_int32 (*FP_cc_destroy)(apiCB*, ccache_p**);
+typedef cc_int32 (*FP_cc_seq_fetch_NCs)(apiCB*, ccache_p**, ccache_cit**);
+typedef cc_int32 (*FP_cc_get_NC_info)(apiCB*, struct _infoNC***);
+typedef cc_int32 (*FP_cc_free_NC_info)(apiCB*, struct _infoNC***);
+typedef cc_int32 (*FP_cc_get_name)(apiCB*, const ccache_p*, char**);
+typedef cc_int32 (*FP_cc_set_principal)(apiCB*, const ccache_p*,
+ const enum cc_cred_vers, const char*);
+typedef cc_int32 (*FP_cc_get_principal)(apiCB*, ccache_p*, char**);
+typedef cc_int32 (*FP_cc_set_instance)(apiCB*, const char*);
+typedef cc_int32 (*FP_cc_get_instance)(apiCB*, char**);
+typedef cc_int32 (*FP_cc_get_cred_version)(apiCB*, const ccache_p*,
+ enum cc_cred_vers*);
+typedef cc_int32 (*FP_cc_lock_request)(apiCB*, const ccache_p*,
+ const cc_int32);
+typedef cc_int32 (*FP_cc_store)(apiCB*, const ccache_p*, const cred_union);
+typedef cc_int32 (*FP_cc_remove_cred)(apiCB*, const ccache_p*,
+ const cred_union);
+typedef cc_int32 (*FP_cc_seq_fetch_creds)(apiCB*, const ccache_p*,
+ cred_union**, ccache_cit**);
+typedef cc_int32 (*FP_cc_free_principal)(apiCB*, char**);
+typedef cc_int32 (*FP_cc_free_instance)(apiCB*, char**);
+typedef cc_int32 (*FP_cc_free_name)(apiCB*, char** name);
+typedef cc_int32 (*FP_cc_free_creds)(apiCB*, cred_union** pCred);
+
+#ifdef KRB5_WINCCLD_C_
+typedef struct _FUNC_INFO {
+ void** func_ptr_var;
+ char* func_name;
+} FUNC_INFO;
+
+#define DECL_FUNC_PTR(x) FP_##x p##x
+#define MAKE_FUNC_INFO(x) { (void**) &p##x, #x }
+#define END_FUNC_INFO { 0, 0 }
+#else
+#define DECL_FUNC_PTR(x) extern FP_##x p##x
+#endif
+
+DECL_FUNC_PTR(cc_initialize);
+DECL_FUNC_PTR(cc_shutdown);
+DECL_FUNC_PTR(cc_get_change_time);
+DECL_FUNC_PTR(cc_create);
+DECL_FUNC_PTR(cc_open);
+DECL_FUNC_PTR(cc_close);
+DECL_FUNC_PTR(cc_destroy);
+DECL_FUNC_PTR(cc_seq_fetch_NCs);
+DECL_FUNC_PTR(cc_get_NC_info);
+DECL_FUNC_PTR(cc_free_NC_info);
+DECL_FUNC_PTR(cc_get_name);
+DECL_FUNC_PTR(cc_set_principal);
+DECL_FUNC_PTR(cc_get_principal);
+DECL_FUNC_PTR(cc_set_instance);
+DECL_FUNC_PTR(cc_get_instance);
+DECL_FUNC_PTR(cc_get_cred_version);
+DECL_FUNC_PTR(cc_lock_request);
+DECL_FUNC_PTR(cc_store);
+DECL_FUNC_PTR(cc_remove_cred);
+DECL_FUNC_PTR(cc_seq_fetch_creds);
+DECL_FUNC_PTR(cc_free_principal);
+DECL_FUNC_PTR(cc_free_instance);
+DECL_FUNC_PTR(cc_free_name);
+DECL_FUNC_PTR(cc_free_creds);
+
+#ifdef KRB5_WINCCLD_C_
+FUNC_INFO krbcc_fi[] = {
+ MAKE_FUNC_INFO(cc_initialize),
+ MAKE_FUNC_INFO(cc_shutdown),
+ MAKE_FUNC_INFO(cc_get_change_time),
+ MAKE_FUNC_INFO(cc_create),
+ MAKE_FUNC_INFO(cc_open),
+ MAKE_FUNC_INFO(cc_close),
+ MAKE_FUNC_INFO(cc_destroy),
+ MAKE_FUNC_INFO(cc_seq_fetch_NCs),
+ MAKE_FUNC_INFO(cc_get_NC_info),
+ MAKE_FUNC_INFO(cc_free_NC_info),
+ MAKE_FUNC_INFO(cc_get_name),
+ MAKE_FUNC_INFO(cc_set_principal),
+ MAKE_FUNC_INFO(cc_get_principal),
+ MAKE_FUNC_INFO(cc_set_instance),
+ MAKE_FUNC_INFO(cc_get_instance),
+ MAKE_FUNC_INFO(cc_get_cred_version),
+ MAKE_FUNC_INFO(cc_lock_request),
+ MAKE_FUNC_INFO(cc_store),
+ MAKE_FUNC_INFO(cc_remove_cred),
+ MAKE_FUNC_INFO(cc_seq_fetch_creds),
+ MAKE_FUNC_INFO(cc_free_principal),
+ MAKE_FUNC_INFO(cc_free_instance),
+ MAKE_FUNC_INFO(cc_free_name),
+ MAKE_FUNC_INFO(cc_free_creds),
+ END_FUNC_INFO
+};
+#undef MAKE_FUNC_INFO
+#undef END_FUNC_INFO
+#else
+
+#define cc_initialize pcc_initialize
+#define cc_shutdown pcc_shutdown
+#define cc_get_change_time pcc_get_change_time
+#define cc_creat pcc_creat
+#define cc_open pcc_open
+#define cc_close pcc_close
+#define cc_destroy pcc_destroy
+#define cc_seq_fetch_NCs pcc_seq_fetch_NCs
+#define cc_get_NC_info pcc_get_NC_info
+#define cc_free_NC_info pcc_free_NC_info
+#define cc_get_name pcc_get_name
+#define cc_set_principal pcc_set_principal
+#define cc_get_principal pcc_get_principal
+#define cc_set_instance pcc_set_instance
+#define cc_get_instance pcc_get_instance
+#define cc_get_cred_version pcc_get_cred_version
+#define cc_lock_request pcc_lock_request
+#define cc_store pcc_store
+#define cc_remove_cred pcc_remove_cred
+#define cc_seq_fetch_creds pcc_seq_fetch_creds
+#define cc_free_principal pcc_free_principal
+#define cc_free_instance pcc_free_instance
+#define cc_free_name pcc_free_name
+#define cc_free_creds pcc_free_creds
+#endif
+
+#undef DECL_FUNC_PTR
+
+#endif /* KRB5_WINCCLD_H_ */