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