From 4c83789253b997e78437b5564459f3d51b557b00 Mon Sep 17 00:00:00 2001 From: Maxim Sobolev Date: Fri, 30 Jan 2004 09:03:01 +0000 Subject: [PATCH] Remove NetBSD'isms (add FreeBSD'isms?), which makes gre(4) working again. --- sys/net/if_gre.c | 5 ++--- sys/netinet/ip_gre.c | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c index aab70683335..254d9a3b33f 100644 --- a/sys/net/if_gre.c +++ b/sys/net/if_gre.c @@ -351,8 +351,7 @@ gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, gh = mtod(m, struct greip *); if (sc->g_proto == IPPROTO_GRE) { /* we don't have any GRE flags for now */ - - memset((void *)&gh->gi_g, 0, sizeof(struct gre_h)); + memset((void *)gh, 0, sizeof(struct greip)); gh->gi_ptype = htons(etype); } @@ -364,7 +363,7 @@ gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, ((struct ip*)gh)->ip_ttl = GRE_TTL; ((struct ip*)gh)->ip_tos = ip->ip_tos; ((struct ip*)gh)->ip_id = ip->ip_id; - gh->gi_len = htons(m->m_pkthdr.len); + gh->gi_len = m->m_pkthdr.len; } ifp->if_opackets++; diff --git a/sys/netinet/ip_gre.c b/sys/netinet/ip_gre.c index ad9ed3066b6..960b8a81365 100644 --- a/sys/netinet/ip_gre.c +++ b/sys/netinet/ip_gre.c @@ -204,8 +204,8 @@ gre_input2(struct mbuf *m ,int hlen, u_char proto) m_freem(m); return (EINVAL); } + /* Unlike NetBSD, in FreeBSD m_adj() adjusts m->m_pkthdr.len as well */ m_adj(m, hlen); - m->m_pkthdr.len -= hlen; if (sc->sc_if.if_bpf) { u_int32_t af = AF_INET;