| version 1.25, 1996/02/18 18:58:33 |
version 1.26, 1996/05/22 13:55:31 |
|
|
| #include <sys/socketvar.h> |
#include <sys/socketvar.h> |
| #include <sys/errno.h> |
#include <sys/errno.h> |
| #include <sys/systm.h> |
#include <sys/systm.h> |
| |
#include <sys/proc.h> |
| |
|
| #include <net/if.h> |
#include <net/if.h> |
| #include <net/route.h> |
#include <net/route.h> |
| Line 269 u_long rip_recvspace = RIPRCVQ; |
|
| Line 270 u_long rip_recvspace = RIPRCVQ; |
|
| |
|
| /*ARGSUSED*/ |
/*ARGSUSED*/ |
| int |
int |
| rip_usrreq(so, req, m, nam, control) |
rip_usrreq(so, req, m, nam, control, p) |
| register struct socket *so; |
register struct socket *so; |
| int req; |
int req; |
| struct mbuf *m, *nam, *control; |
struct mbuf *m, *nam, *control; |
| |
struct proc *p; |
| { |
{ |
| register int error = 0; |
register int error = 0; |
| register struct inpcb *inp = sotoinpcb(so); |
register struct inpcb *inp = sotoinpcb(so); |
| Line 281 rip_usrreq(so, req, m, nam, control) |
|
| Line 283 rip_usrreq(so, req, m, nam, control) |
|
| #endif |
#endif |
| 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)); |
(struct ifnet *)control, p)); |
| |
|
| if (inp == NULL && req != PRU_ATTACH) { |
if (inp == NULL && req != PRU_ATTACH) { |
| error = EINVAL; |
error = EINVAL; |
| Line 293 rip_usrreq(so, req, m, nam, control) |
|
| Line 295 rip_usrreq(so, req, m, nam, control) |
|
| case PRU_ATTACH: |
case PRU_ATTACH: |
| if (inp) |
if (inp) |
| panic("rip_attach"); |
panic("rip_attach"); |
| if ((so->so_state & SS_PRIV) == 0) { |
if (p == 0 || (error = suser(p->p_ucred, &p->p_acflag))) { |
| error = EACCES; |
error = EACCES; |
| break; |
break; |
| } |
} |