} gss_auth_config;
typedef struct gss_conn_ctx_t {
- gss_ctx_id_t context;
- enum {
- GSS_CTX_EMPTY,
- GSS_CTX_IN_PROGRESS,
- GSS_CTX_ESTABLISHED,
- } state;
- char *user;
+ gss_ctx_id_t context;
+ gss_cred_id_t server_creds;
+ enum {
+ GSS_CTX_EMPTY,
+ GSS_CTX_IN_PROGRESS,
+ GSS_CTX_FAILED,
+ GSS_CTX_ESTABLISHED,
+ } state;
+ enum {
+ GSS_FILT_NEW,
+ GSS_FILT_INPROGRESS,
+ GSS_FILT_ERROR,
+ } filter_stat;
+
+ char *user;
+ gss_buffer_desc output_token;
+ unsigned int nonce;
} *gss_conn_ctx;
void
-gss_log(const char *file, int line, int level, int status,
- const request_rec *r, const char *fmt, ...);
+gss_log(const char *file,
+ int line,
+#if AP_SERVER_MAJORVERSION_NUMBER == 2 && AP_SERVER_MINORVERSION_NUMBER == 4
+ int module_index,
+#endif
+ int level,
+ int status,
+ const request_rec *r,
+ const char *fmt, ...);
apr_status_t
-cleanup_conn_ctx(void *data);
+gss_cleanup_conn_ctx(void *data);
+
+gss_conn_ctx
+gss_retrieve_conn_ctx(request_rec *r);
gss_conn_ctx
-gss_get_conn_ctx(request_rec *r);
+gss_create_conn_ctx(request_rec *r, gss_auth_config *conf);
void *
gss_config_dir_create(apr_pool_t *p, char *d);