Ignore:
File:
1 edited

Legend:

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

    r75c3830 r8d2dd7f2  
    3838#include <inet/addr.h>
    3939#include <inet/inetcfg.h>
    40 #include <io/table.h>
    4140#include <loc.h>
    4241#include <stdio.h>
     
    4948static void print_syntax(void)
    5049{
    51         printf("%s: Internet configuration utility.\n", NAME);
    52         printf("Syntax:\n");
    53         printf("  %s list-addr\n", NAME);
    54         printf("  %s create-addr <addr>/<width> <link-name> <addr-name>\n", NAME);
    55         printf("  %s delete-addr <link-name> <addr-name>\n", NAME);
    56         printf("  %s list-sr\n", NAME);
    57         printf("  %s create-sr <dest-addr>/<width> <router-addr> <route-name>\n", NAME);
    58         printf("  %s delete-sr <route-name>\n", NAME);
    59         printf("  %s list-link\n", NAME);
     50        printf("syntax:\n");
     51        printf("\t" NAME " create <addr>/<width> <link-name> <addr-name>\n");
     52        printf("\t" NAME " delete <link-name> <addr-name>\n");
     53        printf("\t" NAME " add-sr <dest-addr>/<width> <router-addr> <route-name>\n");
     54        printf("\t" NAME " del-sr <route-name>\n");
    6055}
    6156
     
    247242        inet_addr_info_t ainfo;
    248243        inet_link_info_t linfo;
    249         table_t *table = NULL;
    250244
    251245        size_t count;
    252246        size_t i;
    253247        int rc;
    254         char *astr = NULL;
    255 
     248        char *astr;
     249
     250        rc = inetcfg_get_addr_list(&addr_list, &count);
     251        if (rc != EOK) {
     252                printf(NAME ": Failed getting address list.\n");
     253                return rc;
     254        }
     255
     256        printf("Configured addresses:\n");
     257        if (count > 0)
     258                printf("    [Addr/Width] [Link-Name] [Addr-Name] [Def-MTU]\n");
    256259        ainfo.name = NULL;
    257260        linfo.name = NULL;
    258 
    259         rc = inetcfg_get_addr_list(&addr_list, &count);
    260         if (rc != EOK) {
    261                 printf(NAME ": Failed getting address list.\n");
    262                 return rc;
    263         }
    264 
    265         rc = table_create(&table);
    266         if (rc != EOK) {
    267                 printf("Memory allocation failed.\n");
    268                 goto out;
    269         }
    270 
    271         table_header_row(table);
    272         table_printf(table, "Addr/Width\t" "Link-Name\t" "Addr-Name\t"
    273             "Def-MTU\n");
     261        astr = NULL;
    274262
    275263        for (i = 0; i < count; i++) {
     
    297285                }
    298286
    299                 table_printf(table, "%s\t" "%s\t" "%s\t" "%zu\n", astr,
    300                     linfo.name, ainfo.name, linfo.def_mtu);
     287                printf("    %s %s %s %zu\n", astr, linfo.name,
     288                    ainfo.name, linfo.def_mtu);
    301289
    302290                free(ainfo.name);
     
    309297        }
    310298
    311         if (count != 0) {
    312                 rc = table_print_out(table, stdout);
    313                 if (rc != EOK) {
    314                         printf("Error printing table.\n");
    315                         goto out;
    316                 }
    317         }
    318 
    319         rc = EOK;
     299        if (count == 0)
     300                printf("    None\n");
    320301out:
    321         table_destroy(table);
    322302        if (ainfo.name != NULL)
    323303                free(ainfo.name);
     
    329309        free(addr_list);
    330310
    331         return rc;
     311        return EOK;
    332312}
    333313
    334314static int link_list(void)
    335315{
    336         sysarg_t *link_list = NULL;
     316        sysarg_t *link_list;
    337317        inet_link_info_t linfo;
    338         table_t *table = NULL;
    339318
    340319        size_t count;
     
    348327        }
    349328
    350         rc = table_create(&table);
    351         if (rc != EOK) {
    352                 printf("Memory allocation failed.\n");
    353                 goto out;
    354         }
    355 
    356         table_header_row(table);
    357         table_printf(table, "Link-layer Address\t" "Link-Name\t" "Def-MTU\n");
     329        printf("IP links:\n");
     330        if (count > 0)
     331                printf("    [Link-layer Address] [Link-Name] [Def-MTU]\n");
    358332
    359333        for (i = 0; i < count; i++) {
     
    365339                }
    366340
    367                 table_printf(table, "%02x:%02x:%02x:%02x:%02x:%02x\t"
    368                     "%s\t" "%zu\n",
     341                printf("    %02x:%02x:%02x:%02x:%02x:%02x %s %zu\n",
    369342                    linfo.mac_addr[0], linfo.mac_addr[1],
    370343                    linfo.mac_addr[2], linfo.mac_addr[3],
     
    377350        }
    378351
    379         if (count != 0) {
    380                 rc = table_print_out(table, stdout);
    381                 if (rc != EOK) {
    382                         printf("Error printing table.\n");
    383                         goto out;
    384                 }
    385         }
    386 
    387         rc = EOK;
    388 out:
    389         table_destroy(table);
     352        if (count == 0)
     353                printf("    None\n");
     354
    390355        free(link_list);
    391356
    392         return rc;
     357        return EOK;
    393358}
    394359
    395360static int sroute_list(void)
    396361{
    397         sysarg_t *sroute_list = NULL;
     362        sysarg_t *sroute_list;
    398363        inet_sroute_info_t srinfo;
    399         table_t *table = NULL;
    400364
    401365        size_t count;
    402366        size_t i;
    403367        int rc;
    404         char *dest_str = NULL;
    405         char *router_str = NULL;
    406 
    407         srinfo.name = NULL;
     368        char *dest_str;
     369        char *router_str;
    408370
    409371        rc = inetcfg_get_sroute_list(&sroute_list, &count);
     
    413375        }
    414376
    415         rc = table_create(&table);
    416         if (rc != EOK) {
    417                 printf("Memory allocation failed.\n");
    418                 goto out;
    419         }
    420 
    421         table_header_row(table);
    422         table_printf(table, "Dest/Width\t" "Router-Addr\t" "Route-Name\n");
     377        printf("Static routes:\n");
     378        if (count > 0)
     379                printf("    [Dest/Width] [Router-Addr] [Route-Name]\n");
     380
     381        srinfo.name = NULL;
     382        dest_str = NULL;
     383        router_str = NULL;
    423384
    424385        for (i = 0; i < count; i++) {
     
    445406                }
    446407
    447                 table_printf(table, "%s\t" "%s\t" "%s\n", dest_str, router_str,
    448                     srinfo.name);
     408                printf("    %s %s %s\n", dest_str, router_str, srinfo.name);
    449409
    450410                free(srinfo.name);
     
    457417        }
    458418
    459         if (count != 0) {
    460                 rc = table_print_out(table, stdout);
    461                 if (rc != EOK) {
    462                         printf("Error printing table.\n");
    463                         goto out;
    464                 }
    465         }
    466 
    467         rc = EOK;
     419        if (count == 0)
     420                printf("    None\n");
    468421out:
    469         table_destroy(table);
    470422        if (srinfo.name != NULL)
    471423                free(srinfo.name);
     
    477429        free(sroute_list);
    478430
    479         return rc;
     431        return EOK;
    480432}
    481433
     
    491443        }
    492444
    493         if (argc < 2 || str_cmp(argv[1], "-h") == 0) {
    494                 print_syntax();
     445        if (argc < 2) {
     446                rc = addr_list();
     447                if (rc != EOK)
     448                        return 1;
     449                rc = sroute_list();
     450                if (rc != EOK)
     451                        return 1;
     452                rc = link_list();
     453                if (rc != EOK)
     454                        return 1;
    495455                return 0;
    496456        }
    497457
    498         if (str_cmp(argv[1], "list-addr") == 0) {
    499                 rc = addr_list();
    500                 if (rc != EOK)
    501                         return 1;
    502         } else if (str_cmp(argv[1], "create-addr") == 0) {
     458        if (str_cmp(argv[1], "create") == 0) {
    503459                rc = addr_create_static(argc - 2, argv + 2);
    504460                if (rc != EOK)
    505461                        return 1;
    506         } else if (str_cmp(argv[1], "delete-addr") == 0) {
     462        } else if (str_cmp(argv[1], "delete") == 0) {
    507463                rc = addr_delete(argc - 2, argv + 2);
    508464                if (rc != EOK)
    509465                        return 1;
    510         } else if (str_cmp(argv[1], "list-sr") == 0) {
    511                 rc = sroute_list();
    512                 if (rc != EOK)
    513                         return 1;
    514         } else if (str_cmp(argv[1], "create-sr") == 0) {
     466        } else if (str_cmp(argv[1], "add-sr") == 0) {
    515467                rc = sroute_create(argc - 2, argv + 2);
    516468                if (rc != EOK)
    517469                        return 1;
    518         } else if (str_cmp(argv[1], "delete-sr") == 0) {
     470        } else if (str_cmp(argv[1], "del-sr") == 0) {
    519471                rc = sroute_delete(argc - 2, argv + 2);
    520                 if (rc != EOK)
    521                         return 1;
    522         } else if (str_cmp(argv[1], "list-link") == 0) {
    523                 rc = link_list();
    524472                if (rc != EOK)
    525473                        return 1;
Note: See TracChangeset for help on using the changeset viewer.