Changeset 2721a75 in mainline for uspace/app/netecho/netecho.c


Ignore:
Timestamp:
2010-04-09T16:29:07Z (14 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1ef0fc3
Parents:
ddfcfeb2
Message:

ping overhaul:

  • coding style
  • shorter and better readable main()
  • tool output is much similar to GNU's ping, demonstrating what functionality is still missing

related changes:

  • rename strerror.h → str_error.h for consistency
  • replace network apps' specific command-line parsing functions with a generalized libc versions
File:
1 edited

Legend:

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

    rddfcfeb2 r2721a75  
    4040#include <str.h>
    4141#include <task.h>
     42#include <arg_parse.h>
    4243
    4344#include <in.h>
     
    4647#include <socket.h>
    4748#include <net_err.h>
    48 
    49 #include "parse.h"
     49#include <socket_parse.h>
     50
    5051#include "print_error.h"
    5152
     
    133134                        switch(argv[index][1]){
    134135                                case 'b':
    135                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &backlog, "accepted sockets queue size", 0));
     136                                        ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &backlog, 0));
    136137                                        break;
    137138                                case 'c':
    138                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &count, "message count", 0));
     139                                        ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &count, 0));
    139140                                        break;
    140141                                case 'f':
    141                                         ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &family, "protocol family", 0, parse_protocol_family));
     142                                        ERROR_PROPAGATE(arg_parse_name_int(argc, argv, &index, &family, 0, socket_parse_protocol_family));
    142143                                        break;
    143144                                case 'h':
     
    146147                                        break;
    147148                                case 'p':
    148                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &value, "port number", 0));
     149                                        ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &value, 0));
    149150                                        port = (uint16_t) value;
    150151                                        break;
    151152                                case 'r':
    152                                         ERROR_PROPAGATE(parse_parameter_string(argc, argv, &index, &reply, "reply string", 0));
     153                                        ERROR_PROPAGATE(arg_parse_string(argc, argv, &index, &reply, 0));
    153154                                        break;
    154155                                case 's':
    155                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &value, "receive size", 0));
     156                                        ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &value, 0));
    156157                                        size = (value >= 0) ? (size_t) value : 0;
    157158                                        break;
    158159                                case 't':
    159                                         ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &value, "socket type", 0, parse_socket_type));
     160                                        ERROR_PROPAGATE(arg_parse_name_int(argc, argv, &index, &value, 0, socket_parse_socket_type));
    160161                                        type = (sock_type_t) value;
    161162                                        break;
     
    166167                                case '-':
    167168                                        if(str_lcmp(argv[index] + 2, "backlog=", 6) == 0){
    168                                                 ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &backlog, "accepted sockets queue size", 8));
     169                                                ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &backlog, 8));
    169170                                        }else if(str_lcmp(argv[index] + 2, "count=", 6) == 0){
    170                                                 ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &count, "message count", 8));
     171                                                ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &count, 8));
    171172                                        }else if(str_lcmp(argv[index] + 2, "family=", 7) == 0){
    172                                                 ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &family, "protocol family", 9, parse_protocol_family));
     173                                                ERROR_PROPAGATE(arg_parse_name_int(argc, argv, &index, &family, 9, socket_parse_protocol_family));
    173174                                        }else if(str_lcmp(argv[index] + 2, "help", 5) == 0){
    174175                                                echo_print_help();
    175176                                                return EOK;
    176177                                        }else if(str_lcmp(argv[index] + 2, "port=", 5) == 0){
    177                                                 ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &value, "port number", 7));
     178                                                ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &value, 7));
    178179                                                port = (uint16_t) value;
    179180                                        }else if(str_lcmp(argv[index] + 2, "reply=", 6) == 0){
    180                                                 ERROR_PROPAGATE(parse_parameter_string(argc, argv, &index, &reply, "reply string", 8));
     181                                                ERROR_PROPAGATE(arg_parse_string(argc, argv, &index, &reply, 8));
    181182                                        }else if(str_lcmp(argv[index] + 2, "size=", 5) == 0){
    182                                                 ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &value, "receive size", 7));
     183                                                ERROR_PROPAGATE(arg_parse_int(argc, argv, &index, &value, 7));
    183184                                                size = (value >= 0) ? (size_t) value : 0;
    184185                                        }else if(str_lcmp(argv[index] + 2, "type=", 5) == 0){
    185                                                 ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &value, "socket type", 7, parse_socket_type));
     186                                                ERROR_PROPAGATE(arg_parse_name_int(argc, argv, &index, &value, 7, socket_parse_socket_type));
    186187                                                type = (sock_type_t) value;
    187188                                        }else if(str_lcmp(argv[index] + 2, "verbose", 8) == 0){
    188189                                                verbose = 1;
    189190                                        }else{
    190                                                 print_unrecognized(index, argv[index] + 2);
    191191                                                echo_print_help();
    192192                                                return EINVAL;
     
    194194                                        break;
    195195                                default:
    196                                         print_unrecognized(index, argv[index] + 1);
    197196                                        echo_print_help();
    198197                                        return EINVAL;
    199198                        }
    200199                }else{
    201                         print_unrecognized(index, argv[index]);
    202200                        echo_print_help();
    203201                        return EINVAL;
Note: See TracChangeset for help on using the changeset viewer.