Changeset 858fc90 in mainline for uspace/srv/net/app/parse.c
- Timestamp:
- 2010-03-15T19:35:25Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6092b56e
- Parents:
- 92307f1 (diff), 4684368 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/app/parse.c
r92307f1 r858fc90 38 38 #include <string.h> 39 39 40 #include "../include/socket.h" 41 40 42 #include "../err.h" 41 43 42 44 #include "parse.h" 43 45 44 int parse_parameter_int( int argc, char ** argv, int * index, int * value, const char * name, int offset ){ 45 char * rest; 46 int parse_address_family(const char * name){ 47 if(str_lcmp(name, "AF_INET", 7) == 0){ 48 return AF_INET; 49 }else if(str_lcmp(name, "AF_INET6", 8) == 0){ 50 return AF_INET6; 51 } 52 return EAFNOSUPPORT; 53 } 46 54 47 if( offset ){ 48 * value = strtol( argv[ * index ] + offset, & rest, 10 ); 49 }else if(( * index ) + 1 < argc ){ 50 ++ ( * index ); 51 * value = strtol( argv[ * index ], & rest, 10 ); 55 int parse_parameter_int(int argc, char ** argv, int * index, int * value, const char * name, int offset){ 56 char * rest; 57 58 if(offset){ 59 *value = strtol(argv[*index] + offset, &rest, 10); 60 }else if((*index) + 1 < argc){ 61 ++ (*index); 62 *value = strtol(argv[*index], &rest, 10); 52 63 }else{ 53 fprintf( stderr, "Command line error: missing %s\n", name);64 fprintf(stderr, "Command line error: missing %s\n", name); 54 65 return EINVAL; 55 66 } 56 if( rest && ( * rest)){57 fprintf( stderr, "Command line error: %s unrecognized (%d: %s)\n", name, * index, argv[ * index ]);67 if(rest && (*rest)){ 68 fprintf(stderr, "Command line error: %s unrecognized (%d: %s)\n", name, * index, argv[*index]); 58 69 return EINVAL; 59 70 } … … 61 72 } 62 73 63 int parse_parameter_string( int argc, char ** argv, int * index, char ** value, const char * name, int offset ){ 64 if( offset ){ 65 * value = argv[ * index ] + offset; 66 }else if(( * index ) + 1 < argc ){ 67 ++ ( * index ); 68 * value = argv[ * index ]; 74 int parse_parameter_name_int(int argc, char ** argv, int * index, int * value, const char * name, int offset, int (*parse_value)(const char * value)){ 75 ERROR_DECLARE; 76 77 char * parameter; 78 79 ERROR_PROPAGATE(parse_parameter_string(argc, argv, index, ¶meter, name, offset)); 80 *value = (*parse_value)(parameter); 81 if((*value) == ENOENT){ 82 fprintf(stderr, "Command line error: unrecognized %s value (%d: %s)\n", name, * index, parameter); 83 return ENOENT; 84 } 85 return EOK; 86 } 87 88 int parse_parameter_string(int argc, char ** argv, int * index, char ** value, const char * name, int offset){ 89 if(offset){ 90 *value = argv[*index] + offset; 91 }else if((*index) + 1 < argc){ 92 ++ (*index); 93 *value = argv[*index]; 69 94 }else{ 70 fprintf( stderr, "Command line error: missing %s\n", name);95 fprintf(stderr, "Command line error: missing %s\n", name); 71 96 return EINVAL; 72 97 } … … 74 99 } 75 100 76 int parse_parameter_name_int( int argc, char ** argv, int * index, int * value, const char * name, int offset, int ( * parse_value )( const char * value )){ 77 ERROR_DECLARE; 78 79 char * parameter; 80 81 ERROR_PROPAGATE( parse_parameter_string( argc, argv, index, & parameter, name, offset )); 82 * value = ( * parse_value )( parameter ); 83 if(( * value ) == ENOENT ){ 84 fprintf( stderr, "Command line error: unrecognized %s value (%d: %s)\n", name, * index, parameter ); 85 return ENOENT; 101 int parse_protocol_family(const char * name){ 102 if(str_lcmp(name, "PF_INET", 7) == 0){ 103 return PF_INET; 104 }else if(str_lcmp(name, "PF_INET6", 8) == 0){ 105 return PF_INET6; 86 106 } 87 return E OK;107 return EPFNOSUPPORT; 88 108 } 89 109 90 void print_unrecognized( int index, const char * parameter ){ 91 fprintf( stderr, "Command line error - unrecognized parameter (%d: %s)\n", index, parameter ); 110 int parse_socket_type(const char * name){ 111 if(str_lcmp(name, "SOCK_DGRAM", 11) == 0){ 112 return SOCK_DGRAM; 113 }else if(str_lcmp(name, "SOCK_STREAM", 12) == 0){ 114 return SOCK_STREAM; 115 } 116 return ESOCKTNOSUPPORT; 117 } 118 119 void print_unrecognized(int index, const char * parameter){ 120 fprintf(stderr, "Command line error: unrecognized argument (%d: %s)\n", index, parameter); 92 121 } 93 122
Note:
See TracChangeset
for help on using the changeset viewer.