summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gl/m4/close.m42
-rw-r--r--gl/m4/sockets.m44
-rw-r--r--gl/tests/sockets.h15
-rw-r--r--gl/tests/test-sockets.c4
-rw-r--r--lib/gl/m4/sockets.m44
-rw-r--r--lib/gl/sockets.h15
-rw-r--r--lib/gl/tests/test-sockets.c4
7 files changed, 42 insertions, 6 deletions
diff --git a/gl/m4/close.m4 b/gl/m4/close.m4
index fcc9fb1952..29d3abdd13 100644
--- a/gl/m4/close.m4
+++ b/gl/m4/close.m4
@@ -22,4 +22,6 @@ AC_DEFUN([gl_REPLACE_CLOSE],
fi
REPLACE_CLOSE=1
gl_REPLACE_FCLOSE
+ LIB_CLOSE="-lws2_32"
+ AC_SUBST([LIB_CLOSE])
])
diff --git a/gl/m4/sockets.m4 b/gl/m4/sockets.m4
index d5a7dbfb4b..db71bf14a0 100644
--- a/gl/m4/sockets.m4
+++ b/gl/m4/sockets.m4
@@ -1,4 +1,4 @@
-# sockets.m4 serial 4
+# sockets.m4 serial 5
dnl Copyright (C) 2008, 2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -6,6 +6,8 @@ dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_SOCKETS],
[
+ AC_REQUIRE([AC_C_INLINE])
+
gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H
LIBSOCKET=
if test $HAVE_WINSOCK2_H = 1; then
diff --git a/gl/tests/sockets.h b/gl/tests/sockets.h
index 33348db72d..bf180ac95d 100644
--- a/gl/tests/sockets.h
+++ b/gl/tests/sockets.h
@@ -1,6 +1,6 @@
/* sockets.h - wrappers for Windows socket functions
- Copyright (C) 2008 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2009 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,4 +29,17 @@
int gl_sockets_startup (int version);
int gl_sockets_cleanup (void);
+/* This function is useful it you create a socket using gnulib's
+ Winsock wrappers but needs to pass on the socket handle to some
+ other library that only accepts sockets. */
+#if WINDOWS_SOCKETS
+static inline SOCKET
+gl_fd_to_handle (int fd)
+{
+ return _get_osfhandle (fd);
+}
+#else
+#define gl_fd_to_handle(x) (x)
+#endif
+
#endif
diff --git a/gl/tests/test-sockets.c b/gl/tests/test-sockets.c
index 514409d95b..a37a1978c4 100644
--- a/gl/tests/test-sockets.c
+++ b/gl/tests/test-sockets.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Free Software Foundation
+ * Copyright (C) 2008, 2009 Free Software Foundation
* Written by Simon Josefsson.
*
* This program is free software: you can redistribute it and/or modify
@@ -40,5 +40,7 @@ main (int argc, char *argv[])
return 1;
}
+ gl_fd_to_handle (0);
+
return 0;
}
diff --git a/lib/gl/m4/sockets.m4 b/lib/gl/m4/sockets.m4
index d5a7dbfb4b..db71bf14a0 100644
--- a/lib/gl/m4/sockets.m4
+++ b/lib/gl/m4/sockets.m4
@@ -1,4 +1,4 @@
-# sockets.m4 serial 4
+# sockets.m4 serial 5
dnl Copyright (C) 2008, 2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -6,6 +6,8 @@ dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_SOCKETS],
[
+ AC_REQUIRE([AC_C_INLINE])
+
gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H
LIBSOCKET=
if test $HAVE_WINSOCK2_H = 1; then
diff --git a/lib/gl/sockets.h b/lib/gl/sockets.h
index f226640a17..6785824bd0 100644
--- a/lib/gl/sockets.h
+++ b/lib/gl/sockets.h
@@ -1,6 +1,6 @@
/* sockets.h - wrappers for Windows socket functions
- Copyright (C) 2008 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2009 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@@ -29,4 +29,17 @@
int gl_sockets_startup (int version);
int gl_sockets_cleanup (void);
+/* This function is useful it you create a socket using gnulib's
+ Winsock wrappers but needs to pass on the socket handle to some
+ other library that only accepts sockets. */
+#if WINDOWS_SOCKETS
+static inline SOCKET
+gl_fd_to_handle (int fd)
+{
+ return _get_osfhandle (fd);
+}
+#else
+#define gl_fd_to_handle(x) (x)
+#endif
+
#endif
diff --git a/lib/gl/tests/test-sockets.c b/lib/gl/tests/test-sockets.c
index 514409d95b..a37a1978c4 100644
--- a/lib/gl/tests/test-sockets.c
+++ b/lib/gl/tests/test-sockets.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Free Software Foundation
+ * Copyright (C) 2008, 2009 Free Software Foundation
* Written by Simon Josefsson.
*
* This program is free software: you can redistribute it and/or modify
@@ -40,5 +40,7 @@ main (int argc, char *argv[])
return 1;
}
+ gl_fd_to_handle (0);
+
return 0;
}