Update to igmpproxy-0.4

Changes:
- Add phyint option blacklist for fine-grained forwarding control (can
  be compiled with existing option whitelist)
- Do not unconditionally filter local multicast address 239.255.255.250.
  NOTE: Use new option blacklist for filtering address when required

Switch from auto generated GitHub tarball to stable release one.
This commit is contained in:
bket 2022-10-30 10:07:56 +00:00
parent 78928068b6
commit bde21fe085
7 changed files with 28 additions and 32 deletions

View File

@ -1,9 +1,7 @@
COMMENT = multicast router utilizing IGMP forwarding
GH_ACCOUNT = pali
GH_PROJECT = igmpproxy
GH_COMMIT = 0e7186b300c063ef4015f1551100765ef5537d4c
DISTNAME = igmpproxy-0.3.20210705
V = 0.4
DISTNAME = igmpproxy-${V}
CATEGORIES = net
@ -14,17 +12,15 @@ PERMIT_PACKAGE = Yes
WANTLIB = c
MASTER_SITES = ${HOMEPAGE}/releases/download/${V}/
MAKE_FLAGS = CFLAGS="${CFLAGS} -Wall" \
LDFLAGS="${LDFLAGS}"
CONFIGURE_STYLE = autoreconf
CONFIGURE_STYLE = gnu
DEBUG_PACKAGES = ${BUILD_PACKAGES}
AUTOCONF_VERSION = 2.63
AUTOMAKE_VERSION = 1.12
AUTORECONF = ./autogen.sh
NO_TEST = Yes
do-install:

View File

@ -1,2 +1,2 @@
SHA256 (igmpproxy-0.3.20210705-0e7186b3.tar.gz) = DDFIU7dWYhfJngPYrN1INdRysZqXAleYLp334ii8ofs=
SIZE (igmpproxy-0.3.20210705-0e7186b3.tar.gz) = 43316
SHA256 (igmpproxy-0.4.tar.gz) = r6S3WoI7gvcc6Z8z6uToE2uQauil7eXKqtk7rDjNriQ=
SIZE (igmpproxy-0.4.tar.gz) = 170700

View File

