aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES4
-rw-r--r--RELEASE-NOTES3
-rw-r--r--configure.ac75
-rw-r--r--lib/urldata.h14
4 files changed, 63 insertions, 33 deletions
diff --git a/CHANGES b/CHANGES
index 302fafa65..868edcbf3 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,10 @@
Changelog
+Daniel (29 August 2005)
+- Simon Josefsson brought a patch that allows curl to get built to use GNU GSS
+ instead of MIT/Heimdal for GSS capabilities.
+
Daniel (24 August 2005)
- Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible
from the command line tool with --ignore-content-length. This will make it
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index fb224f787..d346f0999 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -11,6 +11,7 @@ Curl and libcurl 7.14.1
This release includes the following changes:
+ o GNU GSS support
o --ignore-content-length and CURLOPT_IGNORE_CONTENT_LENGTH added
o negotiates data connection SSL earlier when doing FTPS with PASV
o CURLOPT_COOKIELIST and CURLINFO_COOKIELIST
@@ -65,6 +66,6 @@ advice from friends like these:
Tupone Alfredo, Gisle Vanem, David Shaw, Andrew Bushnell, Dan Fandrich,
Adrian Schuur, Diego Casorran, Peteris Krumins, Jon Grubbs, Christopher
R. Palmer, Mario Schroeder, Richard Clayton, James Bursa, Jeff Pohlmeyer,
- Norbert Novotny, Toby Peterson
+ Norbert Novotny, Toby Peterson, Simon Josefsson
Thanks! (and sorry if I forgot to mention someone)
diff --git a/configure.ac b/configure.ac
index 64a5b0a03..5f29b3ca1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -687,7 +687,7 @@ AC_ARG_WITH(gssapi-includes,
AC_ARG_WITH(gssapi-libs,
AC_HELP_STRING([--with-gssapi-libs=DIR],
[Specify location of GSSAPI libs]),
- [ GSSAPI_LIBS="-L$withval -lgssapi"
+ [ GSSAPI_LIBS="-L$withval"
want_gss="yes" ]
)
@@ -702,6 +702,8 @@ AC_ARG_WITH(gssapi,
AC_MSG_CHECKING([if GSSAPI support is requested])
if test x"$want_gss" = xyes; then
+ AC_MSG_RESULT(yes)
+
if test -z "$GSSAPI_INCS"; then
if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi`
@@ -709,9 +711,51 @@ if test x"$want_gss" = xyes; then
GSSAPI_INCS="-I$GSSAPI_ROOT/include"
fi
fi
+ save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
-
- if test -z "$GSSAPI_LIB_DIR"; then
+
+ AC_CHECK_HEADER(gss.h,
+ [
+ dnl found in the given dirs
+ AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries])
+ gnu_gss=yes
+ ],
+ [
+ dnl not found, check Heimdal
+ AC_CHECK_HEADER(gssapi.h,
+ [
+ dnl found in the given dirs
+ AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
+ ],
+ [
+ dnl not found, check in gssapi/ subdir
+ AC_CHECK_HEADER(gssapi/gssapi.h,
+ [
+ dnl found
+ AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
+ ],
+ [
+ dnl no header found, disabling GSS
+ want_gss=no
+ AC_MSG_WARN(disabling GSSAPI since no header files was found)
+ ]
+ )
+ ]
+ )
+ ]
+ )
+else
+ AC_MSG_RESULT(no)
+fi
+if test x"$want_gss" = xyes; then
+ AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries])
+
+ curl_gss_msg="enabled (MIT/Heimdal)"
+
+ if test -n "$gnu_gss"; then
+ curl_gss_msg="enabled (GNU GSS)"
+ LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR -lgss"
+ elif test -z "$GSSAPI_LIB_DIR"; then
if test -f "$GSSAPI_ROOT/bin/krb5-config"; then
gss_ldflags=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi`
LDFLAGS="$LDFLAGS $gss_ldflags"
@@ -721,31 +765,10 @@ if test x"$want_gss" = xyes; then
LDFLAGS="$LDFLAGS -lgssapi"
fi
else
- LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR"
+ LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR -lgssapi"
fi
-
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries])
-
- curl_gss_msg="enabled"
-
- AC_CHECK_HEADER(gssapi.h,
- [
- dnl found in the given dirs
- AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries])
- ],
- [
- dnl not found, check in gssapi/ subdir
- AC_CHECK_HEADER(gssapi/gssapi.h,
- dnl found
- AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries])
- )
-
- ]
- )
-
else
- AC_MSG_RESULT(no)
+ CPPFLAGS="$save_CPPFLAGS"
fi
dnl **********************************************************************
diff --git a/lib/urldata.h b/lib/urldata.h
index 3afc90a4c..d54250a5d 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -98,12 +98,14 @@
#include "hash.h"
#ifdef HAVE_GSSAPI
-#ifdef HAVE_GSSMIT
-#include <gssapi/gssapi.h>
-#include <gssapi/gssapi_generic.h>
-#else
-#include <gssapi.h>
-#endif
+# ifdef HAVE_GSSGNU
+# include <gss.h>
+# elif defined HAVE_GSSMIT
+# include <gssapi/gssapi.h>
+# include <gssapi/gssapi_generic.h>
+# else
+# include <gssapi.h>
+# endif
#endif
/* Download buffer size, keep it fairly big for speed reasons */