| version 1.10, 1994/01/10 20:14:28 |
version 1.11, 1994/02/02 05:59:08 |
| Line 124 rip_output(m, so) |
|
| Line 124 rip_output(m, so) |
|
| } |
} |
| return (ip_output(m, opts, &rp->rinp_route, |
return (ip_output(m, opts, &rp->rinp_route, |
| (so->so_options & SO_DONTROUTE) | IP_ALLOWBROADCAST |
(so->so_options & SO_DONTROUTE) | IP_ALLOWBROADCAST |
| #ifdef MULTICAST |
, rp->rinp_rcb.rcb_moptions )); |
| , rp->rinp_rcb.rcb_moptions |
|
| #else |
|
| , NULL |
|
| #endif |
|
| )); |
|
| } |
} |
| |
|
| /* |
/* |
| Line 165 rip_ctloutput(op, so, level, optname, m) |
|
| Line 160 rip_ctloutput(op, so, level, optname, m) |
|
| else |
else |
| rp->rinp_flags &= ~RINPF_HDRINCL; |
rp->rinp_flags &= ~RINPF_HDRINCL; |
| break; |
break; |
| #ifdef MULTICAST |
|
| case IP_MULTICAST_IF: |
case IP_MULTICAST_IF: |
| case IP_MULTICAST_TTL: |
case IP_MULTICAST_TTL: |
| case IP_MULTICAST_LOOP: |
case IP_MULTICAST_LOOP: |
| Line 181 rip_ctloutput(op, so, level, optname, m) |
|
| Line 175 rip_ctloutput(op, so, level, optname, m) |
|
| error = EINVAL; |
error = EINVAL; |
| #endif |
#endif |
| break; |
break; |
| #else |
|
| default: |
|
| error = EINVAL; |
|
| break; |
|
| #endif |
|
| } |
} |
| break; |
break; |
| |
|
| Line 206 rip_ctloutput(op, so, level, optname, m) |
|
| Line 195 rip_ctloutput(op, so, level, optname, m) |
|
| (*m)->m_len = sizeof (int); |
(*m)->m_len = sizeof (int); |
| *mtod(*m, int *) = rp->rinp_flags & RINPF_HDRINCL; |
*mtod(*m, int *) = rp->rinp_flags & RINPF_HDRINCL; |
| break; |
break; |
| #ifdef MULTICAST |
|
| case IP_MULTICAST_IF: |
case IP_MULTICAST_IF: |
| case IP_MULTICAST_TTL: |
case IP_MULTICAST_TTL: |
| case IP_MULTICAST_LOOP: |
case IP_MULTICAST_LOOP: |
| Line 215 rip_ctloutput(op, so, level, optname, m) |
|
| Line 203 rip_ctloutput(op, so, level, optname, m) |
|
| error = ip_getmoptions(optname, |
error = ip_getmoptions(optname, |
| rp->rinp_rcb.rcb_moptions, m); |
rp->rinp_rcb.rcb_moptions, m); |
| break; |
break; |
| #endif |
|
| default: |
default: |
| error = EINVAL; |
error = EINVAL; |
| m_freem(*m); |
m_freem(*m); |
| Line 238 rip_usrreq(so, req, m, nam, control) |
|
| Line 225 rip_usrreq(so, req, m, nam, control) |
|
| { |
{ |
| register int error = 0; |
register int error = 0; |
| register struct raw_inpcb *rp = sotorawinpcb(so); |
register struct raw_inpcb *rp = sotorawinpcb(so); |
| #if defined(MULTICAST) && defined(MROUTING) |
#if defined(MROUTING) |
| extern struct socket *ip_mrouter; |
extern struct socket *ip_mrouter; |
| #endif |
#endif |
| switch (req) { |
switch (req) { |
| Line 256 rip_usrreq(so, req, m, nam, control) |
|
| Line 243 rip_usrreq(so, req, m, nam, control) |
|
| case PRU_DETACH: |
case PRU_DETACH: |
| if (rp == 0) |
if (rp == 0) |
| panic("rip_detach"); |
panic("rip_detach"); |
| #if defined(MULTICAST) && defined(MROUTING) |
#if defined(MROUTING) |
| if (so == ip_mrouter) |
if (so == ip_mrouter) |
| ip_mrouter_done(); |
ip_mrouter_done(); |
| #endif |
#endif |
| if (rp->rinp_options) |
if (rp->rinp_options) |
| m_freem(rp->rinp_options); |
m_freem(rp->rinp_options); |
| #ifdef MULTICAST |
|
| if (rp->rinp_rcb.rcb_moptions) |
if (rp->rinp_rcb.rcb_moptions) |
| ip_freemoptions(rp->rinp_rcb.rcb_moptions); |
ip_freemoptions(rp->rinp_rcb.rcb_moptions); |
| #endif |
|
| if (rp->rinp_route.ro_rt) |
if (rp->rinp_route.ro_rt) |
| RTFREE(rp->rinp_route.ro_rt); |
RTFREE(rp->rinp_route.ro_rt); |
| if (rp->rinp_rcb.rcb_laddr) |
if (rp->rinp_rcb.rcb_laddr) |