From 43d9ea52f9d9d7f993c02e29742f084c4f2776eb Mon Sep 17 00:00:00 2001 From: Fernando Alves Date: Sat, 4 Feb 2012 18:18:26 +0100 Subject: [PATCH] Fix: MLPPP complete lost frame. --- ppp.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ppp.c b/ppp.c index 9661d5c..e805e22 100644 --- a/ppp.c +++ b/ppp.c @@ -1919,18 +1919,22 @@ void processmpin(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) else if (M_offset > 0) { uint32_t b_seq = min; - if (min == seq_num) + if ((min == seq_num) && begin_frame) { - if (begin_frame) - { - // Set new Start sequence - this_fragmentation->start_index = begin_index; - this_fragmentation->start_seq = min; - frag_offset = 0; - } + // Set new Start sequence + this_fragmentation->start_index = begin_index; + this_fragmentation->start_seq = min; + frag_offset = 0; } else { + if (min == seq_num) + { + M_offset--; + begin_index = (begin_index ? (begin_index -1) : (MAXFRAGNUM -1)); + b_seq--; + } + // Find the Begin sequence while (this_fragmentation->fragment[begin_index].length) { -- 2.20.1