summaryrefslogtreecommitdiff
path: root/server-tools
diff options
context:
space:
mode:
authoranozdrin/alik@alik. <>2006-09-28 15:10:18 +0400
committeranozdrin/alik@alik. <>2006-09-28 15:10:18 +0400
commit2c73dbfaac55486774d0b6e2c21120812aff729f (patch)
tree159f87ab2b928fd160293a2ddf77a3fd3490d092 /server-tools
parent64c2c0cb19f17d1d78c0d6f7cadf70a1a4eda9ec (diff)
parent18dda5abaffd03b380e78c45037b5535e076395b (diff)
downloadmariadb-git-2c73dbfaac55486774d0b6e2c21120812aff729f.tar.gz
Merge alik.:/mnt/raid/alik/MySQL/devel/5.0-rt
into alik.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
Diffstat (limited to 'server-tools')
-rw-r--r--server-tools/instance-manager/listener.cc42
1 files changed, 23 insertions, 19 deletions
diff --git a/server-tools/instance-manager/listener.cc b/server-tools/instance-manager/listener.cc
index da9338e28c5..197c315dee8 100644
--- a/server-tools/instance-manager/listener.cc
+++ b/server-tools/instance-manager/listener.cc
@@ -38,6 +38,27 @@
#include "thread_registry.h"
+static void set_non_blocking(int socket)
+{
+#ifndef __WIN__
+ int flags= fcntl(socket, F_GETFL, 0);
+ fcntl(socket, F_SETFL, flags | O_NONBLOCK);
+#else
+ u_long arg= 1;
+ ioctlsocket(socket, FIONBIO, &arg);
+#endif
+}
+
+
+static void set_no_inherit(int socket)
+{
+#ifndef __WIN__
+ int flags= fcntl(socket, F_GETFD, 0);
+ fcntl(socket, F_SETFD, flags | FD_CLOEXEC);
+#endif
+}
+
+
/*
Listener_thread - incapsulates listening functionality
*/
@@ -158,6 +179,8 @@ void Listener_thread::run()
/* accept may return -1 (failure or spurious wakeup) */
if (client_fd >= 0) // connection established
{
+ set_no_inherit(client_fd);
+
Vio *vio= vio_new(client_fd, socket_index == 0 ?
VIO_TYPE_SOCKET : VIO_TYPE_TCPIP,
socket_index == 0 ? 1 : 0);
@@ -199,25 +222,6 @@ err:
return;
}
-void set_non_blocking(int socket)
-{
-#ifndef __WIN__
- int flags= fcntl(socket, F_GETFL, 0);
- fcntl(socket, F_SETFL, flags | O_NONBLOCK);
-#else
- u_long arg= 1;
- ioctlsocket(socket, FIONBIO, &arg);
-#endif
-}
-
-void set_no_inherit(int socket)
-{
-#ifndef __WIN__
- int flags= fcntl(socket, F_GETFD, 0);
- fcntl(socket, F_SETFD, flags | FD_CLOEXEC);
-#endif
-}
-
int Listener_thread::create_tcp_socket()
{
/* value to be set by setsockopt */