summaryrefslogtreecommitdiff
path: root/vio
diff options
context:
space:
mode:
authormonty@hundin.mysql.fi <>2002-08-26 12:28:49 +0300
committermonty@hundin.mysql.fi <>2002-08-26 12:28:49 +0300
commitf3f1e53e52ce4ac17c7c0d7237179cb768a75771 (patch)
tree3bb12b7ba03f258e5622f2823451145440c8d1fc /vio
parent7229f8534004178a8470c9cac99c9a07c8aecd98 (diff)
downloadmariadb-git-f3f1e53e52ce4ac17c7c0d7237179cb768a75771.tar.gz
Fix for HPUX to not use -lc_r library.
Fixed hangup problem in net_clear() on HPUX and Windows.
Diffstat (limited to 'vio')
-rw-r--r--vio/viosocket.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/vio/viosocket.c b/vio/viosocket.c
index 176af25b395..2c6cdb5a7fd 100644
--- a/vio/viosocket.c
+++ b/vio/viosocket.c
@@ -123,7 +123,6 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode,
#if !defined(HAVE_OPENSSL)
#if !defined(___WIN__) && !defined(__EMX__)
#if !defined(NO_FCNTL_NONBLOCK)
-
if (vio->sd >= 0)
{
int old_fcntl=vio->fcntl_mode;
@@ -134,6 +133,8 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode,
if (old_fcntl != vio->fcntl_mode)
r = fcntl(vio->sd, F_SETFL, vio->fcntl_mode);
}
+#else
+ r= set_blocking_mode ? 0 : 1;
#endif /* !defined(NO_FCNTL_NONBLOCK) */
#else /* !defined(__WIN__) && !defined(__EMX__) */
#ifndef __EMX__
@@ -155,6 +156,10 @@ int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode,
if (old_fcntl != vio->fcntl_mode)
r = ioctlsocket(vio->sd,FIONBIO,(void*) &arg, sizeof(arg));
}
+#ifndef __EMX__
+ else
+ r= test(!(vio->fcntl_mode & O_NONBLOCK)) != set_blocking_mode;
+#endif /* __EMX__ */
#endif /* !defined(__WIN__) && !defined(__EMX__) */
#endif /* !defined (HAVE_OPENSSL) */
DBUG_PRINT("exit", ("%d", r));