Simon Josefson brought GNU GSS support
authorDaniel Stenberg <daniel@haxx.se>
Mon, 29 Aug 2005 08:42:45 +0000 (08:42 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 29 Aug 2005 08:42:45 +0000 (08:42 +0000)
CHANGES
RELEASE-NOTES
configure.ac
lib/urldata.h

diff --git a/CHANGES b/CHANGES
index 302fafa..868edcb 100644 (file)
--- 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
index fb224f7..d346f09 100644 (file)
@@ -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)
index 64a5b0a..5f29b3c 100644 (file)
@@ -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 **********************************************************************
index 3afc90a..d54250a 100644 (file)
 #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 */