summaryrefslogtreecommitdiff
path: root/vio
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2002-08-26 12:28:49 +0300
committerunknown <monty@hundin.mysql.fi>2002-08-26 12:28:49 +0300
commit207e6ea598e56acb3a77603f85d9f4448a81ddcc (patch)
tree3bb12b7ba03f258e5622f2823451145440c8d1fc /vio
parent5f19b0428ee3d3bc433425a19a6b00e302aafe74 (diff)
downloadmariadb-git-207e6ea598e56acb3a77603f85d9f4448a81ddcc.tar.gz
Fix for HPUX to not use -lc_r library.
Fixed hangup problem in net_clear() on HPUX and Windows. Build-tools/Do-compile: Added --bdb-max-lock=60000 option when testing BDB tables. configure.in: Fix for HPUX to not use -lc_r library. vio/viosocket.c: 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));