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:
parent
78928068b6
commit
bde21fe085
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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) ) {
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user