summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler.h
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-08-01 09:00:53 +0000
committerCorinna Vinschen <corinna@vinschen.de>2012-08-01 09:00:53 +0000
commite665b0aab220943787f42aa12690ff8f5e46f135 (patch)
tree2322fde4f99bbccdf2fe89b75805be4a1c4389e9 /winsup/cygwin/fhandler.h
parent01d9574ddd98856285c85b6f71a0066685fe4790 (diff)
downloadcygnal-e665b0aab220943787f42aa12690ff8f5e46f135.tar.gz
cygnal-e665b0aab220943787f42aa12690ff8f5e46f135.tar.bz2
cygnal-e665b0aab220943787f42aa12690ff8f5e46f135.zip
* fhandler.h (fhandler_socket::recv_internal): Add bool parameter.
Add regparm attribute. * fhandler_socket.cc (fhandler_socket::read): Call recv_internal with second parameter set to false. (fhandler_socket::readv): Ditto. (fhandler_socket::recvfrom): Ditto. (fhandler_socket::recv_internal): Convert use_recvmsg from local variable to parameter. Use as request for using WSARecvMsg. Only fail if WSARecvMsg can't be loaded and wsamsg->Control.len > 0, otherwise use WSARecv{From}. Restrict dwFlags to MSG_PEEK when using WSARecvMsg. (fhandler_socket::recvmsg): Prefer using WSARecvMsg. Change priority of tests for not using WSARecvMsg. Call recv_internal with second parameter set accordingly.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r--winsup/cygwin/fhandler.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 9f30f5cc0..39e1e7573 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -558,7 +558,7 @@ class fhandler_socket: public fhandler_base
int open (int flags, mode_t mode = 0);
void __stdcall read (void *ptr, size_t& len) __attribute__ ((regparm (3)));
ssize_t __stdcall readv (const struct iovec *, int iovcnt, ssize_t tot = -1);
- inline ssize_t recv_internal (struct _WSAMSG *wsamsg);
+ inline ssize_t recv_internal (struct _WSAMSG *wsamsg, bool use_recvmsg) __attribute__ ((regparm (3)));
ssize_t recvfrom (void *ptr, size_t len, int flags,
struct sockaddr *from, int *fromlen);
ssize_t recvmsg (struct msghdr *msg, int flags);