[prev in list] [next in list] [prev in thread] [next in thread]
List: ipfilter
Subject: Re: block return-rst + IPv6 problem (patch)
From: Peter Postma <peter () pointless ! nl>
Date: 2003-03-25 17:35:05
[Download RAW message or body]
According to ipfstat, it seems that fastroute fails.
The attached patch should fix the problem (only tested on FreeBSD).
Please correct me, if I made errors.
BTW, I don't understand one thing: where is the variable 'fdp' in
ipfr_fastroute6() used for? It seems like a useless variable to me.
Regards,
Peter
["fastroute6.patch" (text/plain)]
--- ip_fil.c.orig Fri Dec 6 12:45:45 2002
+++ ip_fil.c Tue Mar 25 17:05:09 2003
@@ -1937,24 +1937,24 @@
struct route_in6 ip6route;
struct sockaddr_in6 *dst6;
struct route_in6 *ro;
- struct ifnet *ifp;
+ struct ifnet *ifp = (fdp != NULL) ? fdp->fd_ifp : fin->fin_ifp;
frentry_t *fr;
#if defined(OpenBSD) && (OpenBSD >= 200211)
struct route_in6 *ro_pmtu = NULL;
struct in6_addr finaldst;
- ip6_t *ip6;
#endif
+ ip6_t *ip6;
u_long mtu;
int error;
- ifp = NULL;
ro = &ip6route;
+ ip6 = mtod(m0, struct ip6_t *);
fr = fin->fin_fr;
bzero((caddr_t)ro, sizeof(*ro));
dst6 = (struct sockaddr_in6 *)&ro->ro_dst;
dst6->sin6_family = AF_INET6;
dst6->sin6_len = sizeof(struct sockaddr_in6);
- dst6->sin6_addr = fin->fin_fi.fi_src.in6;
+ dst6->sin6_addr = ip6->ip6_dst;
if (fdp != NULL)
ifp = fdp->fd_ifp;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic