version 1.55.2.5, 2002/08/27 23:48:03 |
version 1.55.2.6, 2002/11/07 17:58:51 |
|
|
in_pcbinit(&rawcbtable, 1, 1); |
in_pcbinit(&rawcbtable, 1, 1); |
} |
} |
|
|
static struct sockaddr_in ripsrc = { sizeof(ripsrc), AF_INET }; |
|
|
|
/* |
/* |
* Setup generic address and protocol structures |
* Setup generic address and protocol structures |
* for raw_input routine, then pass them along with |
* for raw_input routine, then pass them along with |
Line 142 rip_input(m, va_alist) |
|
Line 140 rip_input(m, va_alist) |
|
va_dcl |
va_dcl |
#endif |
#endif |
{ |
{ |
int off, proto; |
int proto; |
struct ip *ip = mtod(m, struct ip *); |
struct ip *ip = mtod(m, struct ip *); |
struct inpcb *inp; |
struct inpcb *inp; |
struct inpcb *last = 0; |
struct inpcb *last = 0; |
Line 151 rip_input(m, va_alist) |
|
Line 149 rip_input(m, va_alist) |
|
va_list ap; |
va_list ap; |
|
|
va_start(ap, m); |
va_start(ap, m); |
off = va_arg(ap, int); |
(void)va_arg(ap, int); /* ignore value, advance ap */ |
proto = va_arg(ap, int); |
proto = va_arg(ap, int); |
va_end(ap); |
va_end(ap); |
|
|
Line 350 rip_output(m, va_alist) |
|
Line 348 rip_output(m, va_alist) |
|
return (EMSGSIZE); |
return (EMSGSIZE); |
} |
} |
ip = mtod(m, struct ip *); |
ip = mtod(m, struct ip *); |
|
|
|
/* |
|
* If the mbuf is read-only, we need to allocate |
|
* a new mbuf for the header, since we need to |
|
* modify the header. |
|
*/ |
|
if (M_READONLY(m)) { |
|
int hlen = ip->ip_hl << 2; |
|
|
|
m = m_copyup(m, hlen, (max_linkhdr + 3) & ~3); |
|
if (m == NULL) |
|
return (ENOMEM); /* XXX */ |
|
ip = mtod(m, struct ip *); |
|
} |
|
|
/* XXX userland passes ip_len and ip_off in host order */ |
/* XXX userland passes ip_len and ip_off in host order */ |
if (m->m_pkthdr.len != ip->ip_len) { |
if (m->m_pkthdr.len != ip->ip_len) { |
m_freem(m); |
m_freem(m); |