repo: ngircd
action: commit
revision: 
path_from: 
revision_from: c135d0dded909e2e5780697c4066ad44a3f488c8:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit c135d0dded909e2e5780697c4066ad44a3f488c8
Author: Florian Westphal 
Date:   Fri Sep 10 23:41:29 2010 +0200

    io: add io_cloexec to set close-on-exec flag.

diff --git a/src/ngircd/io.c b/src/ngircd/io.c
index cb2b55a9297d9c0285f1be1a5d4db370f0fedb95..
index ..6843899d5b61e280895e20577072c98282b464f9 100644
--- a/src/ngircd/io.c
+++ b/src/ngircd/io.c
@@ -785,6 +785,16 @@ io_setnonblock(int fd)
 	return fcntl(fd, F_SETFL, flags) == 0;
 }

+bool
+io_setcloexec(int fd)
+{
+	int flags = fcntl(fd, F_GETFD);
+	if (flags == -1)
+		return false;
+	flags |= FD_CLOEXEC;
+
+	return fcntl(fd, F_SETFD, flags) == 0;
+}

 bool
 io_close(int fd)
diff --git a/src/ngircd/io.h b/src/ngircd/io.h
index a2285de4abfd3ec3f28fe9792f802bcd2a5886fa..
index ..2f4c964551d31627ae8ba743b700378979d6cc9c 100644
--- a/src/ngircd/io.h
+++ b/src/ngircd/io.h
@@ -45,6 +45,9 @@ bool io_close PARAMS((int fd));
 /* set O_NONBLOCK */
 bool io_setnonblock PARAMS((int fd));

+/* set O_CLOEXEC */
+bool io_setcloexec PARAMS((int fd));
+
 /* watch fds for activity */
 int io_dispatch PARAMS((struct timeval *tv));

-----END OF PAGE-----