summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib-src/ChangeLog6
-rw-r--r--lib-src/emacsclient.c11
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);
/*