Changes in uspace/srv/net/inetsrv/addrobj.c [a2e3ee6:a1a101d] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/inetsrv/addrobj.c
ra2e3ee6 ra1a101d 112 112 inet_addrobj_t *inet_addrobj_find(inet_addr_t *addr, inet_addrobj_find_t find) 113 113 { 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 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 121 120 list_foreach(addr_list, link) { 122 121 inet_addrobj_t *naddr = list_get_instance(link, 123 122 inet_addrobj_t, addr_list); 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)) { 123 124 mask = inet_netmask(naddr->naddr.bits); 125 if ((naddr->naddr.ipv4 & mask) == (addr->ipv4 & mask)) { 133 126 fibril_mutex_unlock(&addr_list_lock); 134 127 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_addrobj_find: found %p", … … 225 218 { 226 219 inet_addr_t lsrc_addr; 227 inet_naddr_addr(&addr->naddr, &lsrc_addr); 228 229 inet_addr_t *ldest_addr = ldest; 230 220 inet_addr_t *ldest_addr; 221 222 lsrc_addr.ipv4 = addr->naddr.ipv4; 223 ldest_addr = &dgram->dest; 224 231 225 return inet_link_send_dgram(addr->ilink, &lsrc_addr, ldest_addr, dgram, 232 226 proto, ttl, df);
Note:
See TracChangeset
for help on using the changeset viewer.