]> git.sesse.net Git - vlc/commitdiff
contrib: force close-on-exec flag on live555 sockets
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 23 Aug 2011 15:32:08 +0000 (18:32 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 23 Aug 2011 15:32:37 +0000 (18:32 +0300)
contrib/src/live555/live-cloexec.patch [new file with mode: 0644]
contrib/src/live555/rules.mak

diff --git a/contrib/src/live555/live-cloexec.patch b/contrib/src/live555/live-cloexec.patch
new file mode 100644 (file)
index 0000000..fbdbff9
--- /dev/null
@@ -0,0 +1,49 @@
+Copyright (C) 2011 Rémi Denis-Courmont.
+Licensed under GNU General Public License version 2 or higher.
+diff -ru live.orig/groupsock/GroupsockHelper.cpp live555/groupsock/GroupsockHelper.cpp
+--- live.orig/groupsock/GroupsockHelper.cpp    2011-08-23 18:19:59.000000000 +0300
++++ live/groupsock/GroupsockHelper.cpp 2011-08-23 18:26:32.000000000 +0300
+@@ -49,13 +49,33 @@
+   reuseFlag = 1;
+ }
++static int makeSocket(int type)
++{
++  int fd;
++
++#ifdef SOCK_CLOEXEC
++  fd = socket(AF_INET, type|SOCK_CLOEXEC, 0);
++  if (fd != -1 || errno != EINVAL)
++      return fd;
++#endif
++
++  fd = socket(AF_INET, type, 0);
++  if (fd == -1)
++    return -1;
++#ifdef FD_CLOEXEC
++  fcntl(fd, F_SETFD, FD_CLOEXEC);
++#endif
++  return fd;
++}
++
++
+ int setupDatagramSocket(UsageEnvironment& env, Port port) {
+   if (!initializeWinsockIfNecessary()) {
+     socketErr(env, "Failed to initialize 'winsock': ");
+     return -1;
+   }
+-  int newSocket = socket(AF_INET, SOCK_DGRAM, 0);
++  int newSocket = makeSocket(SOCK_DGRAM);
+   if (newSocket < 0) {
+     socketErr(env, "unable to create datagram socket: ");
+     return newSocket;
+@@ -161,7 +181,7 @@
+     return -1;
+   }
+-  int newSocket = socket(AF_INET, SOCK_STREAM, 0);
++  int newSocket = makeSocket(SOCK_STREAM);
+   if (newSocket < 0) {
+     socketErr(env, "unable to create stream socket: ");
+     return newSocket;
index 8a0f94da1f7065e518238b8b7782ddd41f0a3a73..65b5c0621f08d821a97943d1ed15610a73703ac4 100644 (file)
@@ -23,6 +23,7 @@ ifndef HAVE_WINCE
        patch -p0 < $(SRC)/live555/live-getaddrinfo.patch
 endif
 endif
+       patch -p0 < $(SRC)/live555/live-cloexec.patch
        mv live $@
        touch $@