diff options
author | Simo Sorce <simo@redhat.com> | 2012-07-23 17:58:41 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-08-28 08:25:52 +0200 |
commit | d2c02366ecd3d94ff8c9b6c86696f7d9ada4b0d0 (patch) | |
tree | 662228a8c732792a95bed7f9ce2a758c027ef344 | |
parent | 5bbcfc3656afa34f292419fa7a33311d47a62a63 (diff) | |
download | gss-proxy-d2c02366ecd3d94ff8c9b6c86696f7d9ada4b0d0.tar.gz gss-proxy-d2c02366ecd3d94ff8c9b6c86696f7d9ada4b0d0.tar.xz gss-proxy-d2c02366ecd3d94ff8c9b6c86696f7d9ada4b0d0.zip |
Add context handle wrapper
-rw-r--r-- | proxy/src/client/gpm_accept_sec_context.c | 6 | ||||
-rw-r--r-- | proxy/src/client/gpm_init_sec_context.c | 6 | ||||
-rw-r--r-- | proxy/src/client/gpm_release_handle.c | 6 | ||||
-rw-r--r-- | proxy/src/client/gssapi_gpm.h | 6 | ||||
-rw-r--r-- | proxy/src/mechglue/gss_plugin.h | 5 | ||||
-rw-r--r-- | proxy/tests/cli_srv_comm.c | 4 |
6 files changed, 19 insertions, 14 deletions
diff --git a/proxy/src/client/gpm_accept_sec_context.c b/proxy/src/client/gpm_accept_sec_context.c index a4b08d4..1f6a3d3 100644 --- a/proxy/src/client/gpm_accept_sec_context.c +++ b/proxy/src/client/gpm_accept_sec_context.c @@ -27,7 +27,7 @@ #include "src/gp_conv.h" OM_uint32 gpm_accept_sec_context(OM_uint32 *minor_status, - gss_ctx_id_t *context_handle, + gssx_ctx **context_handle, gssx_cred *acceptor_cred_handle, gss_buffer_t input_token_buffer, gss_channel_bindings_t input_chan_bindings, @@ -54,7 +54,7 @@ OM_uint32 gpm_accept_sec_context(OM_uint32 *minor_status, /* prepare proxy request */ if (*context_handle) { - arg->context_handle = (gssx_ctx *)*context_handle; + arg->context_handle = *context_handle; } if (acceptor_cred_handle) { @@ -121,7 +121,7 @@ OM_uint32 gpm_accept_sec_context(OM_uint32 *minor_status, xdr_free((xdrproc_t)xdr_gssx_ctx, (char *)*context_handle); free(*context_handle); } - *context_handle = (gss_ctx_id_t)ctx; + *context_handle = ctx; if (mech_type) { *mech_type = mech; } diff --git a/proxy/src/client/gpm_init_sec_context.c b/proxy/src/client/gpm_init_sec_context.c index 581dbc5..ab6ed80 100644 --- a/proxy/src/client/gpm_init_sec_context.c +++ b/proxy/src/client/gpm_init_sec_context.c @@ -28,7 +28,7 @@ OM_uint32 gpm_init_sec_context(OM_uint32 *minor_status, gssx_cred *cred_handle, - gss_ctx_id_t *context_handle, + gssx_ctx **context_handle, gss_name_t target_name, gss_OID mech_type, OM_uint32 req_flags, @@ -60,7 +60,7 @@ OM_uint32 gpm_init_sec_context(OM_uint32 *minor_status, } if (*context_handle) { - arg->context_handle = (gssx_ctx *)*context_handle; + arg->context_handle = *context_handle; } if (target_name != GSS_C_NO_NAME) { @@ -142,7 +142,7 @@ done: xdr_free((xdrproc_t)xdr_gssx_ctx, (char *)*context_handle); free(*context_handle); } - *context_handle = (gss_ctx_id_t)ctx; + *context_handle = ctx; if (actual_mech_type) { *actual_mech_type = mech; } diff --git a/proxy/src/client/gpm_release_handle.c b/proxy/src/client/gpm_release_handle.c index f1eee00..1e7524e 100644 --- a/proxy/src/client/gpm_release_handle.c +++ b/proxy/src/client/gpm_release_handle.c @@ -78,7 +78,7 @@ done: } OM_uint32 gpm_delete_sec_context(OM_uint32 *minor_status, - gss_ctx_id_t *context_handle, + gssx_ctx **context_handle, gss_buffer_t output_token) { union gp_rpc_arg uarg; @@ -88,11 +88,11 @@ OM_uint32 gpm_delete_sec_context(OM_uint32 *minor_status, gssx_ctx *r; int ret; - if (context_handle == NULL || *context_handle == GSS_C_NO_CONTEXT) { + if (context_handle == NULL || *context_handle == NULL) { return 0; } - r = (gssx_ctx *)(*context_handle); + r = (*context_handle); if (!r->needs_release) { ret = GSS_S_COMPLETE; diff --git a/proxy/src/client/gssapi_gpm.h b/proxy/src/client/gssapi_gpm.h index 7267d00..0d10a9e 100644 --- a/proxy/src/client/gssapi_gpm.h +++ b/proxy/src/client/gssapi_gpm.h @@ -56,7 +56,7 @@ OM_uint32 gpm_display_status(OM_uint32 *minor_status, gss_buffer_t status_string); OM_uint32 gpm_accept_sec_context(OM_uint32 *minor_status, - gss_ctx_id_t *context_handle, + gssx_ctx **context_handle, gssx_cred *acceptor_cred_handle, gss_buffer_t input_token_buffer, gss_channel_bindings_t input_chan_bindings, @@ -71,7 +71,7 @@ OM_uint32 gpm_release_cred(OM_uint32 *minor_status, gssx_cred **cred_handle); OM_uint32 gpm_delete_sec_context(OM_uint32 *minor_status, - gss_ctx_id_t *context_handle, + gssx_ctx **context_handle, gss_buffer_t output_token); OM_uint32 gpm_acquire_cred(OM_uint32 *minor_status, @@ -165,7 +165,7 @@ OM_uint32 gpm_compare_name(OM_uint32 *minor_status, OM_uint32 gpm_init_sec_context(OM_uint32 *minor_status, gssx_cred *cred_handle, - gss_ctx_id_t *context_handle, + gssx_ctx **context_handle, gss_name_t target_name, gss_OID mech_type, OM_uint32 req_flags, diff --git a/proxy/src/mechglue/gss_plugin.h b/proxy/src/mechglue/gss_plugin.h index 05fd157..2d768c0 100644 --- a/proxy/src/mechglue/gss_plugin.h +++ b/proxy/src/mechglue/gss_plugin.h @@ -33,6 +33,11 @@ struct gpp_cred_handle { gss_cred_id_t local; }; +struct gpp_context_handle { + gssx_ctx *remote; + gss_ctx_id_t local; +}; + extern const gss_OID_desc gssproxy_mech_interposer; enum gpp_behavior { diff --git a/proxy/tests/cli_srv_comm.c b/proxy/tests/cli_srv_comm.c index 87ae434..6514bc6 100644 --- a/proxy/tests/cli_srv_comm.c +++ b/proxy/tests/cli_srv_comm.c @@ -205,7 +205,7 @@ void *client_thread(void *pvt) gss_buffer_desc in_token = GSS_C_EMPTY_BUFFER; gss_buffer_desc out_token = GSS_C_EMPTY_BUFFER; gss_name_t name = GSS_C_NO_NAME; - gss_ctx_id_t ctx = GSS_C_NO_CONTEXT; + struct gssx_ctx *ctx = NULL; struct gssx_cred *cred_handle = NULL; int ret = 0; gss_buffer_desc msg_buf = GSS_C_EMPTY_BUFFER; @@ -314,7 +314,7 @@ void *server_thread(void *pvt) gss_buffer_desc in_token = GSS_C_EMPTY_BUFFER; uint32_t ret_maj; uint32_t ret_min; - gss_ctx_id_t context_handle = GSS_C_NO_CONTEXT; + struct gssx_ctx *context_handle = NULL; struct gssx_cred *cred_handle = NULL; gss_name_t src_name; gss_buffer_desc out_token = GSS_C_EMPTY_BUFFER; |