diff options
Diffstat (limited to 'src/libstrongswan/utils/windows.c')
-rw-r--r-- | src/libstrongswan/utils/windows.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libstrongswan/utils/windows.c b/src/libstrongswan/utils/windows.c index e511db026..241ad055a 100644 --- a/src/libstrongswan/utils/windows.c +++ b/src/libstrongswan/utils/windows.c @@ -662,6 +662,22 @@ ssize_t windows_read(int fd, void *buf, size_t count) /** * See header */ +#undef write +ssize_t windows_write(int fd, void *buf, size_t count) +{ + ssize_t ret; + + ret = send(fd, buf, count, 0); + if (ret == -1 && WSAGetLastError() == WSAENOTSOCK) + { + ret = write(fd, buf, count); + } + return ret; +} + +/** + * See header + */ int poll(struct pollfd *fds, int nfds, int timeout) { return wserr(WSAPoll(fds, nfds, timeout)); |