diff options
-rw-r--r-- | lib-src/ChangeLog | 6 | ||||
-rw-r--r-- | lib-src/emacsclient.c | 11 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index b3ac07ec269..939cb1b24c0 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,9 @@ +2006-10-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * emacsclient.c [!WINDOWSNT]: Include <fcntl.h> if available. + (set_tcp_socket): Prefer O_NONBLOCK, then O_NDELAY, then FIONBIO + to set the socket in non-blocking mode. + 2006-10-31 Tim Van Holder <tim.vanholder@gmail.com> (tiny change) * emacsclient.c [!WINDOWSNT]: Include <netinet/in.h> and <sys/ioctl.h>. diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index b3a5180653c..b7f3dd592a7 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -38,6 +38,9 @@ Boston, MA 02110-1301, USA. */ # define INITIALIZE() (initialize_sockets ()) typedef unsigned long IOCTL_BOOL_ARG; #else +#ifdef HAVE_FCNTL_H +# include <fcntl.h> +#endif # include <netinet/in.h> # include <sys/ioctl.h> # define INVALID_SOCKET -1 @@ -486,7 +489,15 @@ set_tcp_socket () return INVALID_SOCKET; } +#ifdef O_NONBLOCK + IOCTL (s, O_NONBLOCK, &c_arg); +#else +#ifdef O_NDELAY + IOCTL (s, O_NDELAY, &c_arg); +#else IOCTL (s, FIONBIO, &c_arg); +#endif +#endif setsockopt (s, SOL_SOCKET, SO_LINGER, (char *) &l_arg, sizeof l_arg); /* |