From: Fernando Alves Date: Sat, 4 Feb 2012 17:18:26 +0000 (+0100) Subject: Fix: MLPPP complete lost frame. X-Git-Tag: 2.2.1-2fdn3.1~16 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/43d9ea52f9d9d7f993c02e29742f084c4f2776eb Fix: MLPPP complete lost frame. --- 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) {