Changeset 3e66428 in mainline for uspace/app/ping/ping.c


Ignore:
Timestamp:
2013-06-20T14:10:51Z (12 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
19a4f73
Parents:
b49d872
Message:

new network address infrastructure (towards IPv6 support)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/ping/ping.c

    rb49d872 r3e66428  
    6363};
    6464
    65 static inet_addr_t src_addr;
    66 static inet_addr_t dest_addr;
     65static uint32_t src;
     66static uint32_t dest;
    6767
    6868static bool ping_repeat = false;
     
    8383static int ping_ev_recv(inetping_sdu_t *sdu)
    8484{
    85         char *asrc, *adest;
    86         int rc;
    87 
    88         rc = inet_addr_format(&sdu->src, &asrc);
     85        inet2_addr_t src_addr;
     86        inet2_addr_unpack(sdu->src, &src_addr);
     87       
     88        inet2_addr_t dest_addr;
     89        inet2_addr_unpack(sdu->dest, &dest_addr);
     90       
     91        char *asrc;
     92        int rc = inet2_addr_format(&src_addr, &asrc);
    8993        if (rc != EOK)
    9094                return ENOMEM;
    91 
    92         rc = inet_addr_format(&sdu->dest, &adest);
     95       
     96        char *adest;
     97        rc = inet2_addr_format(&dest_addr, &adest);
    9398        if (rc != EOK) {
    9499                free(asrc);
    95100                return ENOMEM;
    96101        }
     102       
    97103        printf("Received ICMP echo reply: from %s to %s, seq. no %u, "
    98104            "payload size %zu\n", asrc, adest, sdu->seq_no, sdu->size);
    99 
    100         if (!ping_repeat) {
     105       
     106        if (!ping_repeat)
    101107                ping_signal_done();
    102         }
    103 
     108       
    104109        free(asrc);
    105110        free(adest);
     
    112117        int rc;
    113118
    114         sdu.src = src_addr;
    115         sdu.dest = dest_addr;
     119        sdu.src = src;
     120        sdu.dest = dest;
    116121        sdu.seq_no = seq_no;
    117122        sdu.data = (void *) "foo";
     
    202207
    203208        /* Parse destination address */
    204         rc = inet_addr_parse(argv[argi], &dest_addr);
     209        inet2_addr_t dest_addr;
     210        rc = inet2_addr_parse(argv[argi], &dest_addr);
    205211        if (rc != EOK) {
    206212                /* Try interpreting as a host name */
     
    210216                        goto error;
    211217                }
    212 
     218               
    213219                dest_addr = hinfo->addr;
    214220        }
    215 
     221       
     222        rc = inet2_addr_pack(&dest_addr, &dest);
     223        if (rc != EOK) {
     224                printf(NAME ": Destination '%s' is not an IPv4 address.\n",
     225                    argv[argi]);
     226                goto error;
     227        }
     228       
    216229        /* Determine source address */
    217         rc = inetping_get_srcaddr(&dest_addr, &src_addr);
     230        rc = inetping_get_srcaddr(dest, &src);
    218231        if (rc != EOK) {
    219232                printf(NAME ": Failed determining source address.\n");
    220233                goto error;
    221234        }
    222 
    223         rc = inet_addr_format(&src_addr, &asrc);
     235       
     236        inet2_addr_t src_addr;
     237        inet2_addr_unpack(src, &src_addr);
     238       
     239        rc = inet2_addr_format(&src_addr, &asrc);
    224240        if (rc != EOK) {
    225241                printf(NAME ": Out of memory.\n");
    226242                goto error;
    227243        }
    228 
    229         rc = inet_addr_format(&dest_addr, &adest);
     244       
     245        rc = inet2_addr_format(&dest_addr, &adest);
    230246        if (rc != EOK) {
    231247                printf(NAME ": Out of memory.\n");
    232248                goto error;
    233249        }
    234 
     250       
    235251        if (hinfo != NULL) {
    236252                rc = asprintf(&sdest, "%s (%s)", hinfo->cname, adest);
     
    287303        dnsr_hostinfo_destroy(hinfo);
    288304        return 0;
     305       
    289306error:
    290307        free(asrc);
Note: See TracChangeset for help on using the changeset viewer.