Use recv on windows and read for the others

This commit is contained in:
Erik Ekman 2009-06-11 16:53:56 +00:00 committed by Erik Ekman
parent e51af14bcc
commit 96ee6f9630

View File

@ -361,7 +361,13 @@ read_tun(int tun_fd, char *buf, size_t len)
/* FreeBSD/Darwin/NetBSD has no header */ /* FreeBSD/Darwin/NetBSD has no header */
int bytes; int bytes;
memset(buf, 0, 4); memset(buf, 0, 4);
#ifdef WINDOWS32
/* Windows needs recv() since it is local UDP socket */
bytes = recv(tun_fd, buf + 4, len - 4, 0);
#else
/* The other need read() because fd is not a socket */
bytes = read(tun_fd, buf + 4, len - 4); bytes = read(tun_fd, buf + 4, len - 4);
#endif /*WINDOWS32*/
if (bytes < 0) { if (bytes < 0) {
return bytes; return bytes;
} else { } else {