# HG changeset patch # User Sebastien Decugis # Date 1282634410 -32400 # Node ID 16224de837fdcca6085a2730faa60ab124ecdc8a # Parent 17435072de36e9272c223bb4829be5dbacff31fb Fix problem reported by ????? ????????? on dev@freediameter.net diff -r 17435072de36 -r 16224de837fd freeDiameter/endpoints.c --- a/freeDiameter/endpoints.c Fri Aug 20 15:18:58 2010 +0900 +++ b/freeDiameter/endpoints.c Tue Aug 24 16:20:10 2010 +0900 @@ -73,9 +73,8 @@ if (! (flags & EP_ACCEPTALL)) { if (IN_IS_ADDR_UNSPECIFIED(&ptr.sin->sin_addr) || IN_IS_ADDR_LOOPBACK(&ptr.sin->sin_addr) - || IN_MULTICAST(ptr.sin->sin_addr.s_addr) - || IN_EXPERIMENTAL(ptr.sin->sin_addr.s_addr) - || IN_BADCLASS(ptr.sin->sin_addr.s_addr) + /* the next one filters both EXPERIMENTAL, BADCLASS and MULTICAST. */ + || (((ptr.sin->sin_addr.s_addr) & ntohl(0xe0000000)) == ntohl(0xe0000000)) || (ptr.sin->sin_addr.s_addr == INADDR_BROADCAST)) { if (TRACE_BOOL(ANNOYING + 1)) { TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_add_merge Address was ignored, not added."); diff -r 17435072de36 -r 16224de837fd include/freeDiameter/libfreeDiameter.h --- a/include/freeDiameter/libfreeDiameter.h Fri Aug 20 15:18:58 2010 +0900 +++ b/include/freeDiameter/libfreeDiameter.h Tue Aug 24 16:20:10 2010 +0900 @@ -484,6 +484,10 @@ #define INADDR_LOOPBACK inet_addr("127.0.0.1") #endif /* INADDR_LOOPBACK */ +#ifndef INADDR_BROADCAST +#define INADDR_BROADCAST ((in_addr_t) 0xffffffff) +#endif /* INADDR_BROADCAST */ + /* An IP equivalent to IN6_IS_ADDR_LOOPBACK */ #ifndef IN_IS_ADDR_LOOPBACK #define IN_IS_ADDR_LOOPBACK(a) \