Ignore:
File:
1 edited

Legend:

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

    r5a324d99 r959d2ec  
    3939#include <stdlib.h>
    4040
    41 #define NAME  "dnsres"
     41#define NAME "dnsres"
    4242
    4343static void print_syntax(void)
    4444{
    45         printf("Syntax: %s [-4|-6] <host-name>\n", NAME);
     45        printf("syntax: " NAME " <host-name>\n");
    4646}
    4747
    4848int main(int argc, char *argv[])
    4949{
    50         if ((argc < 2) || (argc > 3)) {
     50        int rc;
     51        dnsr_hostinfo_t *hinfo;
     52        char *hname;
     53        char *saddr;
     54
     55        if (argc != 2) {
    5156                print_syntax();
    5257                return 1;
    5358        }
    54        
    55         uint16_t ver;
    56         char *hname;
    57        
    58         if (str_cmp(argv[1], "-4") == 0) {
    59                 if (argc < 3) {
    60                         print_syntax();
    61                         return 1;
    62                 }
    63                
    64                 ver = ip_v4;
    65                 hname = argv[2];
    66         } else if (str_cmp(argv[1], "-6") == 0) {
    67                 if (argc < 3) {
    68                         print_syntax();
    69                         return 1;
    70                 }
    71                
    72                 ver = ip_v6;
    73                 hname = argv[2];
    74         } else {
    75                 ver = ip_any;
    76                 hname = argv[1];
     59
     60        hname = argv[1];
     61
     62        rc = dnsr_name2host(hname, &hinfo);
     63        if (rc != EOK) {
     64                printf(NAME ": Error resolving '%s'.\n", argv[1]);
     65                return 1;
    7766        }
    78        
    79         dnsr_hostinfo_t *hinfo;
    80         int rc = dnsr_name2host(hname, &hinfo, ver);
    81         if (rc != EOK) {
    82                 printf("%s: Error resolving '%s'.\n", NAME, hname);
    83                 return rc;
    84         }
    85        
    86         char *saddr;
     67
    8768        rc = inet_addr_format(&hinfo->addr, &saddr);
    8869        if (rc != EOK) {
    8970                dnsr_hostinfo_destroy(hinfo);
    90                 printf("%s: Error formatting address.\n", NAME);
    91                 return rc;
     71                printf(NAME ": Out of memory.\n");
     72                return 1;
    9273        }
    93        
     74
    9475        printf("Host name: %s\n", hname);
    95        
    9676        if (str_cmp(hname, hinfo->cname) != 0)
    9777                printf("Canonical name: %s\n", hinfo->cname);
    98        
    9978        printf("Address: %s\n", saddr);
    100        
     79
    10180        dnsr_hostinfo_destroy(hinfo);
    10281        free(saddr);
    103        
     82
    10483        return 0;
    10584}
Note: See TracChangeset for help on using the changeset viewer.