summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager
diff options
context:
space:
mode:
authorunknown <anozdrin/alik@alik.>2006-09-05 17:42:59 +0400
committerunknown <anozdrin/alik@alik.>2006-09-05 17:42:59 +0400
commitc1c4d956c1735e3a4b05e111820da2ab0088ebd7 (patch)
treea9c519fd10e25e6723323d26931b91e97feb1fac /server-tools/instance-manager
parenteb0cc3bf8778ca9734c53099a8c30499dcb5a103 (diff)
parentf32e734dddff881955c0d3476698e3cb836874e9 (diff)
downloadmariadb-git-c1c4d956c1735e3a4b05e111820da2ab0088ebd7.tar.gz
Merge alik.:/mnt/raid/alik/MySQL/devel/5.0-tree
into alik.:/mnt/raid/alik/MySQL/devel/5.0-rt mysql-test/lib/mtr_process.pl: Auto merged
Diffstat (limited to 'server-tools/instance-manager')
-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 500b25bec03..58a4093dd05 100644
--- a/server-tools/instance-manager/listener.cc
+++ b/server-tools/instance-manager/listener.cc
@@ -36,6 +36,27 @@
#include "portability.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
*/
@@ -157,6 +178,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);
@@ -198,25 +221,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 */