summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2007-07-02 15:58:09 +0200
committerKarel Zak <kzak@redhat.com>2007-07-02 15:58:09 +0200
commita6f628832a1e6292cfdf9074ba32ba8cd21f899d (patch)
tree53da5c09c4142d2aeed417c46df6cd1fe76a66b1
parent652de88cef7f32af6d035d7cc29d6073ae50741e (diff)
downloadutil-linux-old-a6f628832a1e6292cfdf9074ba32ba8cd21f899d.tar.gz
wall: fix O_NONBLOCK usage
From: Alan Curry <pacman@TheWorld.com> Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--login-utils/ttymsg.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/login-utils/ttymsg.c b/login-utils/ttymsg.c
index 55b26a82..0dbe5811 100644
--- a/login-utils/ttymsg.c
+++ b/login-utils/ttymsg.c
@@ -127,7 +127,7 @@ ttymsg(struct iovec *iov, int iovcnt, char *line, int tmout) {
continue;
}
if (errno == EWOULDBLOCK) {
- int cpid, off = 0;
+ int cpid, flags;
if (forked) {
(void) close(fd);
@@ -155,7 +155,8 @@ ttymsg(struct iovec *iov, int iovcnt, char *line, int tmout) {
(void) signal(SIGTERM, SIG_DFL); /* XXX */
(void) sigsetmask(0);
(void) alarm((u_int)tmout);
- (void) fcntl(fd, O_NONBLOCK, &off);
+ flags = fcntl(fd, F_GETFL);
+ fcntl(flags, F_SETFL, (long) (flags & ~O_NONBLOCK));
continue;
}
/*