From 5effe8f3367c065125c02cccd0193b9a2ba0574e Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 29 Aug 2005 08:42:45 +0000 Subject: [PATCH] Simon Josefson brought GNU GSS support --- CHANGES | 4 ++++ RELEASE-NOTES | 3 ++- configure.ac | 75 ++++++++++++++++++++++++++++++++++++++--------------------- lib/urldata.h | 14 ++++++----- 4 files changed, 63 insertions(+), 33 deletions(-) diff --git a/CHANGES b/CHANGES index 302fafa..868edcb 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 fb224f7..d346f09 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 64a5b0a..5f29b3c 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 3afc90a..d54250a 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -98,12 +98,14 @@ #include "hash.h" #ifdef HAVE_GSSAPI -#ifdef HAVE_GSSMIT -#include -#include -#else -#include -#endif +# ifdef HAVE_GSSGNU +# include +# elif defined HAVE_GSSMIT +# include +# include +# else +# include +# endif #endif /* Download buffer size, keep it fairly big for speed reasons */ -- 2.7.4