Changeset 19a4f73 in mainline for uspace/srv/net/udp/assoc.c


Ignore:
Timestamp:
2013-06-20T15:21:48Z (11 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a2e3ee6
Parents:
3e66428
Message:

udp: use new network address infrastructure (towards IPv6 support)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/udp/assoc.c

    r3e66428 r19a4f73  
    8282        if (lsock != NULL)
    8383                assoc->ident.local = *lsock;
     84       
    8485        if (fsock != NULL)
    8586                assoc->ident.foreign = *fsock;
     
    251252                sp.foreign = *fsock;
    252253
    253         if (sp.foreign.addr.ipv4 == 0 || sp.foreign.port == 0)
     254        if ((inet2_addr_is_any(&sp.foreign.addr)) ||
     255            (sp.foreign.port == UDP_PORT_ANY))
    254256                return EINVAL;
    255257
     
    370372static bool udp_socket_match(udp_sock_t *sock, udp_sock_t *patt)
    371373{
    372         log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_socket_match(sock=(%x,%u), pat=(%x,%u))",
    373             sock->addr.ipv4, sock->port, patt->addr.ipv4, patt->port);
    374 
    375         if (patt->addr.ipv4 != UDP_IPV4_ANY &&
    376             patt->addr.ipv4 != sock->addr.ipv4)
     374        if ((!inet2_addr_is_any(&patt->addr)) &&
     375            (!inet2_addr_compare(&patt->addr, &sock->addr)))
    377376                return false;
    378 
    379         if (patt->port != UDP_PORT_ANY &&
    380             patt->port != sock->port)
     377       
     378        if ((patt->port != UDP_PORT_ANY) &&
     379            (patt->port != sock->port))
    381380                return false;
    382 
     381       
    383382        log_msg(LOG_DEFAULT, LVL_DEBUG, " -> match");
    384 
     383       
    385384        return true;
    386385}
     
    414413{
    415414        log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_find_ref(%p)", sp);
    416 
     415       
    417416        fibril_mutex_lock(&assoc_list_lock);
    418 
     417       
    419418        list_foreach(assoc_list, link) {
    420419                udp_assoc_t *assoc = list_get_instance(link, udp_assoc_t, link);
    421420                udp_sockpair_t *asp = &assoc->ident;
    422                 log_msg(LOG_DEFAULT, LVL_DEBUG, "compare with assoc (f:(%x,%u), l:(%x,%u))",
    423                     asp->foreign.addr.ipv4, asp->foreign.port,
    424                     asp->local.addr.ipv4, asp->local.port);
    425 
     421               
    426422                /* Skip unbound associations */
    427423                if (asp->local.port == UDP_PORT_ANY)
    428424                        continue;
    429 
     425               
    430426                if (udp_sockpair_match(sp, asp)) {
    431427                        log_msg(LOG_DEFAULT, LVL_DEBUG, "Returning assoc %p", assoc);
     
    435431                }
    436432        }
    437 
     433       
    438434        fibril_mutex_unlock(&assoc_list_lock);
    439435        return NULL;
Note: See TracChangeset for help on using the changeset viewer.