summaryrefslogtreecommitdiff
path: root/lib-src/emacsclient.c
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2006-10-31 13:52:32 +0000
committerJuanma Barranquero <lekktu@gmail.com>2006-10-31 13:52:32 +0000
commit95d0feaa4a914e897f202c5c0b1d8ea14524620a (patch)
treebcdd6ed68f6c5daed71bdd3fccf3917d828e113f /lib-src/emacsclient.c
parentd4fa60c883cfddb62f64c59062f18c784fcbe67e (diff)
[!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.
Diffstat (limited to 'lib-src/emacsclient.c')
-rw-r--r--lib-src/emacsclient.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index b3a5180653..b7f3dd592a 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);
/*