sockets: Add gl_fd_to_handle.
authorSimon Josefsson <simon@josefsson.org>
Mon, 9 Feb 2009 13:54:23 +0000 (14:54 +0100)
committerSimon Josefsson <simon@josefsson.org>
Mon, 9 Feb 2009 13:54:23 +0000 (14:54 +0100)
ChangeLog
lib/sockets.h
tests/test-sockets.c

index a41117360148c28d3050ad40e2be46d7509b250c..fd26362f9ee0e5f93aa86f4516891d9e589d6eb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-02-09  Simon Josefsson  <simon@josefsson.org>
+
+       * lib/sockets.h (gl_fd_to_handle): New function.
+
+       * tests/test-sockets.c: Call gl_fd_to_handle.
+
 2009-02-09  Bruno Haible  <bruno@clisp.org>
 
        * doc/havelib.texi: Document the conventions on bi-arch systems.
index 33348db72d49a716b9cc5121d2e7335df326a9a6..bf180ac95d4350d543d107d041800bbef3d348ee 100644 (file)
@@ -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
 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
index 514409d95b6dbd09bce24c6bb06b70b4f4712e72..a37a1978c42a4ef0c50eda4abdc78d77082ff79c 100644 (file)
@@ -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;
 }