From f2200cbe4a2cec8c7cf5c42a756988e3e6ebf1f7 Mon Sep 17 00:00:00 2001 From: Priit Laes Date: Tue, 29 Sep 2015 10:37:54 +0300 Subject: [PATCH] Make PyKerberos build against Heimdal. 2010-12-21 Martin von Gagern https://trac.calendarserver.org/ticket/404 --- src/kerberosbasic.h | 2 +- src/kerberosgss.c | 8 +++++--- src/kerberosgss.h | 2 +- src/kerberospw.h | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/kerberosbasic.h b/src/kerberosbasic.h index f3cfce5..c728242 100644 --- a/src/kerberosbasic.h +++ b/src/kerberosbasic.h @@ -14,8 +14,8 @@ * limitations under the License. **/ +#include #include -#include #include #define krb5_get_err_text(context,code) error_message(code) diff --git a/src/kerberosgss.c b/src/kerberosgss.c index 58bcccc..00271b4 100644 --- a/src/kerberosgss.c +++ b/src/kerberosgss.c @@ -38,7 +38,8 @@ char* server_principal_details(const char* service, const char* hostname) int code; krb5_context kcontext; krb5_keytab kt = NULL; - krb5_kt_cursor cursor = NULL; + krb5_kt_cursor cursor; + int seq_get_started = 0; krb5_keytab_entry entry; char* pname = NULL; @@ -68,6 +69,7 @@ char* server_principal_details(const char* service, const char* hostname) goto end; } + seq_get_started = 1; while ((code = krb5_kt_next_entry(kcontext, kt, &entry, &cursor)) == 0) { if ((code = krb5_unparse_name(kcontext, entry.principal, &pname))) @@ -97,7 +99,7 @@ char* server_principal_details(const char* service, const char* hostname) } end: - if (cursor) + if (seq_get_started) krb5_kt_end_seq_get(kcontext, kt, &cursor); if (kt) krb5_kt_close(kcontext, kt); @@ -130,7 +132,7 @@ int authenticate_gss_client_init(const char* service, const char* principal, lon if (strchr(service, '/')) mech = GSS_C_NO_OID; else - mech = gss_krb5_nt_service_name; + mech = GSS_KRB5_NT_PRINCIPAL_NAME; maj_stat = gss_import_name(&min_stat, &name_token, mech, &state->server_name); diff --git a/src/kerberosgss.h b/src/kerberosgss.h index 8b5e57c..2c40cec 100644 --- a/src/kerberosgss.h +++ b/src/kerberosgss.h @@ -14,8 +14,8 @@ * limitations under the License. **/ +#include #include -#include #include #ifdef GSSAPI_EXT #include diff --git a/src/kerberospw.h b/src/kerberospw.h index 578108a..abed698 100644 --- a/src/kerberospw.h +++ b/src/kerberospw.h @@ -15,8 +15,8 @@ * **/ +#include #include -#include #include #define krb5_get_err_text(context,code) error_message(code)