summaryrefslogtreecommitdiff
path: root/src/xine-utils/utils.c
diff options
context:
space:
mode:
authorChris Rankin <rankincj@yahoo.com>2011-10-03 12:38:45 +0100
committerChris Rankin <rankincj@yahoo.com>2011-10-03 12:38:45 +0100
commita39a950269d165f18448cc7d6da691bf14b9e03b (patch)
tree2ff0626b06e3e87cb9f3d7678af4859b5d65b594 /src/xine-utils/utils.c
parentcba782a23ee5c9c668e02f9c6d95acba70464d18 (diff)
downloadxine-lib-a39a950269d165f18448cc7d6da691bf14b9e03b.tar.gz
xine-lib-a39a950269d165f18448cc7d6da691bf14b9e03b.tar.bz2
Prefix open_cloexec() and create_cloexec() with xine_, and add new xine_socket_cloexec() function.
Diffstat (limited to 'src/xine-utils/utils.c')
-rw-r--r--src/xine-utils/utils.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/xine-utils/utils.c b/src/xine-utils/utils.c
index 02a06aa24..61f2d71c5 100644
--- a/src/xine-utils/utils.c
+++ b/src/xine-utils/utils.c
@@ -35,10 +35,12 @@
#include <errno.h>
#include <pwd.h>
+#include <sys/types.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
+#include <sys/socket.h>
#if HAVE_EXECINFO_H
#include <execinfo.h>
@@ -734,7 +736,7 @@ static int set_close_on_execute(int fd)
}
-int open_cloexec(const char *name, int flags)
+int xine_open_cloexec(const char *name, int flags)
{
int fd = open(name, (flags | O_CLOEXEC));
@@ -745,7 +747,7 @@ int open_cloexec(const char *name, int flags)
return fd;
}
-int create_cloexec(const char *name, int flags, mode_t mode)
+int xine_create_cloexec(const char *name, int flags, mode_t mode)
{
int fd = open(name, (flags | O_CREAT | O_CLOEXEC), mode);
@@ -756,3 +758,18 @@ int create_cloexec(const char *name, int flags, mode_t mode)
return fd;
}
+int xine_socket_cloexec(int domain, int type, int protocol)
+{
+ int s = socket(domain, type, protocol);
+
+ if (s >= 0) {
+#ifndef WIN32
+ fcntl(s, F_SETFD, FD_CLOEXEC);
+#else
+ SetHandleInformation((HANDLE)s, HANDLE_FLAG_INHERIT, 0);
+#endif
+ }
+
+ return s;
+}
+