Break out of processing upon GSS error being reported.
[mod_auth_kerb.cvs/.git] / gss.h
diff --git a/gss.h b/gss.h
index 6851a2c..4c01355 100644 (file)
--- a/gss.h
+++ b/gss.h
@@ -52,24 +52,44 @@ typedef struct {
 } 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);
@@ -83,8 +103,4 @@ get_gss_creds(request_rec *r, gss_auth_config *conf, gss_cred_id_t *server_creds
 int
 cmp_gss_type(gss_buffer_t token, gss_OID oid);
 
-int
-gss_authenticate(request_rec *r, gss_auth_config *conf, gss_conn_ctx ctx,
-                const char *auth_line, char **negotiate_ret_value);
-
 #endif