13
0

more OSC socket fcntl() close-on-exec

This commit is contained in:
Robin Gareus 2013-06-07 18:02:47 +02:00
parent 6b19f5a444
commit bdf91de8b7

View File

@ -191,9 +191,9 @@ OSC::start ()
if (_osc_unix_server) { if (_osc_unix_server) {
_osc_unix_socket_path = tmpstr; _osc_unix_socket_path = tmpstr;
fd = lo_server_get_socket_fd (_osc_unix_server)
fcntl(fdx, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
} }
fd = lo_server_get_socket_fd (_osc_unix_server)
fcntl(fdx, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
} }
#endif #endif
@ -232,19 +232,23 @@ OSC::thread_init ()
pthread_set_name (X_("OSC")); pthread_set_name (X_("OSC"));
if (_osc_unix_server) { if (_osc_unix_server) {
const int fd = lo_server_get_socket_fd (_osc_unix_server);
Glib::RefPtr<IOSource> src = IOSource::create (lo_server_get_socket_fd (_osc_unix_server), IO_IN|IO_HUP|IO_ERR); Glib::RefPtr<IOSource> src = IOSource::create (lo_server_get_socket_fd (_osc_unix_server), IO_IN|IO_HUP|IO_ERR);
src->connect (sigc::bind (sigc::mem_fun (*this, &OSC::osc_input_handler), _osc_unix_server)); src->connect (sigc::bind (sigc::mem_fun (*this, &OSC::osc_input_handler), _osc_unix_server));
src->attach (_main_loop->get_context()); src->attach (_main_loop->get_context());
local_server = src->gobj(); local_server = src->gobj();
g_source_ref (local_server); g_source_ref (local_server);
fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
} }
if (_osc_server) { if (_osc_server) {
Glib::RefPtr<IOSource> src = IOSource::create (lo_server_get_socket_fd (_osc_server), IO_IN|IO_HUP|IO_ERR); const int fd = lo_server_get_socket_fd (_osc_server);
Glib::RefPtr<IOSource> src = IOSource::create (fd, IO_IN|IO_HUP|IO_ERR);
src->connect (sigc::bind (sigc::mem_fun (*this, &OSC::osc_input_handler), _osc_server)); src->connect (sigc::bind (sigc::mem_fun (*this, &OSC::osc_input_handler), _osc_server));
src->attach (_main_loop->get_context()); src->attach (_main_loop->get_context());
remote_server = src->gobj(); remote_server = src->gobj();
g_source_ref (remote_server); g_source_ref (remote_server);
fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
} }
PBD::notify_gui_about_thread_creation (X_("gui"), pthread_self(), X_("OSC"), 2048); PBD::notify_gui_about_thread_creation (X_("gui"), pthread_self(), X_("OSC"), 2048);