aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2007-07-12 21:34:42 +0000
committerDaniel Stenberg <daniel@haxx.se>2007-07-12 21:34:42 +0000
commita67c8b469852f51d90f6e48bc54ae34addeb8b1b (patch)
tree1b9e79ce17fbef9980fc73c4ef89ee9e6bdfe812
parent49ce3e5160a9576e797bf87cef012b09d1c54ecb (diff)
Made the krb5 code build with Heimdal's GSSAPI lib
-rw-r--r--CHANGES3
-rw-r--r--RELEASE-NOTES1
-rw-r--r--lib/krb5.c12
3 files changed, 15 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 91f342593..e9af77c05 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,9 @@
Changelog
+Daniel S (12 July 2007)
+- Made the krb5 code build with Heimdal's GSSAPI lib.
+
Dan F (12 July 2007)
- Compile most of the example apps in docs/examples when doing a 'make check'.
Fixed some compile warnings and errors in those examples.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index ca1f30a5f..f72fbdab2 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -20,6 +20,7 @@ This release includes the following bugfixes:
o transfer-encoding skipping didn't ignore the 407 response bodies properly
o CURLOPT_SSL_VERIFYHOST set to 1
o CONNECT endless loop
+ o krb5 support builds with Heimdal
This release includes the following known bugs:
diff --git a/lib/krb5.c b/lib/krb5.c
index 2c0a16f2a..989bc4959 100644
--- a/lib/krb5.c
+++ b/lib/krb5.c
@@ -36,14 +36,24 @@
#ifndef CURL_DISABLE_FTP
#ifdef HAVE_GSSAPI
+#ifdef HAVE_GSSMIT
+#define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
+#endif
+
#include <stdlib.h>
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#include <string.h>
+#ifdef HAVE_GSSMIT
+/* MIT style */
#include <gssapi/gssapi.h>
#include <gssapi/gssapi_generic.h>
#include <gssapi/gssapi_krb5.h>
+#else
+/* Heimdal-style */
+#include <gssapi.h>
+#endif
#include "urldata.h"
#include "base64.h"
@@ -185,7 +195,7 @@ krb5_auth(void *app_data, struct connectdata *conn)
gssbuf.value = data->state.buffer;
gssbuf.length = snprintf(gssbuf.value, BUFSIZE, "%s@%s", service, host);
- maj = gss_import_name(&min, &gssbuf, gss_nt_service_name, &gssname);
+ maj = gss_import_name(&min, &gssbuf, GSS_C_NT_HOSTBASED_SERVICE, &gssname);
if(maj != GSS_S_COMPLETE) {
gss_release_name(&min, &gssname);
if(service == srv_host) {