diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2017-12-05 16:49:50 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2017-12-05 16:49:50 +0300 |
commit | 71770d7a41278731f676a11ff943da735a09c5b0 (patch) | |
tree | 39efb88c2f519ffd1b5e755d222ae1e040ab7e8b | |
parent | af16af0928a5c5f171f9703865d4a31bc929a031 (diff) | |
parent | 00b8ac572ad265e912b5279f1fb98dbe463e2f40 (diff) | |
download | accel-ppp-71770d7a41278731f676a11ff943da735a09c5b0.tar.gz accel-ppp-71770d7a41278731f676a11ff943da735a09c5b0.zip |
Merge branch 'master' of github.com:xebd/accel-ppp
-rw-r--r-- | accel-pppd/accel-ppp.conf | 2 | ||||
-rw-r--r-- | accel-pppd/ctrl/l2tp/l2tp.c | 3 | ||||
-rw-r--r-- | accel-pppd/ctrl/l2tp/packet.c | 8 | ||||
-rw-r--r-- | accel-pppd/ctrl/pptp/pptp.c | 13 |
4 files changed, 14 insertions, 12 deletions
diff --git a/accel-pppd/accel-ppp.conf b/accel-pppd/accel-ppp.conf index 0abea9e8..7ab2efd9 100644 --- a/accel-pppd/accel-ppp.conf +++ b/accel-pppd/accel-ppp.conf @@ -109,7 +109,7 @@ verbose=1 username=ifname #password=username lease-time=600 -renew-time=600 +renew-time=300 max-lease-time=3600 #unit-cache=1000 #l4-redirect-table=4 diff --git a/accel-pppd/ctrl/l2tp/l2tp.c b/accel-pppd/ctrl/l2tp/l2tp.c index 51f8e7dc..a44d31d2 100644 --- a/accel-pppd/ctrl/l2tp/l2tp.c +++ b/accel-pppd/ctrl/l2tp/l2tp.c @@ -3213,6 +3213,9 @@ static int l2tp_recv_HELLO(struct l2tp_conn_t *conn, log_tunnel(log_debug, conn, "handling HELLO\n"); + if (conn->hello_timer.tpd) + triton_timer_mod(&conn->hello_timer, 0); + return 0; } diff --git a/accel-pppd/ctrl/l2tp/packet.c b/accel-pppd/ctrl/l2tp/packet.c index 34e4bb67..455c486e 100644 --- a/accel-pppd/ctrl/l2tp/packet.c +++ b/accel-pppd/ctrl/l2tp/packet.c @@ -289,21 +289,21 @@ int l2tp_recv(int fd, struct l2tp_packet_t **p, struct in_pktinfo *pkt_info, return 0; } - if (n < sizeof(*hdr)) { + if (n < 6) { if (conf_verbose) log_warn("l2tp: short packet received (%i/%zu)\n", n, sizeof(*hdr)); goto out_err_hdr; } + if (hdr->T == 0) + goto out_err_hdr; + if (n < ntohs(hdr->length)) { if (conf_verbose) log_warn("l2tp: short packet received (%i/%i)\n", n, ntohs(hdr->length)); goto out_err_hdr; } - if (hdr->T == 0) - goto out_err_hdr; - if (hdr->ver == 2) { if (hdr->L == 0) { if (conf_verbose) diff --git a/accel-pppd/ctrl/pptp/pptp.c b/accel-pppd/ctrl/pptp/pptp.c index 99958cc8..fa48687d 100644 --- a/accel-pppd/ctrl/pptp/pptp.c +++ b/accel-pppd/ctrl/pptp/pptp.c @@ -413,6 +413,9 @@ static int pptp_echo_rqst(struct pptp_conn_t *conn) log_ppp_debug("send [PPTP Echo-Reply <Identifier %x>]\n", out_msg.identifier); } + if (conn->echo_timer.tpd) + triton_timer_mod(&conn->echo_timer, 0); + return post_msg(conn, &out_msg, sizeof(out_msg)); } @@ -423,13 +426,10 @@ static int pptp_echo_rply(struct pptp_conn_t *conn) if (conf_verbose) log_ppp_debug("recv [PPTP Echo-Reply <Identifier %x>]\n", msg->identifier); - /*if (msg->identifier != conn->echo_sent) { - log_ppp_warn("pptp:echo: identifier mismatch\n"); - //return -1; - }*/ conn->echo_sent = 0; return 0; } + static void pptp_send_echo(struct triton_timer_t *t) { struct pptp_conn_t *conn = container_of(t, typeof(*conn), echo_timer); @@ -443,8 +443,7 @@ static void pptp_send_echo(struct triton_timer_t *t) return; } - conn->echo_sent = random(); - msg.identifier = conn->echo_sent; + msg.identifier = random(); if (conf_verbose) log_ppp_debug("send [PPTP Echo-Request <Identifier %x>]\n", msg.identifier); @@ -761,7 +760,7 @@ static void load_config(void) conf_echo_interval = atoi(opt); opt = conf_get_opt("pptp", "echo-failure"); - if (opt && atoi(opt) > 0) + if (opt && atoi(opt) >= 0) conf_echo_failure = atoi(opt); opt = conf_get_opt("pptp", "verbose"); |