Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/inet/addr.c

    r02a09ed r30c5d13  
    7070{
    7171        memcpy(dst, src, 16);
     72}
     73
     74int addr128_compare(const addr128_t a, const addr128_t b)
     75{
     76        return memcmp(a, b, 16);
    7277}
    7378
     
    212217}
    213218
     219void inet_addr_naddr(const inet_addr_t *addr, uint8_t prefix,
     220    inet_naddr_t *naddr)
     221{
     222        naddr->family = addr->family;
     223        memcpy(naddr->addr6, addr->addr6, 16);
     224        naddr->prefix = prefix;
     225}
     226
    214227void inet_addr_any(inet_addr_t *addr)
    215228{
     
    234247                return (a->addr == b->addr);
    235248        case AF_INET6:
    236                 return memcmp(&a->addr6, &b->addr6, 16);
     249                return addr128_compare(a->addr6, b->addr6);
    237250        default:
    238251                return 0;
     
    245258            (inet_addr_compare(addr, &inet_addr_any_addr)) ||
    246259            (inet_addr_compare(addr, &inet_addr_any_addr6)));
     260}
     261
     262int inet_naddr_compare(const inet_naddr_t *naddr, const inet_addr_t *addr)
     263{
     264        if (naddr->family != addr->family)
     265                return 0;
     266       
     267        switch (naddr->family) {
     268        case AF_INET:
     269                return (naddr->addr == addr->addr);
     270        case AF_INET6:
     271                return addr128_compare(naddr->addr6, addr->addr6);
     272        default:
     273                return 0;
     274        }
    247275}
    248276
Note: See TracChangeset for help on using the changeset viewer.