diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2004-06-24 02:57:12 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2004-06-24 02:57:12 +0000 |
| commit | 927c5cea3f67b47cda445901fde585f1bd7fbdb7 (patch) | |
| tree | 07b27d1e23cffcf83e3053d2a1cc5074ccc7e704 | |
| parent | a82b25f9b23d656e4b667c404e4b468d26af804d (diff) | |
Notes
| -rw-r--r-- | sys/netinet/tcp_input.c | 7 | ||||
| -rw-r--r-- | sys/netinet/tcp_reass.c | 7 | ||||
| -rw-r--r-- | sys/sys/socketvar.h | 2 |
3 files changed, 7 insertions, 9 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index cab335470748..ef1d02cd3a72 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -2295,13 +2295,12 @@ step6: */ if (SEQ_GT(th->th_seq+th->th_urp, tp->rcv_up)) { tp->rcv_up = th->th_seq + th->th_urp; + SOCKBUF_LOCK(&so->so_rcv); so->so_oobmark = so->so_rcv.sb_cc + (tp->rcv_up - tp->rcv_nxt) - 1; - if (so->so_oobmark == 0) { - SOCKBUF_LOCK(&so->so_rcv); + if (so->so_oobmark == 0) so->so_rcv.sb_state |= SBS_RCVATMARK; - SOCKBUF_UNLOCK(&so->so_rcv); - } + SOCKBUF_UNLOCK(&so->so_rcv); sohasoutofband(so); tp->t_oobflags &= ~(TCPOOB_HAVEDATA | TCPOOB_HADDATA); } diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c index cab335470748..ef1d02cd3a72 100644 --- a/sys/netinet/tcp_reass.c +++ b/sys/netinet/tcp_reass.c @@ -2295,13 +2295,12 @@ step6: */ if (SEQ_GT(th->th_seq+th->th_urp, tp->rcv_up)) { tp->rcv_up = th->th_seq + th->th_urp; + SOCKBUF_LOCK(&so->so_rcv); so->so_oobmark = so->so_rcv.sb_cc + (tp->rcv_up - tp->rcv_nxt) - 1; - if (so->so_oobmark == 0) { - SOCKBUF_LOCK(&so->so_rcv); + if (so->so_oobmark == 0) so->so_rcv.sb_state |= SBS_RCVATMARK; - SOCKBUF_UNLOCK(&so->so_rcv); - } + SOCKBUF_UNLOCK(&so->so_rcv); sohasoutofband(so); tp->t_oobflags &= ~(TCPOOB_HAVEDATA | TCPOOB_HADDATA); } diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index 68f6a2fc4491..4ee345534f59 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -88,7 +88,7 @@ struct socket { u_short so_error; /* error affecting connection */ struct sigio *so_sigio; /* [sg] information for async I/O or out of band data (SIGURG) */ - u_long so_oobmark; /* chars to oob mark */ + u_long so_oobmark; /* (c) chars to oob mark */ TAILQ_HEAD(, aiocblist) so_aiojobq; /* AIO ops waiting on socket */ /* * Variables for socket buffering. |
