Ignore:
File:
1 edited

Legend:

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

    r8d2dd7f2 r75c3830  
    3838#include <inet/addr.h>
    3939#include <inet/inetcfg.h>
     40#include <io/table.h>
    4041#include <loc.h>
    4142#include <stdio.h>
     
    4849static void print_syntax(void)
    4950{
    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");
     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);
    5560}
    5661
     
    242247        inet_addr_info_t ainfo;
    243248        inet_link_info_t linfo;
     249        table_t *table = NULL;
    244250
    245251        size_t count;
    246252        size_t i;
    247253        int rc;
    248         char *astr;
     254        char *astr = NULL;
     255
     256        ainfo.name = NULL;
     257        linfo.name = NULL;
    249258
    250259        rc = inetcfg_get_addr_list(&addr_list, &count);
     
    254263        }
    255264
    256         printf("Configured addresses:\n");
    257         if (count > 0)
    258                 printf("    [Addr/Width] [Link-Name] [Addr-Name] [Def-MTU]\n");
    259         ainfo.name = NULL;
    260         linfo.name = NULL;
    261         astr = NULL;
     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");
    262274
    263275        for (i = 0; i < count; i++) {
     
    285297                }
    286298
    287                 printf("    %s %s %s %zu\n", astr, linfo.name,
    288                     ainfo.name, linfo.def_mtu);
     299                table_printf(table, "%s\t" "%s\t" "%s\t" "%zu\n", astr,
     300                    linfo.name, ainfo.name, linfo.def_mtu);
    289301
    290302                free(ainfo.name);
     
    297309        }
    298310
    299         if (count == 0)
    300                 printf("    None\n");
     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;
    301320out:
     321        table_destroy(table);
    302322        if (ainfo.name != NULL)
    303323                free(ainfo.name);
     
    309329        free(addr_list);
    310330
    311         return EOK;
     331        return rc;
    312332}
    313333
    314334static int link_list(void)
    315335{
    316         sysarg_t *link_list;
     336        sysarg_t *link_list = NULL;
    317337        inet_link_info_t linfo;
     338        table_t *table = NULL;
    318339
    319340        size_t count;
     
    327348        }
    328349
    329         printf("IP links:\n");
    330         if (count > 0)
    331                 printf("    [Link-layer Address] [Link-Name] [Def-MTU]\n");
     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");
    332358
    333359        for (i = 0; i < count; i++) {
     
    339365                }
    340366
    341                 printf("    %02x:%02x:%02x:%02x:%02x:%02x %s %zu\n",
     367                table_printf(table, "%02x:%02x:%02x:%02x:%02x:%02x\t"
     368                    "%s\t" "%zu\n",
    342369                    linfo.mac_addr[0], linfo.mac_addr[1],
    343370                    linfo.mac_addr[2], linfo.mac_addr[3],
     
    350377        }
    351378
    352         if (count == 0)
    353                 printf("    None\n");
    354 
     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;
     388out:
     389        table_destroy(table);
    355390        free(link_list);
    356391
    357         return EOK;
     392        return rc;
    358393}
    359394
    360395static int sroute_list(void)
    361396{
    362         sysarg_t *sroute_list;
     397        sysarg_t *sroute_list = NULL;
    363398        inet_sroute_info_t srinfo;
     399        table_t *table = NULL;
    364400
    365401        size_t count;
    366402        size_t i;
    367403        int rc;
    368         char *dest_str;
    369         char *router_str;
     404        char *dest_str = NULL;
     405        char *router_str = NULL;
     406
     407        srinfo.name = NULL;
    370408
    371409        rc = inetcfg_get_sroute_list(&sroute_list, &count);
     
    375413        }
    376414
    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;
     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");
    384423
    385424        for (i = 0; i < count; i++) {
     
    406445                }
    407446
    408                 printf("    %s %s %s\n", dest_str, router_str, srinfo.name);
     447                table_printf(table, "%s\t" "%s\t" "%s\n", dest_str, router_str,
     448                    srinfo.name);
    409449
    410450                free(srinfo.name);
     
    417457        }
    418458
    419         if (count == 0)
    420                 printf("    None\n");
     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;
    421468out:
     469        table_destroy(table);
    422470        if (srinfo.name != NULL)
    423471                free(srinfo.name);
     
    429477        free(sroute_list);
    430478
    431         return EOK;
     479        return rc;
    432480}
    433481
     
    443491        }
    444492
    445         if (argc < 2) {
     493        if (argc < 2 || str_cmp(argv[1], "-h") == 0) {
     494                print_syntax();
     495                return 0;
     496        }
     497
     498        if (str_cmp(argv[1], "list-addr") == 0) {
    446499                rc = addr_list();
    447500                if (rc != EOK)
    448501                        return 1;
     502        } else if (str_cmp(argv[1], "create-addr") == 0) {
     503                rc = addr_create_static(argc - 2, argv + 2);
     504                if (rc != EOK)
     505                        return 1;
     506        } else if (str_cmp(argv[1], "delete-addr") == 0) {
     507                rc = addr_delete(argc - 2, argv + 2);
     508                if (rc != EOK)
     509                        return 1;
     510        } else if (str_cmp(argv[1], "list-sr") == 0) {
    449511                rc = sroute_list();
    450512                if (rc != EOK)
    451513                        return 1;
     514        } else if (str_cmp(argv[1], "create-sr") == 0) {
     515                rc = sroute_create(argc - 2, argv + 2);
     516                if (rc != EOK)
     517                        return 1;
     518        } else if (str_cmp(argv[1], "delete-sr") == 0) {
     519                rc = sroute_delete(argc - 2, argv + 2);
     520                if (rc != EOK)
     521                        return 1;
     522        } else if (str_cmp(argv[1], "list-link") == 0) {
    452523                rc = link_list();
    453                 if (rc != EOK)
    454                         return 1;
    455                 return 0;
    456         }
    457 
    458         if (str_cmp(argv[1], "create") == 0) {
    459                 rc = addr_create_static(argc - 2, argv + 2);
    460                 if (rc != EOK)
    461                         return 1;
    462         } else if (str_cmp(argv[1], "delete") == 0) {
    463                 rc = addr_delete(argc - 2, argv + 2);
    464                 if (rc != EOK)
    465                         return 1;
    466         } else if (str_cmp(argv[1], "add-sr") == 0) {
    467                 rc = sroute_create(argc - 2, argv + 2);
    468                 if (rc != EOK)
    469                         return 1;
    470         } else if (str_cmp(argv[1], "del-sr") == 0) {
    471                 rc = sroute_delete(argc - 2, argv + 2);
    472524                if (rc != EOK)
    473525                        return 1;
Note: See TracChangeset for help on using the changeset viewer.