X-Git-Url: http://git.meshlink.io/?p=utcp;a=blobdiff_plain;f=utcp.c;h=cb23e1bf3d6413510d8dd729f7dd00e781eb4291;hp=7aeb2d358cf7b3157672f8bb2f25b488b9a40606;hb=8b12570493ab77960aeac7e3e4a9bc458bb4f1a1;hpb=79473544a4e53159f178e8542f0936f8abd42821 diff --git a/utcp.c b/utcp.c index 7aeb2d3..cb23e1b 100644 --- a/utcp.c +++ b/utcp.c @@ -521,10 +521,14 @@ static void ack(struct utcp_connection *c, bool sendatleastone) { assert(left >= 0); - if(cwndleft < 0) { + if(cwndleft <= 0) { left = 0; } else if(cwndleft < left) { left = cwndleft; + + if(!sendatleastone || cwndleft > c->utcp->mtu) { + left -= left % c->utcp->mtu; + } } debug("cwndleft = %d, left = %d\n", cwndleft, left);