Ignore:
File:
1 edited

Legend:

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

    r4a5a18be r257feec  
    7070                return rc;
    7171        }
    72 
     72       
    7373        log_msg(LOG_DEFAULT, LVL_DEBUG, "call inet_recv_packet()");
    7474        rc = inet_recv_packet(&packet);
    7575        log_msg(LOG_DEFAULT, LVL_DEBUG, "call inet_recv_packet -> %d", rc);
    7676        free(packet.data);
    77 
     77       
    7878        return rc;
    7979}
     
    153153{
    154154        inet_link_t *ilink;
    155         iplink_addr_t iaddr;
     155        inet_addr_t iaddr;
    156156        int rc;
    157157
     
    196196
    197197        static int first = 1;
    198         /* XXX For testing: set static IP address 10.0.2.15/24 */
     198       
    199199        addr = inet_addrobj_new();
     200       
    200201        if (first) {
    201                 addr->naddr.ipv4 = (127 << 24) + (0 << 16) + (0 << 8) + 1;
     202                inet_naddr(&addr->naddr, 127, 0, 0, 1, 24);
    202203                first = 0;
    203204        } else {
    204                 addr->naddr.ipv4 = (10 << 24) + (0 << 16) + (2 << 8) + 15;
    205         }
    206         addr->naddr.bits = 24;
     205                /* XXX For testing: set static IP address 10.0.2.15/24 */
     206                inet_naddr(&addr->naddr, 10, 0, 2, 15, 24);
     207        }
     208       
    207209        addr->ilink = ilink;
    208210        addr->name = str_dup("v4a");
     
    215217        }
    216218
    217         iaddr.ipv4 = addr->naddr.ipv4;
     219        inet_naddr_addr(&addr->naddr, &iaddr);
    218220        rc = iplink_addr_add(ilink->iplink, &iaddr);
    219221        if (rc != EOK) {
     
    230232        if (ilink->iplink != NULL)
    231233                iplink_close(ilink->iplink);
     234       
    232235        inet_link_delete(ilink);
    233236        return rc;
     
    257260    inet_addr_t *ldest, inet_dgram_t *dgram, uint8_t proto, uint8_t ttl, int df)
    258261{
    259         iplink_sdu_t sdu;
    260         inet_packet_t packet;
    261         int rc;
    262         size_t offs, roffs;
    263 
    264262        /*
    265263         * Fill packet structure. Fragmentation is performed by
    266264         * inet_pdu_encode().
    267265         */
     266       
     267        inet_packet_t packet;
     268       
    268269        packet.src = dgram->src;
    269270        packet.dest = dgram->dest;
     
    274275        packet.data = dgram->data;
    275276        packet.size = dgram->size;
    276 
    277         sdu.lsrc.ipv4 = lsrc->ipv4;
    278         sdu.ldest.ipv4 = ldest->ipv4;
    279 
    280         offs = 0;
     277       
     278        iplink_sdu_t sdu;
     279       
     280        int rc = inet_addr_pack(lsrc, &sdu.lsrc);
     281        if (rc != EOK)
     282                return rc;
     283       
     284        rc = inet_addr_pack(ldest, &sdu.ldest);
     285        if (rc != EOK)
     286                return rc;
     287       
     288        size_t offs = 0;
    281289        do {
     290                size_t roffs;
     291               
    282292                /* Encode one fragment */
    283293                rc = inet_pdu_encode(&packet, offs, ilink->def_mtu, &sdu.data,
     
    285295                if (rc != EOK)
    286296                        return rc;
    287 
     297               
    288298                /* Send the PDU */
    289299                rc = iplink_send(ilink->iplink, &sdu);
    290300                free(sdu.data);
    291 
     301               
    292302                offs = roffs;
    293303        } while (offs < packet.size);
    294 
     304       
    295305        return rc;
    296306}
Note: See TracChangeset for help on using the changeset viewer.