//Reset the congestion window so we wait for ACKs.
c->snd.nxt = c->snd.una;
c->snd.cwnd = utcp->mtu;
+ start_retransmit_timer(c);
}
}
}
// - or we got an ack, so we should maybe send a bit more data
// -> sendatleastone = false
-ack:
- ack(c, prevrcvnxt != c->rcv.nxt);
+ ack(c, len || prevrcvnxt != c->rcv.nxt);
return 0;
reset:
if(!c)
continue;
+ // delete connections that have been utcp_close()d.
if(c->state == CLOSED) {
if(c->reapable) {
debug("Reaping %p\n", c);
}
if(timerisset(&c->rtrx_timeout) && timercmp(&c->rtrx_timeout, &now, <)) {
+ debug("retransmit()\n");
retransmit(c);
}