Changeset 3e66428 in mainline for uspace/app/dnscfg/dnscfg.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/dnscfg/dnscfg.c

    rb49d872 r3e66428  
    3636
    3737#include <errno.h>
    38 #include <inet/addr.h>
     38#include <inet/addr2.h>
    3939#include <inet/dnsr.h>
    4040#include <ipc/services.h>
     
    4949static void print_syntax(void)
    5050{
    51         printf("syntax:\n");
    52         printf("\t" NAME " set-ns <server-addr>\n");
    53         printf("\t" NAME " unset-ns\n");
     51        printf("Syntax:\n");
     52        printf("\t%s get-ns\n", NAME);
     53        printf("\t%s set-ns <server-addr>\n", NAME);
     54        printf("\t%s unset-ns\n", NAME);
    5455}
    5556
    5657static int dnscfg_set_ns(int argc, char *argv[])
    5758{
    58         char *srv_addr;
    59         inet_addr_t addr;
    60         int rc;
    61 
    6259        if (argc < 1) {
    63                 printf(NAME ": Missing arguments.\n");
     60                printf("%s: Missing arguments.\n", NAME);
    6461                print_syntax();
    6562                return EINVAL;
    6663        }
    67 
     64       
    6865        if (argc > 1) {
    69                 printf(NAME ": Too many arguments.\n");
     66                printf("%s: Too many arguments.\n", NAME);
    7067                print_syntax();
    7168                return EINVAL;
    7269        }
    73 
    74         srv_addr = argv[0];
    75 
    76         rc = inet_addr_parse(srv_addr, &addr);
     70       
     71        char *srv_addr  = argv[0];
     72       
     73        inet2_addr_t addr;
     74        int rc = inet2_addr_parse(srv_addr, &addr);
     75       
    7776        if (rc != EOK) {
    78                 printf(NAME ": Invalid address format '%s'.\n", srv_addr);
    79                 return EINVAL;
     77                printf("%s: Invalid address format '%s'.\n", NAME, srv_addr);
     78                return rc;
    8079        }
    81 
     80       
    8281        rc = dnsr_set_srvaddr(&addr);
    8382        if (rc != EOK) {
    84                 printf(NAME ": Failed setting server address '%s' (%s)\n",
    85                     srv_addr, str_error(rc));
    86                 return EIO;
     83                printf("%s: Failed setting nameserver address '%s' (%s)\n",
     84                    NAME, srv_addr, str_error(rc));
     85                return rc;
    8786        }
    88 
     87       
    8988        return EOK;
    9089}
    9190
    92 static int dnscfg_unset_ns(int argc, char *argv[])
     91static int dnscfg_unset_ns(void)
    9392{
    94         inet_addr_t addr;
    95         int rc;
    96 
    97         if (argc > 0) {
    98                 printf(NAME ": Too many arguments.\n");
    99                 print_syntax();
    100                 return EINVAL;
     93        inet2_addr_t addr;
     94        inet2_addr_empty(&addr);
     95       
     96        int rc = dnsr_set_srvaddr(&addr);
     97        if (rc != EOK) {
     98                printf("%s: Failed unsetting server address (%s)\n",
     99                    NAME, str_error(rc));
     100                return rc;
    101101        }
    102 
    103         addr.ipv4 = 0;
    104         rc = dnsr_set_srvaddr(&addr);
    105         if (rc != EOK) {
    106                 printf(NAME ": Failed unsetting server address (%s)\n",
    107                     str_error(rc));
    108                 return EIO;
    109         }
    110 
     102       
    111103        return EOK;
    112104}
     
    114106static int dnscfg_print(void)
    115107{
    116         inet_addr_t addr;
    117         char *addr_str;
    118         int rc;
    119 
    120         rc = dnsr_get_srvaddr(&addr);
     108        inet2_addr_t addr;
     109        int rc = dnsr_get_srvaddr(&addr);
    121110        if (rc != EOK) {
    122                 printf(NAME ": Failed getting DNS server address.\n");
     111                printf("%s: Failed getting DNS server address.\n", NAME);
    123112                return rc;
    124113        }
    125 
    126         rc = inet_addr_format(&addr, &addr_str);
     114       
     115        char *addr_str;
     116        rc = inet2_addr_format(&addr, &addr_str);
    127117        if (rc != EOK) {
    128                 printf(NAME ": Out of memory.\n");
     118                printf("%s: Out of memory.\n", NAME);
    129119                return rc;
    130120        }
    131 
    132         printf("Server: %s\n", addr_str);
     121       
     122        printf("Nameserver: %s\n", addr_str);
    133123        free(addr_str);
    134124        return EOK;
     
    137127int main(int argc, char *argv[])
    138128{
    139         int rc;
    140 
    141         if (argc < 2) {
    142                 rc = dnscfg_print();
    143                 if (rc != EOK)
    144                         return 1;
    145                 return 0;
    146         }
    147 
    148         if (str_cmp(argv[1], "set-ns") == 0) {
    149                 rc = dnscfg_set_ns(argc - 2, argv + 2);
    150                 if (rc != EOK)
    151                         return 1;
    152         } else if (str_cmp(argv[1], "unset-ns") == 0) {
    153                 rc = dnscfg_unset_ns(argc - 2, argv + 2);
    154                 if (rc != EOK)
    155                         return 1;
    156         } else {
    157                 printf(NAME ": Unknown command '%s'.\n", argv[1]);
     129        if ((argc < 2) || (str_cmp(argv[1], "get-ns") == 0))
     130                return dnscfg_print();
     131        else if (str_cmp(argv[1], "set-ns") == 0)
     132                return dnscfg_set_ns(argc - 2, argv + 2);
     133        else if (str_cmp(argv[1], "unset-ns") == 0)
     134                return dnscfg_unset_ns();
     135        else {
     136                printf("%s: Unknown command '%s'.\n", NAME, argv[1]);
    158137                print_syntax();
    159138                return 1;
    160139        }
    161 
    162 
     140       
    163141        return 0;
    164142}
Note: See TracChangeset for help on using the changeset viewer.