X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/9e164d82c8990d3c8cff58d866fb9938907d4d7b..cbe80b7552d1012f023f702fe3ca31750047f362:/unix/uxpty.c diff --git a/unix/uxpty.c b/unix/uxpty.c index 2e165cf2..ca7e98ad 100644 --- a/unix/uxpty.c +++ b/unix/uxpty.c @@ -360,8 +360,10 @@ static void pty_open_master(Pty pty) /* * Set the pty master into non-blocking mode. */ - int i = 1; - ioctl(pty->master_fd, FIONBIO, &i); + int fl; + fl = fcntl(pty->master_fd, F_GETFL); + if (fl != -1 && !(fl & O_NONBLOCK)) + fcntl(pty->master_fd, F_SETFL, fl | O_NONBLOCK); } if (!ptys_by_fd) @@ -1087,5 +1089,5 @@ Backend pty_backend = { pty_cfg_info, "pty", -1, - 1 + 0 };