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 a411173..fd26362 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 33348db..bf180ac 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 514409d..a37a197 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;
 }