chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3a0ecb0
)
execute: use fd_nonblock()//fd_cloexec() where applicable
author
Lennart Poettering
<lennart@poettering.net>
Tue, 6 Apr 2010 19:53:39 +0000
(21:53 +0200)
committer
Lennart Poettering
<lennart@poettering.net>
Tue, 6 Apr 2010 19:53:39 +0000
(21:53 +0200)
execute.c
patch
|
blob
|
history
diff --git
a/execute.c
b/execute.c
index dd36038c4a98a743c084851084ad3def50d2bc39..02f53dc4855b99089c042cdd92df921038b6d98c 100644
(file)
--- a/
execute.c
+++ b/
execute.c
@@
-137,6
+137,7
@@
static int shift_fds(int fds[], unsigned n_fds) {
static int flags_fds(int fds[], unsigned n_fds, bool nonblock) {
unsigned i;
static int flags_fds(int fds[], unsigned n_fds, bool nonblock) {
unsigned i;
+ int r;
if (n_fds <= 0)
return 0;
if (n_fds <= 0)
return 0;
@@
-146,27
+147,16
@@
static int flags_fds(int fds[], unsigned n_fds, bool nonblock) {
/* Drops/Sets O_NONBLOCK and FD_CLOEXEC from the file flags */
for (i = 0; i < n_fds; i++) {
/* Drops/Sets O_NONBLOCK and FD_CLOEXEC from the file flags */
for (i = 0; i < n_fds; i++) {
- int flags;
-
- if ((flags = fcntl(fds[i], F_GETFL, 0)) < 0)
- return -errno;
-
- if (nonblock)
- flags |= O_NONBLOCK;
- else
- flags &= ~O_NONBLOCK;
- if (
fcntl(fds[i], F_SETFL, flags
) < 0)
- return
-errno
;
+ if (
(r = fd_nonblock(fds[i], nonblock)
) < 0)
+ return
r
;
/* We unconditionally drop FD_CLOEXEC from the fds,
* since after all we want to pass these fds to our
* children */
/* We unconditionally drop FD_CLOEXEC from the fds,
* since after all we want to pass these fds to our
* children */
- if ((flags = fcntl(fds[i], F_GETFD, 0)) < 0)
- return -errno;
- if (
fcntl(fds[i], F_SETFD, flags &~FD_CLOEXEC
) < 0)
- return
-errno
;
+ if (
(r = fd_cloexec(fds[i], false)
) < 0)
+ return
r
;
}
return 0;
}
return 0;