diff options
-rw-r--r-- | sys/src/9/ip/tcp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/9/ip/tcp.c b/sys/src/9/ip/tcp.c index d1addc9d7..5be66032e 100644 --- a/sys/src/9/ip/tcp.c +++ b/sys/src/9/ip/tcp.c @@ -1770,11 +1770,13 @@ tcpincoming(Conv *s, Tcp *segp, uchar *src, uchar *dst, uchar version) tcb->flgcnt = 0; tcb->flags |= SYNACK; + /* set desired mss and scale */ + tcb->mss = tcpmtu(s->p, s->laddr, s->ipversion, &tcb->scale); + /* our sending max segment size cannot be bigger than what he asked for */ - if(lp->mss != 0 && lp->mss < tcb->mss) { + if(lp->mss != 0 && lp->mss < tcb->mss) tcb->mss = lp->mss; - tpriv->stats[Mss] = tcb->mss; - } + tpriv->stats[Mss] = tcb->mss; /* window scaling */ tcpsetscale(new, tcb, lp->rcvscale, lp->sndscale); |