1 /* 2 * Copyright (c) 1996,1997, by Sun Microsystems, Inc. 3 * All rights reserved. 4 */ 5 6 | #pragma ident "@(#)g_context_time.c 1.13 04/09/08 SMI" 6 | #pragma ident "@(#)g_context_time.c 1.12 98/01/22 SMI" 7 8 /* 9 * glue routines for gss_context_time 10 */ 11 12 #include <mechglueP.h> 13 14 OM_uint32 15 gss_context_time(minor_status, 16 context_handle, 17 time_rec) 18 19 OM_uint32 * minor_status; 20 const gss_ctx_id_t context_handle; 21 OM_uint32 * time_rec; 22 { 23 OM_uint32 status; 24 gss_union_ctx_id_t ctx; 25 gss_mechanism mech; 26 27 | gss_initialize(); 27 | if (minor_status == NULL) 28 + return (GSS_S_CALL_INACCESSIBLE_WRITE); 29 + *minor_status = 0; 30 31 + if (time_rec == NULL) 32 + return (GSS_S_CALL_INACCESSIBLE_WRITE); 33 + 34 + if (context_handle == GSS_C_NO_CONTEXT) 35 + return (GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CONTEXT); 36 + 37 /* 38 * select the approprate underlying mechanism routine and 39 * call it. 40 */ 41 42 ctx = (gss_union_ctx_id_t) context_handle; 43 mech = __gss_get_mechanism(ctx->mech_type); 44 45 if (mech) { 46 47 if (mech->gss_context_time) 48 status = mech->gss_context_time( 49 mech->context, 50 minor_status, 51 ctx->internal_ctx_id, 52 time_rec); 53 else 46 | status = GSS_S_BAD_BINDINGS; 54 | status = GSS_S_UNAVAILABLE; 55 56 return (status); 57 } 58 51 | return (GSS_S_NO_CONTEXT); 59 | return (GSS_S_BAD_MECH); 60 } ----Unchanged portion omitted----