| version 1.147, 2006/02/23 01:35:19 |
version 1.147.2.1, 2006/08/11 15:46:33 |
| Line 1179 udp_usrreq(struct socket *so, int req, s |
|
| Line 1179 udp_usrreq(struct socket *so, int req, s |
|
| struct mbuf *control, struct lwp *l) |
struct mbuf *control, struct lwp *l) |
| { |
{ |
| struct inpcb *inp; |
struct inpcb *inp; |
| struct proc *p; |
|
| int s; |
int s; |
| int error = 0; |
int error = 0; |
| |
|
| p = l ? l->l_proc : NULL; |
|
| if (req == PRU_CONTROL) |
if (req == PRU_CONTROL) |
| return (in_control(so, (long)m, (caddr_t)nam, |
return (in_control(so, (long)m, (caddr_t)nam, |
| (struct ifnet *)control, p)); |
(struct ifnet *)control, l)); |
| |
|
| if (req == PRU_PURGEIF) { |
if (req == PRU_PURGEIF) { |
| in_pcbpurgeif0(&udbtable, (struct ifnet *)control); |
in_pcbpurgeif0(&udbtable, (struct ifnet *)control); |
| Line 1239 udp_usrreq(struct socket *so, int req, s |
|
| Line 1237 udp_usrreq(struct socket *so, int req, s |
|
| break; |
break; |
| |
|
| case PRU_BIND: |
case PRU_BIND: |
| error = in_pcbbind(inp, nam, p); |
error = in_pcbbind(inp, nam, l); |
| break; |
break; |
| |
|
| case PRU_LISTEN: |
case PRU_LISTEN: |
| Line 1247 udp_usrreq(struct socket *so, int req, s |
|
| Line 1245 udp_usrreq(struct socket *so, int req, s |
|
| break; |
break; |
| |
|
| case PRU_CONNECT: |
case PRU_CONNECT: |
| error = in_pcbconnect(inp, nam, p); |
error = in_pcbconnect(inp, nam, l); |
| if (error) |
if (error) |
| break; |
break; |
| soisconnected(so); |
soisconnected(so); |
| Line 1289 udp_usrreq(struct socket *so, int req, s |
|
| Line 1287 udp_usrreq(struct socket *so, int req, s |
|
| error = EISCONN; |
error = EISCONN; |
| goto die; |
goto die; |
| } |
} |
| error = in_pcbconnect(inp, nam, p); |
error = in_pcbconnect(inp, nam, l); |
| if (error) |
if (error) |
| goto die; |
goto die; |
| } else { |
} else { |