version 1.55.2.6, 2002/11/07 17:58:51 |
version 1.70.2.1, 2003/07/02 15:27:00 |
Line 332 rip_output(m, va_alist) |
|
Line 332 rip_output(m, va_alist) |
|
m_freem(m); |
m_freem(m); |
return (EMSGSIZE); |
return (EMSGSIZE); |
} |
} |
M_PREPEND(m, sizeof(struct ip), M_WAIT); |
M_PREPEND(m, sizeof(struct ip), M_DONTWAIT); |
|
if (!m) |
|
return (ENOBUFS); |
ip = mtod(m, struct ip *); |
ip = mtod(m, struct ip *); |
ip->ip_tos = 0; |
ip->ip_tos = 0; |
ip->ip_off = htons(0); |
ip->ip_off = htons(0); |
Line 442 rip_ctloutput(op, so, level, optname, m) |
|
Line 444 rip_ctloutput(op, so, level, optname, m) |
|
case PRCO_GETOPT: |
case PRCO_GETOPT: |
switch (optname) { |
switch (optname) { |
case IP_HDRINCL: |
case IP_HDRINCL: |
*m = m_get(M_WAIT, M_SOOPTS); |
*m = m_get(M_WAIT, MT_SOOPTS); |
|
MCLAIM((*m), so->so_mowner); |
(*m)->m_len = sizeof (int); |
(*m)->m_len = sizeof (int); |
*mtod(*m, int *) = inp->inp_flags & INP_HDRINCL ? 1 : 0; |
*mtod(*m, int *) = inp->inp_flags & INP_HDRINCL ? 1 : 0; |
break; |
break; |
Line 515 u_long rip_recvspace = RIPRCVQ; |
|
Line 518 u_long rip_recvspace = RIPRCVQ; |
|
|
|
/*ARGSUSED*/ |
/*ARGSUSED*/ |
int |
int |
rip_usrreq(so, req, m, nam, control, p) |
rip_usrreq(so, req, m, nam, control, l) |
struct socket *so; |
struct socket *so; |
int req; |
int req; |
struct mbuf *m, *nam, *control; |
struct mbuf *m, *nam, *control; |
struct proc *p; |
struct lwp *l; |
{ |
{ |
struct inpcb *inp; |
struct inpcb *inp; |
|
struct proc *p; |
int s; |
int s; |
int error = 0; |
int error = 0; |
#ifdef MROUTING |
#ifdef MROUTING |
extern struct socket *ip_mrouter; |
extern struct socket *ip_mrouter; |
#endif |
#endif |
|
|
|
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, p)); |