Navigation


Changeset 178:a32646b7e7d7 in freeDiameter for freeDiameter/endpoints.c


Ignore:
Timestamp:
Feb 3, 2010, 5:01:01 PM (14 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Filter more addresses out, such as link-local

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freeDiameter/endpoints.c

    r140 r178  
    5252        CHECK_PARAMS( list && sa && (sl <= sizeof(sSS)) );
    5353       
    54         /* Filter out loopback addresses, unspecified addresses, and invalid families */
     54        /* Filter out a bunch of invalid addresses */
    5555        if (! (flags & EP_ACCEPTALL)) {
    5656                ptr.sa = sa;
    5757                switch (sa->sa_family) {
    5858                        case AF_INET:
    59                                 if (IN_IS_ADDR_UNSPECIFIED(&ptr.sin->sin_addr) || IN_IS_ADDR_LOOPBACK(&ptr.sin->sin_addr))
     59                                if (IN_IS_ADDR_UNSPECIFIED(&ptr.sin->sin_addr)
     60                                 || IN_IS_ADDR_LOOPBACK(&ptr.sin->sin_addr)
     61                                 || IN_MULTICAST(ptr.sin->sin_addr.s_addr)
     62                                 || IN_EXPERIMENTAL(ptr.sin->sin_addr.s_addr)
     63                                 || IN_BADCLASS(ptr.sin->sin_addr.s_addr)
     64                                 || (ptr.sin->sin_addr.s_addr == INADDR_BROADCAST))
    6065                                        return 0;
    6166                                break;
    6267
    6368                        case AF_INET6:
    64                                 if (IN6_IS_ADDR_UNSPECIFIED(&ptr.sin6->sin6_addr) || IN6_IS_ADDR_LOOPBACK(&ptr.sin6->sin6_addr))
     69                                if (IN6_IS_ADDR_UNSPECIFIED(&ptr.sin6->sin6_addr)
     70                                 || IN6_IS_ADDR_LOOPBACK(&ptr.sin6->sin6_addr)
     71                                 || IN6_IS_ADDR_MULTICAST(&ptr.sin6->sin6_addr)
     72                                 || IN6_IS_ADDR_LINKLOCAL(&ptr.sin6->sin6_addr)
     73                                 || IN6_IS_ADDR_SITELOCAL(&ptr.sin6->sin6_addr))
    6574                                        return 0;
    6675                                break;
Note: See TracChangeset for help on using the changeset viewer.