Changeset a2e3ee6 in mainline for uspace/srv/net/inetsrv/addrobj.c


Ignore:
Timestamp:
2013-06-20T16:45:58Z (11 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
08bb73b
Parents:
19a4f73
Message:

use new network address infrastructure (towards IPv6 support)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/inetsrv/addrobj.c

    r19a4f73 ra2e3ee6  
    112112inet_addrobj_t *inet_addrobj_find(inet_addr_t *addr, inet_addrobj_find_t find)
    113113{
    114         uint32_t mask;
    115 
    116         log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_addrobj_find(%x)", (unsigned)addr->ipv4);
    117 
    118         fibril_mutex_lock(&addr_list_lock);
    119 
     114        uint32_t addr_addr;
     115        int rc = inet_addr_pack(addr, &addr_addr);
     116        if (rc != EOK)
     117                return NULL;
     118       
     119        fibril_mutex_lock(&addr_list_lock);
     120       
    120121        list_foreach(addr_list, link) {
    121122                inet_addrobj_t *naddr = list_get_instance(link,
    122123                    inet_addrobj_t, addr_list);
    123 
    124                 mask = inet_netmask(naddr->naddr.bits);
    125                 if ((naddr->naddr.ipv4 & mask) == (addr->ipv4 & mask)) {
     124               
     125                uint32_t naddr_addr;
     126                uint8_t naddr_bits;
     127                rc = inet_naddr_pack(&naddr->naddr, &naddr_addr, &naddr_bits);
     128                if (rc != EOK)
     129                        continue;
     130               
     131                uint32_t mask = inet_netmask(naddr_bits);
     132                if ((naddr_addr & mask) == (addr_addr & mask)) {
    126133                        fibril_mutex_unlock(&addr_list_lock);
    127134                        log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_addrobj_find: found %p",
     
    218225{
    219226        inet_addr_t lsrc_addr;
    220         inet_addr_t *ldest_addr;
    221 
    222         lsrc_addr.ipv4 = addr->naddr.ipv4;
    223         ldest_addr = ldest;
    224 
     227        inet_naddr_addr(&addr->naddr, &lsrc_addr);
     228       
     229        inet_addr_t *ldest_addr = ldest;
     230       
    225231        return inet_link_send_dgram(addr->ilink, &lsrc_addr, ldest_addr, dgram,
    226232            proto, ttl, df);
Note: See TracChangeset for help on using the changeset viewer.