diff options
| author | Jonathan Lemon <jlemon@FreeBSD.org> | 2001-02-02 18:48:25 +0000 |
|---|---|---|
| committer | Jonathan Lemon <jlemon@FreeBSD.org> | 2001-02-02 18:48:25 +0000 |
| commit | 007581c0d8e5cb76c655a68b458940d410b680df (patch) | |
| tree | f478378795ca224a972374b4bdbc879403b48bf8 /sys/netinet/tcp_usrreq.c | |
| parent | ecde9a6dae867f60cb32859bd15793d4de273b10 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/tcp_usrreq.c')
| -rw-r--r-- | sys/netinet/tcp_usrreq.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index 6feb666e7d11..ac1eee9231a2 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -895,7 +895,6 @@ tcp_ctloutput(so, sopt) switch (sopt->sopt_name) { case TCP_NODELAY: case TCP_NOOPT: - case TCP_NOPUSH: error = sooptcopyin(sopt, &optval, sizeof optval, sizeof optval); if (error) @@ -908,9 +907,6 @@ tcp_ctloutput(so, sopt) case TCP_NOOPT: opt = TF_NOOPT; break; - case TCP_NOPUSH: - opt = TF_NOPUSH; - break; default: opt = 0; /* dead code to fool gcc */ break; @@ -922,6 +918,20 @@ tcp_ctloutput(so, sopt) tp->t_flags &= ~opt; break; + case TCP_NOPUSH: + error = sooptcopyin(sopt, &optval, sizeof optval, + sizeof optval); + if (error) + break; + + if (optval) + tp->t_flags |= TF_NOPUSH; + else { + tp->t_flags &= ~TF_NOPUSH; + error = tcp_output(tp); + } + break; + case TCP_MAXSEG: error = sooptcopyin(sopt, &optval, sizeof optval, sizeof optval); |
