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) |