Changeset 19a4f73 in mainline for uspace/lib/c/generic


Ignore:
Timestamp:
2013-06-20T15:21:48Z (13 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)

Location:
uspace/lib/c/generic
Files:
2 edited

Legend:

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

    r3e66428 r19a4f73  
    144144}
    145145
     146int inet2_get_srcaddr(inet2_addr_t *remote, uint8_t tos, inet2_addr_t *local)
     147{
     148        uint32_t remote_addr;
     149        int rc = inet2_addr_pack(remote, &remote_addr);
     150        if (rc != EOK)
     151                return rc;
     152       
     153        async_exch_t *exch = async_exchange_begin(inet_sess);
     154       
     155        sysarg_t local_addr;
     156        rc = async_req_2_1(exch, INET_GET_SRCADDR, (sysarg_t) remote_addr,
     157            tos, &local_addr);
     158       
     159        async_exchange_end(exch);
     160       
     161        if (rc != EOK)
     162                return rc;
     163       
     164        inet2_addr_unpack(local_addr, local);
     165        return EOK;
     166}
     167
    146168static void inet_ev_recv(ipc_callid_t callid, ipc_call_t *call)
    147169{
  • uspace/lib/c/generic/inet/addr2.c

    r3e66428 r19a4f73  
    4040#include <stdio.h>
    4141
     42// TODO temporarily
     43#include <assert.h>
     44
     45static inet2_addr_t inet2_addr_any = {
     46        .family = AF_INET,
     47        .addr = {0, 0, 0, 0}
     48};
     49
     50static inet2_addr_t inet2_addr6_any = {
     51        .family = AF_INET6,
     52        .addr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
     53};
     54
    4255/** Parse network address family.
    4356 *
     
    336349}
    337350
    338 int inet2_addr_is_empty(inet2_addr_t *addr)
    339 {
    340         return (addr->family == 0);
     351int inet2_addr_is_any(inet2_addr_t *addr)
     352{
     353        return ((addr->family == 0) ||
     354            (inet2_addr_compare(addr, &inet2_addr_any)) ||
     355            (inet2_addr_compare(addr, &inet2_addr6_any)));
     356}
     357
     358void inet_inet2(inet_addr_t *addr, inet2_addr_t *addr2)
     359{
     360        // TODO temporarily
     361        inet2_addr_unpack(addr->ipv4, addr2);
     362}
     363
     364void inet2_inet(inet2_addr_t *addr2, inet_addr_t *addr)
     365{
     366        // TODO temporarily
     367        assert(addr2->family == AF_INET);
     368        inet2_addr_pack(addr2, &addr->ipv4);
    341369}
    342370
Note: See TracChangeset for help on using the changeset viewer.