diff options
author | unknown <anozdrin/alik@alik.> | 2006-09-28 15:10:18 +0400 |
---|---|---|
committer | unknown <anozdrin/alik@alik.> | 2006-09-28 15:10:18 +0400 |
commit | eaf199de22d5d1e9dfcec7d592748daaa8ef0e2b (patch) | |
tree | 159f87ab2b928fd160293a2ddf77a3fd3490d092 /server-tools | |
parent | 2d48a1f2a3c3539a977839b94a9d3fe703666753 (diff) | |
parent | afedaa108977d8de05af6fd5915d4a86bdbe91ff (diff) | |
download | mariadb-git-eaf199de22d5d1e9dfcec7d592748daaa8ef0e2b.tar.gz |
Merge alik.:/mnt/raid/alik/MySQL/devel/5.0-rt
into alik.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
BitKeeper/etc/collapsed:
auto-union
mysql-test/r/im_daemon_life_cycle.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/im_daemon_life_cycle.imtest:
Auto merged
mysql-test/t/sp.test:
Auto merged
server-tools/instance-manager/instance.cc:
Auto merged
server-tools/instance-manager/listener.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
mysql-test/lib/mtr_process.pl:
Manually merged.
mysql-test/mysql-test-run.pl:
Manually merged.
Diffstat (limited to 'server-tools')
-rw-r--r-- | server-tools/instance-manager/listener.cc | 42 |
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 */ |