Rename context handle lifetime to endtime
This commit is contained in:
@@ -444,7 +444,7 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
|
|||||||
if (kret == 0)
|
if (kret == 0)
|
||||||
kret = krb5_rd_req_out_get_keyblock(context, out,
|
kret = krb5_rd_req_out_get_keyblock(context, out,
|
||||||
&ctx->service_keyblock);
|
&ctx->service_keyblock);
|
||||||
ctx->lifetime = ctx->ticket->ticket.endtime;
|
ctx->endtime = ctx->ticket->ticket.endtime;
|
||||||
|
|
||||||
krb5_rd_req_out_ctx_free(context, out);
|
krb5_rd_req_out_ctx_free(context, out);
|
||||||
if (kret) {
|
if (kret) {
|
||||||
@@ -631,7 +631,7 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
|
|||||||
|
|
||||||
/* Remember the flags */
|
/* Remember the flags */
|
||||||
|
|
||||||
ctx->lifetime = ctx->ticket->ticket.endtime;
|
ctx->endtime = ctx->ticket->ticket.endtime;
|
||||||
ctx->more_flags |= OPEN;
|
ctx->more_flags |= OPEN;
|
||||||
|
|
||||||
if (mech_type)
|
if (mech_type)
|
||||||
@@ -640,7 +640,7 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
|
|||||||
if (time_rec) {
|
if (time_rec) {
|
||||||
ret = _gsskrb5_lifetime_left(minor_status,
|
ret = _gsskrb5_lifetime_left(minor_status,
|
||||||
context,
|
context,
|
||||||
ctx->lifetime,
|
ctx->endtime,
|
||||||
time_rec);
|
time_rec);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
return ret;
|
return ret;
|
||||||
@@ -758,7 +758,7 @@ acceptor_wait_for_dcestyle(OM_uint32 * minor_status,
|
|||||||
|
|
||||||
ret = _gsskrb5_lifetime_left(minor_status,
|
ret = _gsskrb5_lifetime_left(minor_status,
|
||||||
context,
|
context,
|
||||||
ctx->lifetime,
|
ctx->endtime,
|
||||||
&lifetime_rec);
|
&lifetime_rec);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -36,27 +36,27 @@
|
|||||||
OM_uint32
|
OM_uint32
|
||||||
_gsskrb5_lifetime_left(OM_uint32 *minor_status,
|
_gsskrb5_lifetime_left(OM_uint32 *minor_status,
|
||||||
krb5_context context,
|
krb5_context context,
|
||||||
OM_uint32 lifetime,
|
OM_uint32 endtime,
|
||||||
OM_uint32 *lifetime_rec)
|
OM_uint32 *lifetime_rec)
|
||||||
{
|
{
|
||||||
krb5_timestamp timeret;
|
krb5_timestamp now;
|
||||||
krb5_error_code kret;
|
krb5_error_code kret;
|
||||||
|
|
||||||
if (lifetime == 0) {
|
if (endtime == 0) {
|
||||||
*lifetime_rec = GSS_C_INDEFINITE;
|
*lifetime_rec = GSS_C_INDEFINITE;
|
||||||
return GSS_S_COMPLETE;
|
return GSS_S_COMPLETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
kret = krb5_timeofday(context, &timeret);
|
kret = krb5_timeofday(context, &now);
|
||||||
if (kret) {
|
if (kret) {
|
||||||
*minor_status = kret;
|
*minor_status = kret;
|
||||||
return GSS_S_FAILURE;
|
return GSS_S_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lifetime < timeret)
|
if (endtime < now)
|
||||||
*lifetime_rec = 0;
|
*lifetime_rec = 0;
|
||||||
else
|
else
|
||||||
*lifetime_rec = lifetime - timeret;
|
*lifetime_rec = endtime - now;
|
||||||
|
|
||||||
return GSS_S_COMPLETE;
|
return GSS_S_COMPLETE;
|
||||||
}
|
}
|
||||||
@@ -69,18 +69,18 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_context_time
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
krb5_context context;
|
krb5_context context;
|
||||||
OM_uint32 lifetime;
|
OM_uint32 endtime;
|
||||||
OM_uint32 major_status;
|
OM_uint32 major_status;
|
||||||
const gsskrb5_ctx ctx = (const gsskrb5_ctx) context_handle;
|
const gsskrb5_ctx ctx = (const gsskrb5_ctx) context_handle;
|
||||||
|
|
||||||
GSSAPI_KRB5_INIT (&context);
|
GSSAPI_KRB5_INIT (&context);
|
||||||
|
|
||||||
HEIMDAL_MUTEX_lock(&ctx->ctx_id_mutex);
|
HEIMDAL_MUTEX_lock(&ctx->ctx_id_mutex);
|
||||||
lifetime = ctx->lifetime;
|
endtime = ctx->endtime;
|
||||||
HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);
|
HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);
|
||||||
|
|
||||||
major_status = _gsskrb5_lifetime_left(minor_status, context,
|
major_status = _gsskrb5_lifetime_left(minor_status, context,
|
||||||
lifetime, time_rec);
|
endtime, time_rec);
|
||||||
if (major_status != GSS_S_COMPLETE)
|
if (major_status != GSS_S_COMPLETE)
|
||||||
return major_status;
|
return major_status;
|
||||||
|
|
||||||
|
@@ -34,9 +34,9 @@
|
|||||||
#include "gsskrb5_locl.h"
|
#include "gsskrb5_locl.h"
|
||||||
|
|
||||||
OM_uint32 GSSAPI_CALLCONV
|
OM_uint32 GSSAPI_CALLCONV
|
||||||
_gsskrb5_export_sec_context (
|
_gsskrb5_export_sec_context(
|
||||||
OM_uint32 * minor_status,
|
OM_uint32 *minor_status,
|
||||||
gss_ctx_id_t * context_handle,
|
gss_ctx_id_t *context_handle,
|
||||||
gss_buffer_t interprocess_token
|
gss_buffer_t interprocess_token
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -204,7 +204,11 @@ _gsskrb5_export_sec_context (
|
|||||||
*minor_status = kret;
|
*minor_status = kret;
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
kret = krb5_store_int32 (sp, ctx->lifetime);
|
/*
|
||||||
|
* XXX We should put a 64-bit int here, but we don't have a
|
||||||
|
* krb5_store_int64() yet.
|
||||||
|
*/
|
||||||
|
kret = krb5_store_int32 (sp, ctx->endtime);
|
||||||
if (kret) {
|
if (kret) {
|
||||||
*minor_status = kret;
|
*minor_status = kret;
|
||||||
goto failure;
|
goto failure;
|
||||||
|
@@ -81,7 +81,7 @@ typedef struct gsskrb5_ctx {
|
|||||||
krb5_creds *kcred;
|
krb5_creds *kcred;
|
||||||
krb5_ccache ccache;
|
krb5_ccache ccache;
|
||||||
struct krb5_ticket *ticket;
|
struct krb5_ticket *ticket;
|
||||||
OM_uint32 lifetime;
|
time_t endtime;
|
||||||
HEIMDAL_MUTEX ctx_id_mutex;
|
HEIMDAL_MUTEX ctx_id_mutex;
|
||||||
struct gss_msg_order *order;
|
struct gss_msg_order *order;
|
||||||
krb5_keyblock *service_keyblock;
|
krb5_keyblock *service_keyblock;
|
||||||
|
@@ -192,9 +192,13 @@ _gsskrb5_import_sec_context (
|
|||||||
if (krb5_ret_int32 (sp, &tmp))
|
if (krb5_ret_int32 (sp, &tmp))
|
||||||
goto failure;
|
goto failure;
|
||||||
ctx->more_flags = tmp;
|
ctx->more_flags = tmp;
|
||||||
|
/*
|
||||||
|
* XXX endtime should be a 64-bit int, but we don't have
|
||||||
|
* krb5_ret_int64() yet.
|
||||||
|
*/
|
||||||
if (krb5_ret_int32 (sp, &tmp))
|
if (krb5_ret_int32 (sp, &tmp))
|
||||||
goto failure;
|
goto failure;
|
||||||
ctx->lifetime = tmp;
|
ctx->endtime = tmp;
|
||||||
|
|
||||||
ret = _gssapi_msg_order_import(minor_status, sp, &ctx->order);
|
ret = _gssapi_msg_order_import(minor_status, sp, &ctx->order);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@@ -128,7 +128,7 @@ _gsskrb5_create_ctx(
|
|||||||
ctx->service_keyblock = NULL;
|
ctx->service_keyblock = NULL;
|
||||||
ctx->ticket = NULL;
|
ctx->ticket = NULL;
|
||||||
krb5_data_zero(&ctx->fwd_data);
|
krb5_data_zero(&ctx->fwd_data);
|
||||||
ctx->lifetime = GSS_C_INDEFINITE;
|
ctx->endtime = 0;
|
||||||
ctx->order = NULL;
|
ctx->order = NULL;
|
||||||
ctx->crypto = NULL;
|
ctx->crypto = NULL;
|
||||||
HEIMDAL_MUTEX_init(&ctx->ctx_id_mutex);
|
HEIMDAL_MUTEX_init(&ctx->ctx_id_mutex);
|
||||||
@@ -254,10 +254,10 @@ gsskrb5_get_creds(
|
|||||||
return GSS_S_FAILURE;
|
return GSS_S_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx->lifetime = ctx->kcred->times.endtime;
|
ctx->endtime = ctx->kcred->times.endtime;
|
||||||
|
|
||||||
ret = _gsskrb5_lifetime_left(minor_status, context,
|
ret = _gsskrb5_lifetime_left(minor_status, context,
|
||||||
ctx->lifetime, &lifetime_rec);
|
ctx->endtime, &lifetime_rec);
|
||||||
if (ret) return ret;
|
if (ret) return ret;
|
||||||
|
|
||||||
if (lifetime_rec == 0) {
|
if (lifetime_rec == 0) {
|
||||||
@@ -439,7 +439,7 @@ init_auth
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto failure;
|
goto failure;
|
||||||
|
|
||||||
ctx->lifetime = ctx->kcred->times.endtime;
|
ctx->endtime = ctx->kcred->times.endtime;
|
||||||
|
|
||||||
ret = _gss_DES3_get_mic_compat(minor_status, ctx, context);
|
ret = _gss_DES3_get_mic_compat(minor_status, ctx, context);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -447,7 +447,7 @@ init_auth
|
|||||||
|
|
||||||
ret = _gsskrb5_lifetime_left(minor_status,
|
ret = _gsskrb5_lifetime_left(minor_status,
|
||||||
context,
|
context,
|
||||||
ctx->lifetime,
|
ctx->endtime,
|
||||||
&lifetime_rec);
|
&lifetime_rec);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto failure;
|
goto failure;
|
||||||
@@ -797,7 +797,7 @@ repl_mutual
|
|||||||
if (time_rec) {
|
if (time_rec) {
|
||||||
ret = _gsskrb5_lifetime_left(minor_status,
|
ret = _gsskrb5_lifetime_left(minor_status,
|
||||||
context,
|
context,
|
||||||
ctx->lifetime,
|
ctx->endtime,
|
||||||
time_rec);
|
time_rec);
|
||||||
} else {
|
} else {
|
||||||
ret = GSS_S_COMPLETE;
|
ret = GSS_S_COMPLETE;
|
||||||
|
@@ -76,7 +76,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_inquire_context (
|
|||||||
if (lifetime_rec) {
|
if (lifetime_rec) {
|
||||||
ret = _gsskrb5_lifetime_left(minor_status,
|
ret = _gsskrb5_lifetime_left(minor_status,
|
||||||
context,
|
context,
|
||||||
ctx->lifetime,
|
ctx->endtime,
|
||||||
lifetime_rec);
|
lifetime_rec);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto failed;
|
goto failed;
|
||||||
|
@@ -333,7 +333,8 @@ export_lucid_sec_context_v1(OM_uint32 *minor_status,
|
|||||||
if (ret) goto out;
|
if (ret) goto out;
|
||||||
ret = krb5_store_int32(sp, (context_handle->more_flags & LOCAL) ? 1 : 0);
|
ret = krb5_store_int32(sp, (context_handle->more_flags & LOCAL) ? 1 : 0);
|
||||||
if (ret) goto out;
|
if (ret) goto out;
|
||||||
ret = krb5_store_int32(sp, context_handle->lifetime);
|
/* XXX need krb5_store_int64() */
|
||||||
|
ret = krb5_store_int32(sp, context_handle->endtime);
|
||||||
if (ret) goto out;
|
if (ret) goto out;
|
||||||
krb5_auth_con_getlocalseqnumber (context,
|
krb5_auth_con_getlocalseqnumber (context,
|
||||||
context_handle->auth_context,
|
context_handle->auth_context,
|
||||||
|
Reference in New Issue
Block a user