X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Ffdutil.c;h=ca5f65b8f2bed79f12393ae513bc9716e48f3269;hb=f195c1bda3616129bc28d33aae71f9d2dd9047ce;hp=c294754ada767c9f35c386f9c10fde5d47b02115;hpb=37d19f15523b6fe4d1fef2329abe421221b3d4b3;p=catta diff --git a/src/fdutil.c b/src/fdutil.c index c294754..ca5f65b 100644 --- a/src/fdutil.c +++ b/src/fdutil.c @@ -1,18 +1,18 @@ /*** - This file is part of avahi. + This file is part of catta. - avahi is free software; you can redistribute it and/or modify it + catta is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - avahi is distributed in the hope that it will be useful, but WITHOUT + catta is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with avahi; if not, write to the Free Software + License along with catta; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ***/ @@ -23,16 +23,22 @@ #include #include -#include #include +#ifdef HAVE_FCNTL +#include +#else +#include +#endif + #include "fdutil.h" -int avahi_set_cloexec(int fd) { +int catta_set_cloexec(int fd) { int n; assert(fd >= 0); +#if defined(HAVE_FCNTL) if ((n = fcntl(fd, F_GETFD)) < 0) return -1; @@ -40,13 +46,23 @@ int avahi_set_cloexec(int fd) { return 0; return fcntl(fd, F_SETFD, n|FD_CLOEXEC); +#elif defined(_WIN32) + (void)n; + if(!SetHandleInformation((HANDLE)fd, HANDLE_FLAG_INHERIT, 0)) + return -1; + return 0; +#else + (void)n; + return -1; +#endif } -int avahi_set_nonblock(int fd) { +int catta_set_nonblock(int fd) { int n; assert(fd >= 0); +#ifdef HAVE_FCNTL if ((n = fcntl(fd, F_GETFL)) < 0) return -1; @@ -54,9 +70,13 @@ int avahi_set_nonblock(int fd) { return 0; return fcntl(fd, F_SETFL, n|O_NONBLOCK); +#else + n = 1; + return ioctl(fd, FIONBIO, &n); +#endif } -int avahi_wait_for_write(int fd) { +int catta_wait_for_write(int fd) { fd_set fds; int r;