version 1.235.2.4, 2015/12/27 12:10:05 |
version 1.252, 2016/10/13 19:10:23 |
Line 648 solisten(struct socket *so, int backlog, |
|
Line 648 solisten(struct socket *so, int backlog, |
|
short oldopt, oldqlimit; |
short oldopt, oldqlimit; |
|
|
solock(so); |
solock(so); |
if ((so->so_state & (SS_ISCONNECTED | SS_ISCONNECTING | |
if ((so->so_state & (SS_ISCONNECTED | SS_ISCONNECTING | |
SS_ISDISCONNECTING)) != 0) { |
SS_ISDISCONNECTING)) != 0) { |
sounlock(so); |
sounlock(so); |
return EINVAL; |
return EINVAL; |
Line 786 soabort(struct socket *so) |
|
Line 786 soabort(struct socket *so) |
|
{ |
{ |
u_int refs; |
u_int refs; |
int error; |
int error; |
|
|
KASSERT(solocked(so)); |
KASSERT(solocked(so)); |
KASSERT(so->so_head == NULL); |
KASSERT(so->so_head == NULL); |
|
|
Line 998 sosend(struct socket *so, struct sockadd |
|
Line 998 sosend(struct socket *so, struct sockadd |
|
m = m_gethdr(M_WAIT, MT_DATA); |
m = m_gethdr(M_WAIT, MT_DATA); |
mlen = MHLEN; |
mlen = MHLEN; |
m->m_pkthdr.len = 0; |
m->m_pkthdr.len = 0; |
m->m_pkthdr.rcvif = NULL; |
m_reset_rcvif(m); |
} else { |
} else { |
m = m_get(M_WAIT, MT_DATA); |
m = m_get(M_WAIT, MT_DATA); |
mlen = MLEN; |
mlen = MLEN; |
Line 1324 soreceive(struct socket *so, struct mbuf |
|
Line 1324 soreceive(struct socket *so, struct mbuf |
|
m->m_next = NULL; |
m->m_next = NULL; |
m = so->so_rcv.sb_mb; |
m = so->so_rcv.sb_mb; |
} else { |
} else { |
MFREE(m, so->so_rcv.sb_mb); |
m = so->so_rcv.sb_mb = m_free(m); |
m = so->so_rcv.sb_mb; |
|
} |
} |
sbsync(&so->so_rcv, nextrecord); |
sbsync(&so->so_rcv, nextrecord); |
} |
} |
Line 1349 soreceive(struct socket *so, struct mbuf |
|
Line 1348 soreceive(struct socket *so, struct mbuf |
|
m->m_next = 0; |
m->m_next = 0; |
m = so->so_rcv.sb_mb; |
m = so->so_rcv.sb_mb; |
} else { |
} else { |
MFREE(m, so->so_rcv.sb_mb); |
m = so->so_rcv.sb_mb = m_free(m); |
m = so->so_rcv.sb_mb; |
|
} |
} |
} |
} |
} |
} |
Line 1505 soreceive(struct socket *so, struct mbuf |
|
Line 1503 soreceive(struct socket *so, struct mbuf |
|
so->so_rcv.sb_mb = m = m->m_next; |
so->so_rcv.sb_mb = m = m->m_next; |
*mp = NULL; |
*mp = NULL; |
} else { |
} else { |
MFREE(m, so->so_rcv.sb_mb); |
m = so->so_rcv.sb_mb = m_free(m); |
m = so->so_rcv.sb_mb; |
|
} |
} |
/* |
/* |
* If m != NULL, we also know that |
* If m != NULL, we also know that |
Line 1918 so_setsockopt(struct lwp *l, struct sock |
|
Line 1915 so_setsockopt(struct lwp *l, struct sock |
|
|
|
return error; |
return error; |
} |
} |
|
|
/* |
/* |
* internal get SOL_SOCKET options |
* internal get SOL_SOCKET options |
*/ |
*/ |
Line 2247 filt_soread(struct knote *kn, long hint) |
|
Line 2244 filt_soread(struct knote *kn, long hint) |
|
rv = 1; |
rv = 1; |
else if (kn->kn_sfflags & NOTE_LOWAT) |
else if (kn->kn_sfflags & NOTE_LOWAT) |
rv = (kn->kn_data >= kn->kn_sdata); |
rv = (kn->kn_data >= kn->kn_sdata); |
else |
else |
rv = (kn->kn_data >= so->so_rcv.sb_lowat); |
rv = (kn->kn_data >= so->so_rcv.sb_lowat); |
if (hint != NOTE_SUBMIT) |
if (hint != NOTE_SUBMIT) |
sounlock(so); |
sounlock(so); |