version 1.169, 2008/04/23 06:09:05 |
version 1.170, 2008/04/24 11:38:38 |
Line 1181 udp_usrreq(struct socket *so, int req, s |
|
Line 1181 udp_usrreq(struct socket *so, int req, s |
|
s = splsoftnet(); |
s = splsoftnet(); |
|
|
if (req == PRU_PURGEIF) { |
if (req == PRU_PURGEIF) { |
|
mutex_enter(softnet_lock); |
in_pcbpurgeif0(&udbtable, (struct ifnet *)control); |
in_pcbpurgeif0(&udbtable, (struct ifnet *)control); |
in_purgeif((struct ifnet *)control); |
in_purgeif((struct ifnet *)control); |
in_pcbpurgeif(&udbtable, (struct ifnet *)control); |
in_pcbpurgeif(&udbtable, (struct ifnet *)control); |
|
mutex_exit(softnet_lock); |
splx(s); |
splx(s); |
return (0); |
return (0); |
} |
} |
Line 1193 udp_usrreq(struct socket *so, int req, s |
|
Line 1195 udp_usrreq(struct socket *so, int req, s |
|
if (req != PRU_SEND && req != PRU_SENDOOB && control) |
if (req != PRU_SEND && req != PRU_SENDOOB && control) |
panic("udp_usrreq: unexpected control mbuf"); |
panic("udp_usrreq: unexpected control mbuf"); |
#endif |
#endif |
if (inp == 0 && req != PRU_ATTACH) { |
if (req == PRU_ATTACH) { |
|
sosetlock(so); |
|
} else if (inp == 0) { |
error = EINVAL; |
error = EINVAL; |
goto release; |
goto release; |
} |
} |