close network sockets on fork
fixes problem with external apps (ie. video-server) inheriting them.
This commit is contained in:
@@ -160,6 +160,8 @@ IPMIDIPort::open_sockets (int base_port, const string& ifname)
|
||||
return false;
|
||||
}
|
||||
|
||||
fcntl(sockin, F_SETFD, fcntl(sockin, F_GETFD) | FD_CLOEXEC);
|
||||
|
||||
struct sockaddr_in addrin;
|
||||
::memset(&addrin, 0, sizeof(addrin));
|
||||
addrin.sin_family = AF_INET;
|
||||
@@ -206,6 +208,8 @@ IPMIDIPort::open_sockets (int base_port, const string& ifname)
|
||||
::perror("socket(out)");
|
||||
return false;
|
||||
}
|
||||
|
||||
fcntl(sockout, F_SETFD, fcntl(sockout, F_GETFD) | FD_CLOEXEC);
|
||||
|
||||
// Will Hall, Oct 2007
|
||||
if (!ifname.empty()) {
|
||||
|
||||
@@ -166,6 +166,9 @@ OSC::start ()
|
||||
_port++;
|
||||
continue;
|
||||
}
|
||||
|
||||
int fd = lo_server_get_socket_fd (_osc_server);
|
||||
fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
|
||||
|
||||
#ifdef ARDOUR_OSC_UNIX_SERVER
|
||||
|
||||
@@ -174,7 +177,7 @@ OSC::start ()
|
||||
// attempt to create unix socket server too
|
||||
|
||||
snprintf(tmpstr, sizeof(tmpstr), "/tmp/sooperlooper_XXXXXX");
|
||||
int fd = mkstemp(tmpstr);
|
||||
fd = mkstemp(tmpstr);
|
||||
|
||||
if (fd >= 0 ) {
|
||||
unlink (tmpstr);
|
||||
@@ -185,6 +188,8 @@ OSC::start ()
|
||||
if (_osc_unix_server) {
|
||||
_osc_unix_socket_path = tmpstr;
|
||||
}
|
||||
fd = lo_server_get_socket_fd (_osc_unix_server)
|
||||
fcntl(fdx, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user