summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/net.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2001-08-03 12:06:29 +0000
committerCorinna Vinschen <corinna@vinschen.de>2001-08-03 12:06:29 +0000
commit7eb971a561ec030f1684649b8e30674d20e25a13 (patch)
treea4ce08de521ca7eec1b17761f5f49485c11940ff /winsup/cygwin/net.cc
parentdce6f5639766db7bafd72308ebd1c848d257e2ef (diff)
downloadcygnal-7eb971a561ec030f1684649b8e30674d20e25a13.tar.gz
cygnal-7eb971a561ec030f1684649b8e30674d20e25a13.tar.bz2
cygnal-7eb971a561ec030f1684649b8e30674d20e25a13.zip
* net.cc (cygwin_accept): Allow NULL peer and len parameters.
* include/cygwin/socket.h: Define socklen_t as int.
Diffstat (limited to 'winsup/cygwin/net.cc')
-rw-r--r--winsup/cygwin/net.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index c3b1e355a..4e93a9e11 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -900,6 +900,17 @@ cygwin_accept (int fd, struct sockaddr *peer, int *len)
fhandler_socket *sock = get (fd);
if (sock)
{
+ /* Allows NULL peer and len parameters. */
+ struct sockaddr_in peer_dummy;
+ int len_dummy;
+ if (!peer)
+ peer = (struct sockaddr *) &peer_dummy;
+ if (!len)
+ {
+ len_dummy = sizeof (struct sockaddr_in);
+ len = &len_dummy;
+ }
+
/* accept on NT fails if len < sizeof (sockaddr_in)
* some programs set len to
* sizeof (name.sun_family) + strlen (name.sun_path) for UNIX domain