version 1.209, 2014/07/23 13:17:18 |
version 1.210, 2014/07/24 15:12:03 |
Line 900 udp_accept(struct socket *so, struct mbu |
|
Line 900 udp_accept(struct socket *so, struct mbu |
|
KASSERT(solocked(so)); |
KASSERT(solocked(so)); |
|
|
panic("udp_accept"); |
panic("udp_accept"); |
/* NOT REACHED */ |
|
|
return EOPNOTSUPP; |
|
} |
|
|
|
static int |
|
udp_bind(struct socket *so, struct mbuf *nam) |
|
{ |
|
struct inpcb *inp = sotoinpcb(so); |
|
int error = 0; |
|
int s; |
|
|
|
KASSERT(solocked(so)); |
|
KASSERT(inp != NULL); |
|
KASSERT(nam != NULL); |
|
|
|
s = splsoftnet(); |
|
error = in_pcbbind(inp, nam); |
|
splx(s); |
|
|
|
return error; |
|
} |
|
|
|
static int |
|
udp_listen(struct socket *so) |
|
{ |
|
KASSERT(solocked(so)); |
|
|
return EOPNOTSUPP; |
return EOPNOTSUPP; |
} |
} |
|
|
|
|
static int |
static int |
udp_ioctl(struct socket *so, u_long cmd, void *nam, struct ifnet *ifp) |
udp_ioctl(struct socket *so, u_long cmd, void *nam, struct ifnet *ifp) |
{ |
{ |
Line 970 udp_usrreq(struct socket *so, int req, s |
|
Line 997 udp_usrreq(struct socket *so, int req, s |
|
KASSERT(req != PRU_ATTACH); |
KASSERT(req != PRU_ATTACH); |
KASSERT(req != PRU_DETACH); |
KASSERT(req != PRU_DETACH); |
KASSERT(req != PRU_ACCEPT); |
KASSERT(req != PRU_ACCEPT); |
|
KASSERT(req != PRU_BIND); |
|
KASSERT(req != PRU_LISTEN); |
KASSERT(req != PRU_CONTROL); |
KASSERT(req != PRU_CONTROL); |
KASSERT(req != PRU_SENSE); |
KASSERT(req != PRU_SENSE); |
KASSERT(req != PRU_PEERADDR); |
KASSERT(req != PRU_PEERADDR); |
Line 1002 udp_usrreq(struct socket *so, int req, s |
|
Line 1031 udp_usrreq(struct socket *so, int req, s |
|
* the udp pcb queue and/or pcb addresses. |
* the udp pcb queue and/or pcb addresses. |
*/ |
*/ |
switch (req) { |
switch (req) { |
case PRU_BIND: |
|
error = in_pcbbind(inp, nam, l); |
|
break; |
|
|
|
case PRU_LISTEN: |
|
error = EOPNOTSUPP; |
|
break; |
|
|
|
case PRU_CONNECT: |
case PRU_CONNECT: |
error = in_pcbconnect(inp, nam, l); |
error = in_pcbconnect(inp, nam, l); |
if (error) |
if (error) |
Line 1305 PR_WRAP_USRREQS(udp) |
|
Line 1326 PR_WRAP_USRREQS(udp) |
|
#define udp_attach udp_attach_wrapper |
#define udp_attach udp_attach_wrapper |
#define udp_detach udp_detach_wrapper |
#define udp_detach udp_detach_wrapper |
#define udp_accept udp_accept_wrapper |
#define udp_accept udp_accept_wrapper |
|
#define udp_bind udp_bind_wrapper |
|
#define udp_listen udp_listen_wrapper |
#define udp_ioctl udp_ioctl_wrapper |
#define udp_ioctl udp_ioctl_wrapper |
#define udp_stat udp_stat_wrapper |
#define udp_stat udp_stat_wrapper |
#define udp_peeraddr udp_peeraddr_wrapper |
#define udp_peeraddr udp_peeraddr_wrapper |
Line 1317 const struct pr_usrreqs udp_usrreqs = { |
|
Line 1340 const struct pr_usrreqs udp_usrreqs = { |
|
.pr_attach = udp_attach, |
.pr_attach = udp_attach, |
.pr_detach = udp_detach, |
.pr_detach = udp_detach, |
.pr_accept = udp_accept, |
.pr_accept = udp_accept, |
|
.pr_bind = udp_bind, |
|
.pr_listen = udp_listen, |
.pr_ioctl = udp_ioctl, |
.pr_ioctl = udp_ioctl, |
.pr_stat = udp_stat, |
.pr_stat = udp_stat, |
.pr_peeraddr = udp_peeraddr, |
.pr_peeraddr = udp_peeraddr, |