diff --git a/CHANGES b/CHANGES index ccdce4d..01a23d6 100644 --- a/CHANGES +++ b/CHANGES @@ -26,6 +26,7 @@ more constness for stralloc and buffer mmap_read/mmap_shared on zero length files no longer fail but return a zero length buffer + if SOCK_NONBLOCK is defined, use it instead of socket+fcntl 0.29: save 8 bytes in taia.h for 64-bit systems diff --git a/socket/socket_tcp4.c b/socket/socket_tcp4.c index c19a2b3..7739e12 100644 --- a/socket/socket_tcp4.c +++ b/socket/socket_tcp4.c @@ -1,10 +1,19 @@ +#include +#ifndef __MINGW32__ #include +#include +#include +#endif #include "socket.h" #include "ndelay.h" int socket_tcp4(void) { +#ifdef SOCK_NONBLOCK + return socket(PF_INET,SOCK_STREAM|SOCK_NONBLOCK,IPPROTO_TCP); +#else int s=socket_tcp4b(); if (s==-1) return -1; if (ndelay_on(s) == -1) { close(s); return -1; } return s; +#endif } diff --git a/socket/socket_tcp6.c b/socket/socket_tcp6.c index 5fc2724..56bf371 100644 --- a/socket/socket_tcp6.c +++ b/socket/socket_tcp6.c @@ -1,10 +1,21 @@ +#include +#ifndef __MINGW32__ #include +#include +#include +#endif +#include +#include "haveip6.h" #include "socket.h" #include "ndelay.h" int socket_tcp6(void) { +#if defined(LIBC_HAS_IP6) && defined(SOCK_NONBLOCK) + return socket(PF_INET6,SOCK_STREAM|SOCK_NONBLOCK,IPPROTO_TCP); +#else int s=socket_tcp6b(); if (s==-1) return -1; if (ndelay_on(s) == -1) { close(s); return -1; } return s; +#endif }