@ -1,7 +1,7 @@
Index: src/config.c
--- src/config.c.orig
+++ src/config.c
@@ -455,3 +455,21 @@ struct SubnetList *parseSubnetAddress(char *addrstr) {
@@ -471,3 +471,21 @@ struct SubnetList *parseSubnetAddress(char *addrstr) {
return tmpSubnet;
}

View File

@ -1,7 +1,7 @@
Index: src/igmp.c
--- src/igmp.c.orig
+++ src/igmp.c
@@ -139,6 +139,7 @@ void acceptIgmp(int recvlen) {
@@ -132,6 +132,7 @@ void acceptIgmp(int recvlen) {
}
else {
struct IfDesc *checkVIF;
@ -9,7 +9,7 @@ Index: src/igmp.c
for(i=0; i<MAX_UPS_VIFS; i++)
{
@@ -156,20 +157,29 @@ void acceptIgmp(int recvlen) {
@@ -149,20 +150,29 @@ void acceptIgmp(int recvlen) {
return;
}
else if(!isAdressValidForIf(checkVIF, src)) {
@ -49,7 +49,7 @@ Index: src/igmp.c
i = MAX_UPS_VIFS;
}
} else {
@@ -199,9 +209,9 @@ void acceptIgmp(int recvlen) {
@@ -192,9 +202,9 @@ void acceptIgmp(int recvlen) {
return;
}

View File

@ -18,7 +18,7 @@ Index: src/igmpproxy.h
/*
* Limit on length of route data
*/
@@ -223,6 +224,7 @@ int getVifIx( struct IfDesc *IfDp );
@@ -224,6 +225,7 @@ int getVifIx( struct IfDesc *IfDp );
int loadConfig(char *configFile);
void configureVifs(void);
struct Config *getCommonConfig(void);

View File

@ -1,7 +1,7 @@
Index: src/request.c
--- src/request.c.orig
+++ src/request.c
@@ -183,6 +183,8 @@ void sendGroupSpecificMemberQuery(void *argument) {
@@ -194,6 +194,8 @@ void sendGroupSpecificMemberQuery(void *argument) {
// Loop through all downstream interfaces
for ( Ix = 0; (Dp = getIfByIx(Ix)); Ix++ ) {
if ( Dp->InAdr.s_addr && ! (Dp->Flags & IFF_LOOPBACK) ) {

View File

@ -98,7 +98,7 @@ Index: src/rttable.c
// Join the all routers group on downstream vifs...
for ( Ix = 0; (Dp = getIfByIx(Ix)); Ix++ ) {
// If this is a downstream vif, we should join the All routers group...
@@ -213,29 +248,24 @@ static void sendJoinLeaveUpstream(struct RouteTable* r
@@ -220,29 +255,24 @@ static void sendJoinLeaveUpstream(struct RouteTable* r
* Clear all routes from routing table, and alerts Leaves upstream.
*/
void clearAllRoutes(void) {
@ -132,7 +132,7 @@ Index: src/rttable.c
// Send a notice that the routing table is empty...
my_log(LOG_NOTICE, 0, "All routes removed. Routing table is empty.");
@@ -246,15 +276,10 @@ void clearAllRoutes(void) {
@@ -253,15 +283,10 @@ void clearAllRoutes(void) {
* Route Descriptor.
*/
static struct RouteTable *findRoute(uint32_t group) {
@ -151,7 +151,7 @@ Index: src/rttable.c
}
/**
@@ -293,10 +318,8 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
@@ -300,10 +325,8 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
newroute = (struct RouteTable*)malloc(sizeof(struct RouteTable) + (conf->fastUpstreamLeave ? conf->downstreamHostsHashTableSize : 0));
// Insert the route desc and clear all pointers...
newroute->group = group;
@ -163,7 +163,7 @@ Index: src/rttable.c
if(conf->fastUpstreamLeave) {
// Init downstream hosts bit hash table
@@ -321,54 +344,13 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
@@ -328,54 +351,13 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
BIT_SET(newroute->vifBits, ifx);
}
@ -223,7 +223,7 @@ Index: src/rttable.c
// Log the cleanup in debugmode...
my_log(LOG_INFO, 0, "Inserted route table entry for %s on VIF #%d",
inetFmt(croute->group, s1),ifx);
@@ -391,7 +373,7 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
@@ -398,7 +380,7 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
inetFmt(croute->group, s1), ifx);
// Update route in kernel...
@ -232,7 +232,7 @@ Index: src/rttable.c
my_log(LOG_WARNING, 0, "The insertion into Kernel failed.");
return 0;
}
@@ -413,7 +395,7 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
@@ -420,7 +402,7 @@ int insertRoute(uint32_t group, int ifx, uint32_t src)
* activated, it's reinstalled in the kernel. If
* the route is activated, no originAddr is needed.
*/
@ -241,7 +241,7 @@ Index: src/rttable.c
struct RouteTable* croute;
int result = 0;
@@ -432,43 +414,37 @@ int activateRoute(uint32_t group, uint32_t originAddr,
@@ -439,43 +421,37 @@ int activateRoute(uint32_t group, uint32_t originAddr,
}
if(croute != NULL) {
@ -308,7 +308,7 @@ Index: src/rttable.c
}
logRouteTable("Activate Route");
@@ -485,12 +461,7 @@ void ageActiveRoutes(void) {
@@ -492,12 +468,7 @@ void ageActiveRoutes(void) {
my_log(LOG_DEBUG, 0, "Aging routes in table.");
@ -322,7 +322,7 @@ Index: src/rttable.c
// Run the aging round algorithm.
if(croute->upstrState != ROUTESTATE_CHECK_LAST_MEMBER) {
// Only age routes if Last member probe is not active...
@@ -602,7 +573,7 @@ static int removeRoute(struct RouteTable* croute) {
@@ -609,7 +580,7 @@ static int removeRoute(struct RouteTable* croute) {
//BIT_ZERO(croute->vifBits);
// Uninstall current route from kernel
@ -331,7 +331,7 @@ Index: src/rttable.c
my_log(LOG_WARNING, 0, "The removal from Kernel failed.");
result = 0;
}
@@ -614,24 +585,8 @@ static int removeRoute(struct RouteTable* croute) {
@@ -621,24 +592,8 @@ static int removeRoute(struct RouteTable* croute) {
sendJoinLeaveUpstream(croute, 0);
}
@ -357,7 +357,7 @@ Index: src/rttable.c
logRouteTable("Remove route");
return result;
@@ -676,6 +631,37 @@ int internAgeRoute(struct RouteTable* croute) {
@@ -683,6 +638,37 @@ int internAgeRoute(struct RouteTable* croute) {
}
}
@ -395,7 +395,7 @@ Index: src/rttable.c
// If the aging counter has reached zero, its time for updating...
if(croute->ageValue == 0) {
// Check for activity in the aging process,
@@ -685,7 +671,7 @@ int internAgeRoute(struct RouteTable* croute) {
@@ -692,7 +678,7 @@ int internAgeRoute(struct RouteTable* croute) {
inetFmt(croute->group,s1));
// Just update the routing settings in kernel...
@ -404,7 +404,7 @@ Index: src/rttable.c
// We append the activity counter to the age, and continue...
croute->ageValue = croute->ageActivity;
@@ -711,39 +697,61 @@ int internAgeRoute(struct RouteTable* croute) {
@@ -718,39 +704,61 @@ 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.
@ -480,7 +480,7 @@ Index: src/rttable.c
}
// Do the actual Kernel route update...
@@ -765,7 +773,7 @@ int internUpdateKernelRoute(struct RouteTable *route,
@@ -772,7 +780,7 @@ int internUpdateKernelRoute(struct RouteTable *route,
*/
void logRouteTable(const char *header) {
struct Config *conf = getCommonConfig();
@ -489,7 +489,7 @@ Index: src/rttable.c
unsigned rcount = 0;
my_log(LOG_DEBUG, 0, "");
@@ -774,30 +782,22 @@ void logRouteTable(const char *header) {
@@ -781,30 +789,22 @@ void logRouteTable(const char *header) {
if(croute==NULL) {
my_log(LOG_DEBUG, 0, "No routes in table...");
} else {