From: fendo Date: Sun, 10 Feb 2013 22:43:53 +0000 (+0100) Subject: Update debian/changelog X-Git-Tag: 2.2.1-2fdn3.5 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/f5354e17542c0c11b00e2c8fb48a989ba5e47bcf Update debian/changelog --- diff --git a/debian/changelog b/debian/changelog index 3b4c2fa..325002c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +l2tpns (2.2.1-2fdn3.5) unstable; urgency=low + + * Update debian/changelog + + -- Fernando Alves Sun, 10 Feb 2013 23:39:56 +0100 + l2tpns (2.2.1-2fdn3.4) unstable; urgency=low * Add parameter to disable the send of the L2TP HELLO message (Apple compatibility). diff --git a/l2tpns.h b/l2tpns.h index ffa09cc..1d3339c 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -64,7 +64,7 @@ #define MAXFRAGLEN 1496 // Maximum length for Multilink fragment (The multilink may contain only one link) #define MAXFRAGNUM 512 // Maximum number of Multilink fragment in a bundle (must be in the form of 2^X) // it's not expected to have a space for more than 10 unassembled packets = 10 * MAXBUNDLESES -#define MAXFRAGNUM_MASK 511 // Must be equal to MAXFRAGNUM-1 +#define MAXFRAGNUM_MASK (MAXFRAGNUM - 1) // Must be equal to MAXFRAGNUM-1 // Constants #ifndef ETCDIR @@ -356,9 +356,9 @@ bundlet; typedef struct { - fragmentt fragment[MAXFRAGNUM]; - uint8_t reassembled_frame[MAXETHER]; // The reassembled frame - uint16_t re_frame_len; // The reassembled frame length + fragmentt fragment[MAXFRAGNUM]; + uint8_t reassembled_frame[MAXETHER]; // The reassembled frame + uint16_t re_frame_len; // The reassembled frame length uint16_t re_frame_begin_index, re_frame_end_index; // reassembled frame begin index, end index respectively uint16_t start_index, end_index; // start and end sequence numbers available on the fragments array respectively uint32_t M; // Minumum frame sequence number received over all bundle members diff --git a/ppp.c b/ppp.c index e8c3b52..a8a355d 100644 --- a/ppp.c +++ b/ppp.c @@ -1204,24 +1204,24 @@ static void setepdis(epdist *ep1, epdist ep2) static bundleidt new_bundle() { - bundleidt i; - for (i = 1; i < MAXBUNDLE; i++) - { - if (bundle[i].state == BUNDLEFREE) - { - LOG(4, 0, 0, "MPPP: Assigning bundle ID %d\n", i); - bundle[i].num_of_links = 1; - bundle[i].last_check = time_now; // Initialize last_check value - bundle[i].state = BUNDLEOPEN; - bundle[i].current_ses = -1; // This is to enforce the first session 0 to be used at first + bundleidt i; + for (i = 1; i < MAXBUNDLE; i++) + { + if (bundle[i].state == BUNDLEFREE) + { + LOG(4, 0, 0, "MPPP: Assigning bundle ID %d\n", i); + bundle[i].num_of_links = 1; + bundle[i].last_check = time_now; // Initialize last_check value + bundle[i].state = BUNDLEOPEN; + bundle[i].current_ses = -1; // This is to enforce the first session 0 to be used at first memset(&frag[i], 0, sizeof(fragmentationt)); - if (i > config->cluster_highest_bundleid) - config->cluster_highest_bundleid = i; - return i; - } - } - LOG(0, 0, 0, "MPPP: Can't find a free bundle! There shouldn't be this many in use!\n"); - return 0; + if (i > config->cluster_highest_bundleid) + config->cluster_highest_bundleid = i; + return i; + } + } + LOG(0, 0, 0, "MPPP: Can't find a free bundle! There shouldn't be this many in use!\n"); + return 0; } static void ipcp_open(sessionidt s, tunnelidt t) @@ -1934,7 +1934,7 @@ void processmpin(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) { // There have a long break of the link !!!!!!!! // M_offset is bigger that the fragmentation buffer size - LOG(3, s, t, "MPPP: M_offset out of range, min:%d, begin_seq:%d, jitteravg:%d\n", Mmin, this_fragmentation->start_seq, sess_local[s].jitteravg); + LOG(3, s, t, "MPPP: M_offset out of range, min:%d, begin_seq:%d\n", Mmin, this_fragmentation->start_seq); // Calculate the new start index, the previous frag are lost begin_index = (M_offset + this_fragmentation->start_index) & MAXFRAGNUM_MASK; @@ -1951,7 +1951,7 @@ void processmpin(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) if (frag_offset < 0) { // this packet comes before the next - LOG(3, s, t, "MPPP: packet comes before the next, seq:%d, begin_seq:%d, size frag:%d\n", seq_num, this_fragmentation->start_seq, l); + LOG(3, s, t, "MPPP: (COMES BEFORE) the next, seq:%d, begin_seq:%d, size_frag:%d, flags:%02X is LOST\n", seq_num, this_fragmentation->start_seq, l, flags); return; } @@ -1959,7 +1959,7 @@ void processmpin(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) if (frag_offset >= MAXFRAGNUM) { // frag_offset is bigger that the fragmentation buffer size - LOG(3, s, t, "MPPP: Index out of range, seq:%d, begin_seq:%d, jitteravg:%d\n", seq_num, this_fragmentation->start_seq, sess_local[s].jitteravg); + LOG(3, s, t, "MPPP: Index out of range, seq:%d, begin_seq:%d\n", seq_num, this_fragmentation->start_seq); return; } @@ -1971,8 +1971,8 @@ void processmpin(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) if (this_frag->length > 0) // This fragment is lost, It was around the buffer and it was never completed the packet. - LOG(3, this_frag->sid, this_frag->tid, "MPPP: (INSERT) seq_num:%d frag_index:%d flags:%d jitteravg:%d is LOST\n", - this_frag->seq, frag_index, this_frag->flags, this_frag->jitteravg); + LOG(3, this_frag->sid, this_frag->tid, "MPPP: (INSERT) seq_num:%d frag_index:%d flags:%02X is LOST\n", + this_frag->seq, frag_index, this_frag->flags); this_frag->length = l; this_frag->sid = s; @@ -2001,9 +2001,9 @@ void processmpin(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) { // This fragment is lost, It was around the buffer and it was never completed the packet. LOG(3, this_fragmentation->fragment[frag_index_next].sid, this_fragmentation->fragment[frag_index_next].tid, - "MPPP: (NEXT) seq_num:%d frag_index:%d flags:%d jitteravg:%d is LOST\n", + "MPPP: (NEXT) seq_num:%d frag_index:%d flags:%02X is LOST\n", this_fragmentation->fragment[frag_index_next].seq, frag_index_next, - this_fragmentation->fragment[frag_index_next].flags, this_fragmentation->fragment[frag_index_next].jitteravg); + this_fragmentation->fragment[frag_index_next].flags); // this frag is lost this_fragmentation->fragment[frag_index_next].length = 0; this_fragmentation->fragment[frag_index_next].flags = 0; @@ -2020,9 +2020,9 @@ void processmpin(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) { // This fragment is lost, It was around the buffer and it was never completed the packet. LOG(3, this_fragmentation->fragment[frag_index_prev].sid, this_fragmentation->fragment[frag_index_prev].tid, - "MPPP: (PREV) seq_num:%d frag_index:%d flags:%d jitteravg:%d is LOST\n", + "MPPP: (PREV) seq_num:%d frag_index:%d flags:%02X is LOST\n", this_fragmentation->fragment[frag_index_prev].seq, frag_index_prev, - this_fragmentation->fragment[frag_index_prev].flags, this_fragmentation->fragment[frag_index_prev].jitteravg); + this_fragmentation->fragment[frag_index_prev].flags); this_fragmentation->fragment[frag_index_prev].length = 0; this_fragmentation->fragment[frag_index_prev].flags = 0; @@ -2066,9 +2066,9 @@ find_frame: { // This fragment is lost, it was never completed the packet. LOG(3, this_fragmentation->fragment[end_index].sid, this_fragmentation->fragment[end_index].tid, - "MPPP: (FIND END) seq_num:%d frag_index:%d flags:%d jitteravg:%d is LOST\n", + "MPPP: (FIND END) seq_num:%d frag_index:%d flags:%02X is LOST\n", this_fragmentation->fragment[end_index].seq, begin_index, - this_fragmentation->fragment[end_index].flags, this_fragmentation->fragment[end_index].jitteravg); + this_fragmentation->fragment[end_index].flags); // this frag is lost this_fragmentation->fragment[end_index].length = 0; this_fragmentation->fragment[end_index].flags = 0; @@ -2097,9 +2097,9 @@ find_frame: { // This fragment is lost, it was never completed the packet. LOG(3, this_fragmentation->fragment[begin_index].sid, this_fragmentation->fragment[begin_index].tid, - "MPPP: (FIND BEGIN) seq_num:%d frag_index:%d flags:%d jitteravg:%d is LOST\n", + "MPPP: (FIND BEGIN) seq_num:%d frag_index:%d flags:%02X is LOST\n", this_fragmentation->fragment[begin_index].seq, begin_index, - this_fragmentation->fragment[begin_index].flags, this_fragmentation->fragment[begin_index].jitteravg); + this_fragmentation->fragment[begin_index].flags); // this frag is lost this_fragmentation->fragment[begin_index].length = 0; this_fragmentation->fragment[begin_index].flags = 0; @@ -2117,6 +2117,10 @@ assembling_frame: { if (!(this_fragmentation->fragment[begin_index].flags & MP_BEGIN)) { + LOG(3, this_fragmentation->fragment[begin_index].sid, this_fragmentation->fragment[begin_index].tid, + "MPPP: (NOT BEGIN) seq_num:%d frag_index:%d flags:%02X\n", + this_fragmentation->fragment[begin_index].seq, begin_index, + this_fragmentation->fragment[begin_index].flags); // should occur only after an "M_Offset out of range" // The start sequence must be a begin sequence this_fragmentation->start_index = (begin_index +1) & MAXFRAGNUM_MASK; @@ -2195,9 +2199,9 @@ assembling_frame: (this_fragmentation->fragment[begin_index].seq != this_fragmentation->start_seq)) { LOG(3, this_fragmentation->fragment[begin_index].sid, this_fragmentation->fragment[begin_index].tid, - "MPPP: (START) seq_num:%d frag_index:%d flags:%d jitteravg:%d is LOST\n", + "MPPP: (START) seq_num:%d frag_index:%d flags:%02X is LOST\n", this_fragmentation->fragment[begin_index].seq, begin_index, - this_fragmentation->fragment[begin_index].flags, this_fragmentation->fragment[begin_index].jitteravg); + this_fragmentation->fragment[begin_index].flags); this_fragmentation->fragment[begin_index].length = 0; this_fragmentation->fragment[begin_index].flags = 0; }