1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-11 20:46:15 +02:00
openwrt-xburst/openwrt/package/l2tpd/patches/04-nonblock.patch
nico ac0918c722 Fix l2tpd blocking on read from ppp childs (closes: #455)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@3597 3c298f89-4303-0410-b956-a3cf2f4a3e73
2006-04-07 00:00:41 +00:00

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)
{