Changeset 287d729 in mainline for uspace/app/nettest2/nettest2.c


Ignore:
Timestamp:
2013-04-25T06:45:04Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
fff7ef4
Parents:
c55cbbf
Message:

Hostname resolution in nterm and nettest1-3.

File:
1 edited

Legend:

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

    rc55cbbf r287d729  
    4747#include <stdbool.h>
    4848
     49#include <inet/dnsr.h>
    4950#include <net/in.h>
    5051#include <net/in6.h>
     
    7172        printf(
    7273            "Network Networking test 2 aplication - UDP transfer\n"
    73             "Usage: echo [options] address\n"
     74            "Usage: nettest2 [options] host\n"
    7475            "Where options are:\n"
    7576            "-f protocol_family | --family=protocol_family\n"
     
    227228        struct sockaddr_in address_in;
    228229        struct sockaddr_in6 address_in6;
     230        dnsr_hostinfo_t *hinfo;
    229231        socklen_t addrlen;
    230232        uint8_t *address_start;
     
    265267        }
    266268
    267         /* If not before the last argument containing the address */
     269        /* If not before the last argument containing the host */
    268270        if (index >= argc) {
    269                 printf("Command line error: missing address\n");
     271                printf("Command line error: missing host name\n");
    270272                nettest2_print_help();
    271273                return EINVAL;
     
    294296        }
    295297
    296         /* Parse the last argument which should contain the address. */
     298        /* Parse the last argument which should contain the host/address */
    297299        rc = inet_pton(family, argv[argc - 1], address_start);
    298300        if (rc != EOK) {
    299                 fprintf(stderr, "Address parse error %d\n", rc);
    300                 return rc;
     301                /* Try interpreting as a host name */
     302                rc = dnsr_init();
     303                if (rc != EOK) {
     304                        printf("Failed connecting DNS resolution "
     305                            "service (%d).\n", rc);
     306                        return rc;
     307                }
     308
     309                rc = dnsr_name2host(argv[argc - 1], &hinfo);
     310                if (rc != EOK) {
     311                        printf("Error resolving host '%s'.\n", argv[argc - 1]);
     312                        return rc;
     313                }
     314
     315                address_in.sin_addr.s_addr = host2uint32_t_be(hinfo->addr.ipv4);
    301316        }
    302317
Note: See TracChangeset for help on using the changeset viewer.