Commit d0a4b50e authored by Michal Marek's avatar Michal Marek
Browse files

- 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.
parent ebaf06a7
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -6,6 +6,15 @@

                                  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)
- Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly

+3 −1
Original line number Diff line number Diff line
@@ -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
   the confusion that could lead to a hung transfer
 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:

@@ -34,6 +35,7 @@ New curl mirrors:
This release would not have looked like this without help, code, reports and
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)
+32 −11
Original line number Diff line number Diff line
@@ -983,14 +983,13 @@ if test x"$want_gss" = xyes; then
      gnu_gss=yes
    ],
    [
      dnl not found, check MIT
      AC_CHECK_HEADER(gssapi/gssapi.h,
        [
          dnl found in the given dirs
          AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
        ],
        [
          dnl not found, check for Heimdal
      dnl not found, check Heimdal or MIT
      AC_CHECK_HEADERS(
        [gssapi/gssapi.h gssapi/gssapi_generic.h gssapi/gssapi_krb5.h],
        [],
        [not_mit=1])
      if test "x$not_mit" = "x1"; then
        dnl MIT not found, check for Heimdal
        AC_CHECK_HEADER(gssapi.h,
            [
              dnl found
@@ -1002,8 +1001,30 @@ if test x"$want_gss" = xyes; then
              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
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@
#include "setup.h"

#ifdef HAVE_GSSAPI
#ifdef HAVE_GSSMIT
#ifdef HAVE_OLD_GSSMIT
#define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
#endif

+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@
#ifndef CURL_DISABLE_FTP
#ifdef HAVE_GSSAPI

#ifdef HAVE_GSSMIT
#ifdef HAVE_OLD_GSSMIT
#define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
#endif