Frank Groeneveld <frank+openbsd-po...@frankgroeneveld.nl> writes:

> On Fri, Dec 09, 2016 at 12:30:47AM +0100, Rafael Sadowski wrote:
>> 
>> Just for fun, diff below updates igmpproxy from beta2 (2005-09-13) to final
>> (2009-10-05). I deleted all undocumented patches. Maybe this is a
>> mistake, maybe not.
>> 
>> Frank, maybe it helps you.
>> 
>> Rafael
>> 
>
> Great, that fixes it, thank you!

It is not clear to me whether this update doesn't have any drawback.
Also, the issue at hand may be fixed only because the patches have been
removed.  Markus is the maintainer and should decide here (I added him
to the Cc list).

Frank, does the following diff help?


Index: patches/patch-rttable_c
===================================================================
RCS file: /d/cvs/ports/net/igmpproxy/patches/patch-rttable_c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-rttable_c
--- patches/patch-rttable_c     8 Feb 2008 19:30:52 -0000       1.1.1.1
+++ patches/patch-rttable_c     9 Dec 2016 14:56:15 -0000
@@ -1,6 +1,6 @@
 $OpenBSD: patch-rttable_c,v 1.1.1.1 2008/02/08 19:30:52 sthen Exp $
---- rttable.c.orig     Sat Aug 20 13:46:20 2005
-+++ rttable.c  Mon Nov 19 12:56:50 2007
+--- rttable.c.orig     Sat Aug 20 14:46:20 2005
++++ rttable.c  Fri Dec  9 15:56:07 2016
 @@ -38,15 +38,22 @@
  */
  
@@ -228,17 +228,16 @@ $OpenBSD: patch-rttable_c,v 1.1.1.1 2008
      free(croute);
      croute = NULL;
  
-@@ -551,6 +588,36 @@ int internAgeRoute(struct RouteTable*  croute) {
+@@ -551,6 +588,35 @@ int internAgeRoute(struct RouteTable*  croute) {
          }
      }
  
 +    {
-+      struct Origin *o, *nxt;
++      struct Origin *o, *tmp;
 +      struct sioc_sg_req sg_req;
 +
 +      sg_req.grp.s_addr = croute->group;
-+      for (o = TAILQ_FIRST(&croute->originList); o; o = nxt) {
-+          nxt = TAILQ_NEXT(o, next);
++      TAILQ_FOREACH_SAFE(o, &croute->originList, next, tmp) {
 +          sg_req.src.s_addr = o->originAddr;
 +          if (ioctl(MRouterFD, SIOCGETSGCNT, (char *)&sg_req) < 0) {
 +              log(LOG_WARNING, errno, "%s (%s %s)",
@@ -265,7 +264,7 @@ $OpenBSD: patch-rttable_c,v 1.1.1.1 2008
      // If the aging counter has reached zero, its time for updating...
      if(croute->ageValue == 0) {
          // Check for activity in the aging process,
-@@ -560,7 +627,7 @@ int internAgeRoute(struct RouteTable*  croute) {
+@@ -560,7 +626,7 @@ int internAgeRoute(struct RouteTable*  croute) {
                           inetFmt(croute->group,s1));
              
              // Just update the routing settings in kernel...
@@ -274,7 +273,7 @@ $OpenBSD: patch-rttable_c,v 1.1.1.1 2008
      
              // We append the activity counter to the age, and continue...
              croute->ageValue = croute->ageActivity;
-@@ -586,34 +653,58 @@ int internAgeRoute(struct RouteTable*  croute) {
+@@ -586,34 +652,58 @@ int internAgeRoute(struct RouteTable*  croute) {
  /**
  *   Updates the Kernel routing table. If activate is 1, the route
  *   is (re-)activated. If activate is false, the route is removed.
@@ -346,7 +345,7 @@ $OpenBSD: patch-rttable_c,v 1.1.1.1 2008
          }
      
          // Do the actual Kernel route update...
-@@ -625,9 +716,6 @@ int internUpdateKernelRoute(struct RouteTable *route, 
+@@ -625,9 +715,6 @@ int internUpdateKernelRoute(struct RouteTable *route, 
              // Delete the route from Kernel...
              delMRoute( &mrDesc );
          }
@@ -356,7 +355,7 @@ $OpenBSD: patch-rttable_c,v 1.1.1.1 2008
      }
  
      return 1;
-@@ -647,16 +735,17 @@ void logRouteTable(char *header) {
+@@ -647,16 +734,17 @@ void logRouteTable(char *header) {
              log(LOG_DEBUG, 0, "No routes in table...");
          } else {
              do {

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to