Changeset 98abd40 in mainline for uspace/app/ping/ping.c


Ignore:
Timestamp:
2013-07-06T21:57:22Z (12 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c8bb1633, cdc8a391
Parents:
b8e72fd1 (diff), 507c6f3 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes

File:
1 edited

Legend:

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

    rb8e72fd1 r98abd40  
    3737#include <errno.h>
    3838#include <fibril_synch.h>
     39#include <net/socket_codes.h>
    3940#include <inet/dnsr.h>
    4041#include <inet/addr.h>
     
    6364};
    6465
    65 static inet_addr_t src_addr;
    66 static inet_addr_t dest_addr;
     66static addr32_t src;
     67static addr32_t dest;
    6768
    6869static bool ping_repeat = false;
     
    8384static int ping_ev_recv(inetping_sdu_t *sdu)
    8485{
    85         char *asrc, *adest;
    86         int rc;
    87 
    88         rc = inet_addr_format(&sdu->src, &asrc);
     86        inet_addr_t src_addr;
     87        inet_addr_set(sdu->src, &src_addr);
     88       
     89        inet_addr_t dest_addr;
     90        inet_addr_set(sdu->dest, &dest_addr);
     91       
     92        char *asrc;
     93        int rc = inet_addr_format(&src_addr, &asrc);
    8994        if (rc != EOK)
    9095                return ENOMEM;
    91 
    92         rc = inet_addr_format(&sdu->dest, &adest);
     96       
     97        char *adest;
     98        rc = inet_addr_format(&dest_addr, &adest);
    9399        if (rc != EOK) {
    94100                free(asrc);
    95101                return ENOMEM;
    96102        }
     103       
    97104        printf("Received ICMP echo reply: from %s to %s, seq. no %u, "
    98105            "payload size %zu\n", asrc, adest, sdu->seq_no, sdu->size);
    99 
    100         if (!ping_repeat) {
     106       
     107        if (!ping_repeat)
    101108                ping_signal_done();
    102         }
    103 
     109       
    104110        free(asrc);
    105111        free(adest);
     
    112118        int rc;
    113119
    114         sdu.src = src_addr;
    115         sdu.dest = dest_addr;
     120        sdu.src = src;
     121        sdu.dest = dest;
    116122        sdu.seq_no = seq_no;
    117123        sdu.data = (void *) "foo";
     
    202208
    203209        /* Parse destination address */
     210        inet_addr_t dest_addr;
    204211        rc = inet_addr_parse(argv[argi], &dest_addr);
    205212        if (rc != EOK) {
     
    210217                        goto error;
    211218                }
    212 
     219               
    213220                dest_addr = hinfo->addr;
    214221        }
    215 
     222       
     223        uint16_t af = inet_addr_get(&dest_addr, &dest, NULL);
     224        if (af != AF_INET) {
     225                printf(NAME ": Destination '%s' is not an IPv4 address.\n",
     226                    argv[argi]);
     227                goto error;
     228        }
     229       
    216230        /* Determine source address */
    217         rc = inetping_get_srcaddr(&dest_addr, &src_addr);
     231        rc = inetping_get_srcaddr(dest, &src);
    218232        if (rc != EOK) {
    219233                printf(NAME ": Failed determining source address.\n");
    220234                goto error;
    221235        }
    222 
     236       
     237        inet_addr_t src_addr;
     238        inet_addr_set(src, &src_addr);
     239       
    223240        rc = inet_addr_format(&src_addr, &asrc);
    224241        if (rc != EOK) {
     
    226243                goto error;
    227244        }
    228 
     245       
    229246        rc = inet_addr_format(&dest_addr, &adest);
    230247        if (rc != EOK) {
     
    232249                goto error;
    233250        }
    234 
     251       
    235252        if (hinfo != NULL) {
    236253                rc = asprintf(&sdest, "%s (%s)", hinfo->cname, adest);
     
    287304        dnsr_hostinfo_destroy(hinfo);
    288305        return 0;
     306       
    289307error:
    290308        free(asrc);
Note: See TracChangeset for help on using the changeset viewer.