#include <gssapi/gssapi.h>
#include <gssapi/gssapi_ext.h>
#include <gssapi/gssapi_krb5.h>
+#include <gssapi/gssapi_ntlmssp.h>
#define APR_WANT_STRFUNC
#include "apr_want.h"
gss_key_value_set_desc *cred_store;
#endif
struct seal_key *mag_skey;
+
bool use_basic_auth;
+ gss_OID_set_desc *allowed_mechs;
+ gss_OID_set_desc *basic_mechs;
+};
+
+struct mag_server_config {
+ gss_OID_set default_mechs;
+};
+
+struct mag_req_cfg {
+ struct mag_config *cfg;
+ gss_OID_set desired_mechs;
+ bool use_sessions;
+ bool send_persist;
+ const char *req_proto;
+ const char *rep_proto;
};
struct mag_conn {
- apr_pool_t *parent;
+ apr_pool_t *pool;
gss_ctx_id_t ctx;
bool established;
const char *user_name;
const char *gss_name;
time_t expiration;
- const char *auth_type;
+ int auth_type;
+ bool delegated;
+ struct databuf basic_hash;
};
+
+#define discard_const(ptr) ((void *)((uintptr_t)(ptr)))
+
+struct mag_conn *mag_new_conn_ctx(apr_pool_t *pool);