pull up r24469, r24530, r24533, r24534, r24535, r24537 from trunk
[krb5.git] / src / lib / gssapi / krb5 / get_tkt_flags.c
index 91360a8af467c83e51cf7f9083a58a1d616dfb71..636fc04db44c6952b03606cfacca63e8e9a56b4d 100644 (file)
@@ -1,6 +1,7 @@
+/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
 /*
  * Copyright 1993 by OpenVision Technologies, Inc.
- * 
+ *
  * Permission to use, copy, modify, distribute, and sell this software
  * and its documentation for any purpose is hereby granted without fee,
  * provided that the above copyright notice appears in all copies and
@@ -10,7 +11,7 @@
  * without specific, written prior permission. OpenVision makes no
  * representations about the suitability of this software for any
  * purpose.  It is provided "as is" without express or implied warranty.
- * 
+ *
  * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 
 #include "gssapiP_krb5.h"
 
-OM_uint32 INTERFACE
-gss_krb5_get_tkt_flags(minor_status, context_handle, ticket_flags)
-     OM_uint32 *minor_status;
-     gss_ctx_id_t context_handle;
-     krb5_flags *ticket_flags;
-{
-   krb5_gss_ctx_id_rec *ctx;
-
-   /* validate the context handle */
-   if (! kg_validate_ctx_id(context_handle)) {
-      *minor_status = G_VALIDATE_FAILED;
-      return(GSS_S_NO_CONTEXT);
-   }
+/*
+ * $Id$
+ */
 
-   ctx = (krb5_gss_ctx_id_rec *) context_handle;
+OM_uint32
+gss_krb5int_get_tkt_flags(OM_uint32 *minor_status,
+                          const gss_ctx_id_t context_handle,
+                          const gss_OID desired_object,
+                          gss_buffer_set_t *data_set)
+{
+    krb5_gss_ctx_id_rec *ctx;
+    gss_buffer_desc rep;
 
-   if (! ctx->established) {
-      *minor_status = KG_CTX_INCOMPLETE;
-      return(GSS_S_NO_CONTEXT);
-   }
+    ctx = (krb5_gss_ctx_id_rec *) context_handle;
 
-   if (ticket_flags)
-      *ticket_flags = ctx->flags;
+    rep.value = &ctx->krb_flags;
+    rep.length = sizeof(ctx->krb_flags);
 
-   *minor_status = 0;
-   return(GSS_S_COMPLETE);
+    return generic_gss_add_buffer_set_member(minor_status, &rep, data_set);
 }