summaryrefslogtreecommitdiff
path: root/accel-pppd
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2017-12-05 16:49:50 +0300
committerDmitry Kozlov <xeb@mail.ru>2017-12-05 16:49:50 +0300
commit71770d7a41278731f676a11ff943da735a09c5b0 (patch)
tree39efb88c2f519ffd1b5e755d222ae1e040ab7e8b /accel-pppd
parentaf16af0928a5c5f171f9703865d4a31bc929a031 (diff)
parent00b8ac572ad265e912b5279f1fb98dbe463e2f40 (diff)
downloadaccel-ppp-xebd-71770d7a41278731f676a11ff943da735a09c5b0.tar.gz
accel-ppp-xebd-71770d7a41278731f676a11ff943da735a09c5b0.zip
Merge branch 'master' of github.com:xebd/accel-ppp
Diffstat (limited to 'accel-pppd')
-rw-r--r--accel-pppd/accel-ppp.conf2
-rw-r--r--accel-pppd/ctrl/l2tp/l2tp.c3
-rw-r--r--accel-pppd/ctrl/l2tp/packet.c8
-rw-r--r--accel-pppd/ctrl/pptp/pptp.c13
4 files changed, 14 insertions, 12 deletions
diff --git a/accel-pppd/accel-ppp.conf b/accel-pppd/accel-ppp.conf
index 0abea9e..7ab2efd 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 51f8e7d..a44d31d 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 34e4bb6..455c486 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 99958cc..fa48687 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");