changeset 11152:446c0f50d04c

sockets: Add gl_fd_to_handle.
author Simon Josefsson <simon@josefsson.org>
date Mon, 09 Feb 2009 14:54:23 +0100
parents c3e8fb6b8af5
children 59b0e29f6908
files ChangeLog lib/sockets.h tests/test-sockets.c
diffstat 3 files changed, 23 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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.
--- a/lib/sockets.h
+++ b/lib/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
--- a/tests/test-sockets.c
+++ b/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 @@
       return 1;
     }
 
+  gl_fd_to_handle (0);
+
   return 0;
 }