From 575ae537cb4d62a6fd4cf2340cb1b513aad8f0da Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Wed, 16 Nov 2016 22:26:17 -0500 Subject: [PATCH] IPv6 packet size field doesn't include header size, take this into account IPv6 packet's 'length' field contains length of payload excluding headers. Header's length (40) needs to be added to that to get complete packet length. This patch seems to be fixing random VPN drops. Signed-off-by: Nikolay Martynov Signed-off-by: David Woodhouse --- oncp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oncp.c b/oncp.c index b0f6d12a..3c7cfa1e 100644 --- a/oncp.c +++ b/oncp.c @@ -1002,7 +1002,7 @@ int oncp_mainloop(struct openconnect_info *vpninfo, int *timeout) iplen = load_be16(vpninfo->cstp_pkt->data + 2); break; case 6: - iplen = load_be16(vpninfo->cstp_pkt->data + 4); + iplen = load_be16(vpninfo->cstp_pkt->data + 4) + 40; break; default: badiplen: