Index: acinclude.m4
===================================================================
RCS file: /cvsroot/curl/curl/acinclude.m4,v
retrieving revision 1.136
diff -u -r1.136 acinclude.m4
--- acinclude.m4	24 Oct 2007 16:40:59 -0000	1.136
+++ acinclude.m4	19 Dec 2007 22:37:37 -0000
@@ -786,6 +786,8 @@
       *)
         AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv,
           [type to use in place of socklen_t if not defined])
+        AC_DEFINE_UNQUOTED(CURLCONF_DEFINES_SOCKLEN_T, 1,
+          [defined to 1 if curl's configure defines socklen_t replacement])
         ;;
     esac
   ],[
Index: configure.ac
===================================================================
RCS file: /cvsroot/curl/curl/configure.ac,v
retrieving revision 1.269
diff -u -r1.269 configure.ac
--- configure.ac	14 Dec 2007 22:09:15 -0000	1.269
+++ configure.ac	19 Dec 2007 22:37:38 -0000
@@ -33,7 +33,7 @@
 terms of the curl license; see COPYING for more details])
 
 AC_CONFIG_SRCDIR([lib/urldata.h])
-AM_CONFIG_HEADER(lib/config.h src/config.h)
+AM_CONFIG_HEADER(lib/config.h src/config.h include/curl/types.h)
 AM_MAINTAINER_MODE
 
 dnl SED is needed by some of the tools
@@ -1929,6 +1929,19 @@
 # Check for socklen_t or equivalent
 CURL_CHECK_TYPE_SOCKLEN_T
 
+AH_VERBATIM([CURLCONF_DEFINES_SOCKLEN_T],
+[/* defined to 1 if curl's configure defines socklen_t replacement */
+#ifndef CURLCONF_DEFINES_SOCKLEN_T
+#undef CURLCONF_DEFINES_SOCKLEN_T
+#endif])
+
+AH_VERBATIM([socklen_t],
+[/* curl's configure socklen_t definition if unavailable in system headers */
+#if defined(CURLCONF_DEFINES_SOCKLEN_T) && !defined(HAVE_SOCKLEN_T)
+#undef socklen_t
+#define HAVE_SOCKLEN_T 1
+#endif])
+
 TYPE_IN_ADDR_T
 
 TYPE_SOCKADDR_STORAGE
Index: include/curl/types.h
===================================================================
RCS file: /cvsroot/curl/curl/include/curl/types.h,v
retrieving revision 1.8
diff -u -r1.8 types.h
--- include/curl/types.h	26 Apr 2004 14:06:51 -0000	1.8
+++ include/curl/types.h	19 Dec 2007 22:37:38 -0000
@@ -1 +1,12 @@
-/* not used */
+/* include/curl/types.h.  Generated from types.h.in by configure.  */
+
+/* defined to 1 if curl's configure defines socklen_t replacement */
+#ifndef CURLCONF_DEFINES_SOCKLEN_T
+/* #undef CURLCONF_DEFINES_SOCKLEN_T */
+#endif
+
+/* curl's configure socklen_t definition if unavailable in system headers */
+#if defined(CURLCONF_DEFINES_SOCKLEN_T) && !defined(HAVE_SOCKLEN_T)
+/* #undef socklen_t */
+#define HAVE_SOCKLEN_T 1
+#endif
Index: include/curl/types.h.dist
===================================================================
RCS file: include/curl/types.h.dist
diff -N include/curl/types.h.dist
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ include/curl/types.h.dist	19 Dec 2007 22:37:38 -0000
@@ -0,0 +1 @@
+/* not used */
Index: include/curl/types.h.in
===================================================================
RCS file: include/curl/types.h.in
diff -N include/curl/types.h.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ include/curl/types.h.in	19 Dec 2007 22:37:38 -0000
@@ -0,0 +1,11 @@
+
+/* defined to 1 if curl's configure defines socklen_t replacement */
+#ifndef CURLCONF_DEFINES_SOCKLEN_T
+#undef CURLCONF_DEFINES_SOCKLEN_T
+#endif
+
+/* curl's configure socklen_t definition if unavailable in system headers */
+#if defined(CURLCONF_DEFINES_SOCKLEN_T) && !defined(HAVE_SOCKLEN_T)
+#undef socklen_t
+#define HAVE_SOCKLEN_T 1
+#endif
