public inbox for cygwin-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin] Cygwin: inline get_socket_flags()
@ 2018-02-21 21:01 Corinna Vinschen
0 siblings, 0 replies; only message in thread
From: Corinna Vinschen @ 2018-02-21 21:01 UTC (permalink / raw)
To: cygwin-cvs
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=a5dfbc69407d5a60f5b0c4d92ada6d022f23bee1
commit a5dfbc69407d5a60f5b0c4d92ada6d022f23bee1
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Wed Feb 21 22:00:04 2018 +0100
Cygwin: inline get_socket_flags()
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/cygwin/fhandler.h | 13 +++++++++++--
winsup/cygwin/fhandler_socket.cc | 11 -----------
winsup/cygwin/include/cygwin/_socketflags.h | 20 ++++++++++++++++++++
winsup/cygwin/include/cygwin/socket.h | 9 ++-------
4 files changed, 33 insertions(+), 20 deletions(-)
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index d912e1c..c50667c 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -10,6 +10,8 @@ details. */
#include "pinfo.h"
#include "tty.h"
+#include <cygwin/_socketflags.h>
+
/* fcntl flags used only internaly. */
#define O_NOSYMLINK 0x080000
#define O_DIROPEN 0x100000
@@ -488,8 +490,15 @@ class fhandler_socket: public fhandler_base
int addr_family;
int type;
virtual int af_local_connect () = 0;
- int get_socket_flags ();
-
+ inline int get_socket_flags ()
+ {
+ int ret = 0;
+ if (is_nonblocking ())
+ ret |= SOCK_NONBLOCK;
+ if (close_on_exec ())
+ ret |= SOCK_CLOEXEC;
+ return ret;
+ }
wsa_event *wsock_events;
HANDLE wsock_mtx;
HANDLE wsock_evt;
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index 371cc39..aafc09c 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -721,17 +721,6 @@ fhandler_socket::link (const char *newpath)
}
int
-fhandler_socket::get_socket_flags ()
-{
- int ret = 0;
- if (is_nonblocking ())
- ret |= SOCK_NONBLOCK;
- if (close_on_exec ())
- ret |= SOCK_CLOEXEC;
- return ret;
-}
-
-int
fhandler_socket::shutdown (int how)
{
int res = ::shutdown (get_socket (), how);
diff --git a/winsup/cygwin/include/cygwin/_socketflags.h b/winsup/cygwin/include/cygwin/_socketflags.h
new file mode 100644
index 0000000..07a5e8b
--- /dev/null
+++ b/winsup/cygwin/include/cygwin/_socketflags.h
@@ -0,0 +1,20 @@
+/* cygwin/_socketflags.h
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#ifndef _CYGWIN__SOCKETFLAGS_H
+#define _CYGWIN__SOCKETFLAGS_H
+
+/* GNU extension flags. Or them to the type parameter in calls to
+ socket(2) to mark socket as nonblocking and/or close-on-exec. */
+#define SOCK_NONBLOCK 0x01000000
+#define SOCK_CLOEXEC 0x02000000
+#ifdef __INSIDE_CYGWIN__
+#define _SOCK_FLAG_MASK 0xff000000 /* Bits left for more extensions */
+#endif
+
+#endif /* _CYGWIN__SOCKETFLAGS_H */
diff --git a/winsup/cygwin/include/cygwin/socket.h b/winsup/cygwin/include/cygwin/socket.h
index 87cee07..b1ab5c2 100644
--- a/winsup/cygwin/include/cygwin/socket.h
+++ b/winsup/cygwin/include/cygwin/socket.h
@@ -130,13 +130,8 @@ struct OLD_msghdr
#define SOCK_RDM 4 /* reliably-delivered message */
#define SOCK_SEQPACKET 5 /* sequential packet socket */
-/* GNU extension flags. Or them to the type parameter in calls to
- socket(2) to mark socket as nonblocking and/or close-on-exec. */
-#define SOCK_NONBLOCK 0x01000000
-#define SOCK_CLOEXEC 0x02000000
-#ifdef __INSIDE_CYGWIN__
-#define _SOCK_FLAG_MASK 0xff000000 /* Bits left for more extensions */
-#endif
+/* defines SOCK_NONBLOCK / SOCK_CLOEXEC */
+#include <cygwin/_socketflags.h>
/* Supported address families. */
/*
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-02-21 21:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-21 21:01 [newlib-cygwin] Cygwin: inline get_socket_flags() Corinna Vinschen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).