summaryrefslogtreecommitdiff
path: root/accel-pppd/ctrl/l2tp/l2tp.c
diff options
context:
space:
mode:
authorKozlov Dmitry <xeb@mail.ru>2012-08-29 12:06:37 +0400
committerKozlov Dmitry <xeb@mail.ru>2012-08-29 12:06:37 +0400
commitfd379e46a8e41a1a41836922a376e462bb676b0f (patch)
tree458f1d3083e5769c548711a23f3f57f40119775c /accel-pppd/ctrl/l2tp/l2tp.c
parent28df233a46f2d136e8169d86ee62861a7c024eff (diff)
parentfa66284f4bddf7686d2d5cfe40b387e0bbbba71a (diff)
downloadaccel-ppp-xebd-fd379e46a8e41a1a41836922a376e462bb676b0f.tar.gz
accel-ppp-xebd-fd379e46a8e41a1a41836922a376e462bb676b0f.zip
Merge branch 'master' of ssh://accel-ppp.git.sourceforge.net/gitroot/accel-ppp/accel-ppp
Diffstat (limited to 'accel-pppd/ctrl/l2tp/l2tp.c')
-rw-r--r--accel-pppd/ctrl/l2tp/l2tp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/accel-pppd/ctrl/l2tp/l2tp.c b/accel-pppd/ctrl/l2tp/l2tp.c
index 85d7979..6342088 100644
--- a/accel-pppd/ctrl/l2tp/l2tp.c
+++ b/accel-pppd/ctrl/l2tp/l2tp.c
@@ -914,10 +914,16 @@ static int l2tp_conn_read(struct triton_md_handler_t *h)
struct l2tp_conn_t *conn = container_of(h, typeof(*conn), hnd);
struct l2tp_packet_t *pack, *p;
struct l2tp_attr_t *msg_type;
+ int res;
while (1) {
- if (l2tp_recv(h->fd, &pack, NULL))
+ res = l2tp_recv(h->fd, &pack, NULL);
+ if (res) {
+ if (res == -2)
+ /* No peer listening, tear down connection */
+ l2tp_disconnect(conn);
return 0;
+ }
if (!pack)
continue;