- Fix the MIT / Heimdal check for good:

Define HAVE_GSSMIT if <gssapi/{gssapi.h,gssapi_generic.h,gssapi_krb5.h}> are
  available, otherwise define HAVE_GSSHEIMDAL if <gssapi.h> is available.

  Only define GSS_C_NT_HOSTBASED_SERVICE to gss_nt_service_name if
  GSS_C_NT_HOSTBASED_SERVICE isn't declared by the gssapi headers. This should
  avoid breakage in case we wrongly recognize Heimdal as MIT again.
This commit is contained in:
Michal Marek 2008-04-07 09:26:30 +00:00
parent ebaf06a741
commit d0a4b50e19
5 changed files with 46 additions and 14 deletions

View File

@ -6,6 +6,15 @@
Changelog Changelog
Michal Marek (7 Apr 2008)
- Fix the MIT / Heimdal check for good:
Define HAVE_GSSMIT if <gssapi/{gssapi.h,gssapi_generic.h,gssapi_krb5.h}> are
available, otherwise define HAVE_GSSHEIMDAL if <gssapi.h> is available.
Only define GSS_C_NT_HOSTBASED_SERVICE to gss_nt_service_name if
GSS_C_NT_HOSTBASED_SERVICE isn't declared by the gssapi headers. This should
avoid breakage in case we wrongly recognize Heimdal as MIT again.
Daniel Stenberg (5 Apr 2008) Daniel Stenberg (5 Apr 2008)
- Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly - Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly

View File

@ -18,6 +18,7 @@ This release includes the following bugfixes:
o CURLOPT_NOBODY first set to TRUE and then FALSE for HTTP no longer causes o CURLOPT_NOBODY first set to TRUE and then FALSE for HTTP no longer causes
the confusion that could lead to a hung transfer the confusion that could lead to a hung transfer
o curl_easy_reset() resets the max redirect limit properly o curl_easy_reset() resets the max redirect limit properly
o configure now correctly recognizes Heimdal and MIT gssapi libraries
This release includes the following known bugs: This release includes the following known bugs:
@ -34,6 +35,7 @@ New curl mirrors:
This release would not have looked like this without help, code, reports and This release would not have looked like this without help, code, reports and
advice from friends like these: advice from friends like these:
Michal Marek, Daniel Fandrich, Scott Barrett, Alexey Simak Michal Marek, Daniel Fandrich, Scott Barrett, Alexey Simak, Daniel Black,
Rafa Muyo
Thanks! (and sorry if I forgot to mention someone) Thanks! (and sorry if I forgot to mention someone)

View File

@ -983,15 +983,14 @@ if test x"$want_gss" = xyes; then
gnu_gss=yes gnu_gss=yes
], ],
[ [
dnl not found, check MIT dnl not found, check Heimdal or MIT
AC_CHECK_HEADER(gssapi/gssapi.h, AC_CHECK_HEADERS(
[ [gssapi/gssapi.h gssapi/gssapi_generic.h gssapi/gssapi_krb5.h],
dnl found in the given dirs [],
AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries]) [not_mit=1])
], if test "x$not_mit" = "x1"; then
[ dnl MIT not found, check for Heimdal
dnl not found, check for Heimdal AC_CHECK_HEADER(gssapi.h,
AC_CHECK_HEADER(gssapi.h,
[ [
dnl found dnl found
AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries]) AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
@ -1002,8 +1001,30 @@ if test x"$want_gss" = xyes; then
AC_MSG_WARN(disabling GSSAPI since no header files was found) AC_MSG_WARN(disabling GSSAPI since no header files was found)
] ]
) )
] else
) dnl MIT found
AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
dnl check if we have a really old MIT kerberos (<= 1.2)
AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE])
AC_TRY_COMPILE([
#include <gssapi/gssapi.h>
#include <gssapi/gssapi_generic.h>
#include <gssapi/gssapi_krb5.h>
],[
gss_import_name(
(OM_uint32 *)0,
(gss_buffer_t)0,
GSS_C_NT_HOSTBASED_SERVICE,
(gss_name_t *)0);
],[
AC_MSG_RESULT([yes])
],[
AC_MSG_RESULT([no])
AC_DEFINE(HAVE_OLD_GSSMIT, 1, [if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE])
]
)
fi
] ]
) )
else else

View File

@ -23,7 +23,7 @@
#include "setup.h" #include "setup.h"
#ifdef HAVE_GSSAPI #ifdef HAVE_GSSAPI
#ifdef HAVE_GSSMIT #ifdef HAVE_OLD_GSSMIT
#define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name #define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
#endif #endif

View File

@ -36,7 +36,7 @@
#ifndef CURL_DISABLE_FTP #ifndef CURL_DISABLE_FTP
#ifdef HAVE_GSSAPI #ifdef HAVE_GSSAPI
#ifdef HAVE_GSSMIT #ifdef HAVE_OLD_GSSMIT
#define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name #define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
#endif #endif