Hans Leidekker : kerberos: Implement SpDeleteContext.

Alexandre Julliard julliard at winehq.org
Wed Jan 24 16:02:32 CST 2018


Module: wine
Branch: master
Commit: 09f040432649eb12741bb9736ef150afd2c1a92e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=09f040432649eb12741bb9736ef150afd2c1a92e

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Thu Jan 18 23:51:35 2018 +0800

kerberos: Implement SpDeleteContext.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kerberos/krb5_ap.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/dlls/kerberos/krb5_ap.c b/dlls/kerberos/krb5_ap.c
index 7f0006d..4aadd77 100644
--- a/dlls/kerberos/krb5_ap.c
+++ b/dlls/kerberos/krb5_ap.c
@@ -565,6 +565,26 @@ static NTSTATUS NTAPI kerberos_SpAcceptLsaModeContext( LSA_SEC_HANDLE credential
 #endif
 }
 
+static NTSTATUS NTAPI kerberos_SpDeleteContext( LSA_SEC_HANDLE context )
+{
+#ifdef SONAME_LIBGSSAPI_KRB5
+    OM_uint32 ret, minor_status;
+    gss_ctx_id_t ctxt_handle;
+
+    TRACE( "(%lx)\n", context );
+    if (!context) return SEC_E_INVALID_HANDLE;
+    if (!(ctxt_handle = ctxthandle_sspi_to_gss( context ))) return SEC_E_OK;
+
+    ret = pgss_delete_sec_context( &minor_status, &ctxt_handle, GSS_C_NO_BUFFER );
+    TRACE( "gss_delete_sec_context returned %08x minor status %08x\n", ret, minor_status );
+
+    return status_gss_to_sspi( ret );
+#else
+    FIXME( "(%lx)\n", context );
+    return SEC_E_UNSUPPORTED_FUNCTION;
+#endif
+}
+
 static NTSTATUS NTAPI kerberos_SpInitialize(ULONG_PTR package_id, SECPKG_PARAMETERS *params,
     LSA_SECPKG_FUNCTION_TABLE *lsa_function_table)
 {
@@ -610,7 +630,7 @@ static SECPKG_FUNCTION_TABLE kerberos_table =
     NULL, /* DeleteCredentials */
     kerberos_SpInitLsaModeContext,
     kerberos_SpAcceptLsaModeContext,
-    NULL, /* DeleteContext */
+    kerberos_SpDeleteContext,
     NULL, /* ApplyControlToken */
     NULL, /* GetUserInfo */
     NULL, /* GetExtendedInformation */




More information about the wine-cvs mailing list