Changeset 1d24ad3 in mainline for uspace/srv/net/inetsrv/inet_link.c


Ignore:
Timestamp:
2013-07-03T14:20:04Z (11 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d8b47eca
Parents:
02a09ed
Message:

more IPv6 stub code

File:
1 edited

Legend:

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

    r02a09ed r1d24ad3  
    7171                break;
    7272        case AF_INET6:
    73                 // FIXME TODO
    74                 return ENOTSUP;
     73                rc = inet_pdu_decode6(sdu->data, sdu->size, &packet);
     74                break;
    7575        default:
    7676                log_msg(LOG_DEFAULT, LVL_DEBUG, "invalid address family");
     
    206206
    207207        inet_addrobj_t *addr;
     208        inet_addrobj_t *addr6;
    208209
    209210        static int first = 1;
    210211       
    211212        addr = inet_addrobj_new();
     213        addr6 = inet_addrobj_new();
    212214       
    213215        if (first) {
    214216                inet_naddr(&addr->naddr, 127, 0, 0, 1, 24);
     217                inet_naddr6(&addr6->naddr, 0, 0, 0, 0, 0, 0, 0, 1, 128);
    215218                first = 0;
    216219        } else {
    217                 /* XXX For testing: set static IP address 10.0.2.15/24 */
     220                /*
     221                 * FIXME
     222                 * Setting static IP addresses for testing purposes
     223                 * 10.0.2.15/24
     224                 * fd19:1680::4/120
     225                 */
    218226                inet_naddr(&addr->naddr, 10, 0, 2, 15, 24);
     227                inet_naddr6(&addr6->naddr, 0xfd19, 0x1680, 0, 0, 0, 0, 0, 4, 120);
    219228        }
    220229       
    221230        addr->ilink = ilink;
     231        addr6->ilink = ilink;
    222232        addr->name = str_dup("v4a");
     233        addr6->name = str_dup("v6a");
     234       
    223235        rc = inet_addrobj_add(addr);
    224236        if (rc != EOK) {
    225                 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed setting IP address on internet link.");
     237                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed adding IPv4 address.");
    226238                inet_addrobj_delete(addr);
    227239                /* XXX Roll back */
    228240                return rc;
    229241        }
    230 
     242       
     243        rc = inet_addrobj_add(addr6);
     244        if (rc != EOK) {
     245                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed adding IPv6 address.");
     246                inet_addrobj_delete(addr6);
     247                /* XXX Roll back */
     248                return rc;
     249        }
     250       
    231251        inet_naddr_addr(&addr->naddr, &iaddr);
    232252        rc = iplink_addr_add(ilink->iplink, &iaddr);
    233253        if (rc != EOK) {
    234                 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed setting IP address on internet link.");
     254                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed setting IPv4 address on internet link.");
    235255                inet_addrobj_remove(addr);
    236256                inet_addrobj_delete(addr);
     
    238258                return rc;
    239259        }
    240 
     260       
     261        inet_naddr_addr(&addr6->naddr, &iaddr);
     262        rc = iplink_addr_add(ilink->iplink, &iaddr);
     263        if (rc != EOK) {
     264                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed setting IPv6 address on internet link.");
     265                inet_addrobj_remove(addr6);
     266                inet_addrobj_delete(addr6);
     267                /* XXX Roll back */
     268                return rc;
     269        }
     270       
    241271        return EOK;
    242272       
Note: See TracChangeset for help on using the changeset viewer.