27 lines
674 B
Diff
27 lines
674 B
Diff
|
--- l2tpd-0.70-pre20031121.orig/l2tpd.c.orig 2006-04-05 13:28:36.000000000 +0100
|
||
|
+++ l2tpd-0.70-pre20031121.orig/l2tpd.c 2006-04-05 13:33:39.000000000 +0100
|
||
|
@@ -289,6 +289,8 @@
|
||
|
#endif
|
||
|
struct termios ptyconf;
|
||
|
char *str;
|
||
|
+ int flags;
|
||
|
+
|
||
|
p = opts;
|
||
|
stropt[0] = strdup (PPPD);
|
||
|
while (p)
|
||
|
@@ -347,6 +349,14 @@
|
||
|
close(c->fd);
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
+ flags = fcntl(c->fd, F_GETFL);
|
||
|
+ if (flags < 0 || fcntl(c->fd, F_SETFL, flags | O_NONBLOCK) < 0)
|
||
|
+ {
|
||
|
+ log (LOG_WARN, "%s: unable to fcntl(O_NONBLOCK) on pty\n",
|
||
|
+ __FUNCTION__);
|
||
|
+ close(c->fd);
|
||
|
+ return -EINVAL;
|
||
|
+ }
|
||
|
tty = ptsname(c->fd);
|
||
|
if (tty == NULL)
|
||
|
{
|