On Mon, Jan 08, 2018 at 03:50:14PM +0100, Martin Pieuchot wrote: > ok? OK bluhm@ with a few remarks.
> @@ -1422,12 +1422,12 @@ somove(struct socket *so, int wait) > > /* Receive buffer did shrink by len bytes, adjust oob. */ > state = so->so_state; > - so->so_state &= ~SS_RCVATMARK; > + soclrstate(so, SS_RCVATMARK); > oobmark = so->so_oobmark; > so->so_oobmark = oobmark > len ? oobmark - len : 0; > if (oobmark) { Can we make the "state" also u_int? > @@ -198,7 +198,7 @@ sonewconn(struct socket *head, int conns > if (connstatus) { > sorwakeup(head); > wakeup(&head->so_timeo); > - so->so_state |= connstatus; > + sosetstate(so, connstatus); > } > return (so); > } "connstatus" should be u_int. > @@ -112,8 +112,8 @@ sys_socket(struct proc *p, void *v, regi > fdpunlock(fdp); > } else { > if (type & SOCK_NONBLOCK) > - so->so_state |= SS_NBIO; > - so->so_state |= ss; > + sosetstate(so, SS_NBIO); > + sosetstate(so, ss); > fp->f_data = so; > FILE_SET_MATURE(fp, p); > *retval = fd; "ss" should be u_int for consistency. And pledge_socket() still takes the state as signed int. > @@ -181,7 +181,7 @@ fifo_open(void *v) > goto bad; > } > if (fip->fi_writers == 1) { > - rso->so_state &= ~(SS_CANTRCVMORE|SS_ISDISCONNECTED); > + soclrstate(rso, (SS_CANTRCVMORE|SS_ISDISCONNECTED)); > if (fip->fi_readers > 0) > wakeup(&fip->fi_readers); > } There are more () than needed. > @@ -585,9 +585,9 @@ tcp_attach(struct socket *so, int proto) > if (tp == NULL) { > int nofd = so->so_state & SS_NOFDREF; /* XXX */ > > - so->so_state &= ~SS_NOFDREF; /* don't free the socket yet */ > + soclrstate(so, SS_NOFDREF); /* don't free the socket yet */ > in_pcbdetach(inp); > - so->so_state |= nofd; > + sosetstate(so, nofd); > return (ENOBUFS); > } > tp->t_state = TCPS_CLOSED; nofd should be u_int.