- case ESTABLISHED:
- case FIN_WAIT_1:
- case CLOSE_WAIT:
- case CLOSING:
- case LAST_ACK:
- // Send unacked data again.
- pkt->hdr.seq = c->snd.una;
- pkt->hdr.ack = c->rcv.nxt;
- pkt->hdr.ctl = ACK;
- uint32_t len = seqdiff(c->snd.last, c->snd.una);
- if(len > utcp->mtu)
- len = utcp->mtu;
- if(fin_wanted(c, c->snd.una + len)) {
- len--;
- pkt->hdr.ctl |= FIN;
- }
- c->snd.nxt = c->snd.una + len;
- c->snd.cwnd = utcp->mtu; // reduce cwnd on retransmit
- buffer_copy(&c->sndbuf, pkt->data, 0, len);
- print_packet(c->utcp, "rtrx", pkt, sizeof pkt->hdr + len);
- utcp->send(utcp, pkt, sizeof pkt->hdr + len);
- break;
+ case ESTABLISHED:
+ case FIN_WAIT_1:
+ case CLOSE_WAIT:
+ case CLOSING:
+ case LAST_ACK:
+ // Send unacked data again.
+ pkt->hdr.seq = c->snd.una;
+ pkt->hdr.ack = c->rcv.nxt;
+ pkt->hdr.ctl = ACK;
+ uint32_t len = seqdiff(c->snd.last, c->snd.una);
+
+ if(len > utcp->mtu) {
+ len = utcp->mtu;
+ }