Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/app/nettest2/nettest2.c

    raadf01e r9d28b9c  
    6565 *  @returns EOK on success.
    6666 */
    67 int main(int argc, char * argv[]);
     67int             main( int argc, char * argv[] );
    6868
    6969/** Prints the application help.
    7070 */
    71 void print_help(void);
     71void    print_help( void );
    7272
    7373/** Translates the character string to the protocol family number.
     
    7676 *  @returns EPFNOSUPPORTED if the protocol family is not supported.
    7777 */
    78 int parse_protocol_family(const char * name);
     78int             parse_protocol_family( const char * name );
    7979
    8080/** Translates the character string to the socket type number.
     
    8383 *  @returns ESOCKNOSUPPORTED if the socket type is not supported.
    8484 */
    85 int parse_socket_type(const char * name);
     85int             parse_socket_type( const char * name );
    8686
    8787/** Refreshes the data.
     
    9090 *  @param[in] size The data block size in bytes.
    9191 */
    92 void refresh_data(char * data, size_t size);
     92void    refresh_data( char * data, size_t size );
    9393
    9494/** Creates new sockets.
     
    101101 *  @returns Other error codes as defined for the socket() function.
    102102 */
    103 int sockets_create(int verbose, int * socket_ids, int sockets, int family, sock_type_t type);
     103int     sockets_create( int verbose, int * socket_ids, int sockets, int family, sock_type_t type );
    104104
    105105/** Closes sockets.
     
    110110 *  @returns Other error codes as defined for the closesocket() function.
    111111 */
    112 int sockets_close(int verbose, int * socket_ids, int sockets);
     112int     sockets_close( int verbose, int * socket_ids, int sockets );
    113113
    114114/** Connects sockets.
     
    121121 *  @returns Other error codes as defined for the connect() function.
    122122 */
    123 int sockets_connect(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen);
     123int     sockets_connect( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen );
    124124
    125125/** Sends data via sockets.
     
    135135 *  @returns Other error codes as defined for the sendto() function.
    136136 */
    137 int sockets_sendto(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen, char * data, int size, int messages);
     137int     sockets_sendto( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen, char * data, int size, int messages );
    138138
    139139/** Receives data via sockets.
     
    149149 *  @returns Other error codes as defined for the recvfrom() function.
    150150 */
    151 int sockets_recvfrom(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages);
     151int     sockets_recvfrom( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages );
    152152
    153153/** Sends and receives data via sockets.
     
    165165 *  @returns Other error codes as defined for the recvfrom() function.
    166166 */
    167 int sockets_sendto_recvfrom(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages);
     167int     sockets_sendto_recvfrom( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages );
    168168
    169169/** Prints a mark.
     
    171171 *  @param[in] index The index of the mark to be printed.
    172172 */
    173 void print_mark(int index);
    174 
    175 void print_help(void){
     173void    print_mark( int index );
     174
     175void print_help( void ){
    176176        printf(
    177177                "Network Networking test 2 aplication - UDP transfer\n" \
     
    201201}
    202202
    203 int parse_protocol_family(const char * name){
    204         if(str_lcmp(name, "PF_INET", 7) == 0){
     203int parse_protocol_family( const char * name ){
     204        if( str_lcmp( name, "PF_INET", 7 ) == 0 ){
    205205                return PF_INET;
    206         }else if(str_lcmp(name, "PF_INET6", 8) == 0){
     206        }else if( str_lcmp( name, "PF_INET6", 8 ) == 0 ){
    207207                return PF_INET6;
    208208        }
     
    210210}
    211211
    212 int parse_socket_type(const char * name){
    213         if(str_lcmp(name, "SOCK_DGRAM", 11) == 0){
     212int parse_socket_type( const char * name ){
     213        if( str_lcmp( name, "SOCK_DGRAM", 11 ) == 0 ){
    214214                return SOCK_DGRAM;
    215         }else if(str_lcmp(name, "SOCK_STREAM", 12) == 0){
     215        }else if( str_lcmp( name, "SOCK_STREAM", 12 ) == 0 ){
    216216                return SOCK_STREAM;
    217217        }
     
    219219}
    220220
    221 void refresh_data(char * data, size_t size){
    222         size_t length;
     221void refresh_data( char * data, size_t size ){
     222        size_t  length;
    223223
    224224        // fill the data
    225225        length = 0;
    226         while(size > length + sizeof(NETTEST2_TEXT) - 1){
    227                 memcpy(data + length, NETTEST2_TEXT, sizeof(NETTEST2_TEXT) - 1);
    228                 length += sizeof(NETTEST2_TEXT) - 1;
    229         }
    230         memcpy(data + length, NETTEST2_TEXT, size - length);
    231         data[size] = '\0';
    232 }
    233 
    234 int sockets_create(int verbose, int * socket_ids, int sockets, int family, sock_type_t type){
    235         int index;
    236 
    237         if(verbose){
    238                 printf("Create\t");
    239         }
    240         fflush(stdout);
    241         for(index = 0; index < sockets; ++ index){
    242                 socket_ids[index] = socket(family, type, 0);
    243                 if(socket_ids[index] < 0){
    244                         printf("Socket %d (%d) error:\n", index, socket_ids[index]);
    245                         socket_print_error(stderr, socket_ids[index], "Socket create: ", "\n");
    246                         return socket_ids[index];
    247                 }
    248                 if(verbose){
    249                         print_mark(index);
    250                 }
    251         }
    252         return EOK;
    253 }
    254 
    255 int sockets_close(int verbose, int * socket_ids, int sockets){
     226        while( size > length + sizeof( NETTEST2_TEXT ) - 1 ){
     227                memcpy( data + length, NETTEST2_TEXT, sizeof( NETTEST2_TEXT ) - 1 );
     228                length += sizeof( NETTEST2_TEXT ) - 1;
     229        }
     230        memcpy( data + length, NETTEST2_TEXT, size - length );
     231        data[ size ] = '\0';
     232}
     233
     234int sockets_create( int verbose, int * socket_ids, int sockets, int family, sock_type_t type ){
     235        int     index;
     236
     237        if( verbose ) printf( "Create\t" );
     238        fflush( stdout );
     239        for( index = 0; index < sockets; ++ index ){
     240                socket_ids[ index ] = socket( family, type, 0 );
     241                if( socket_ids[ index ] < 0 ){
     242                        printf( "Socket %d (%d) error:\n", index, socket_ids[ index ] );
     243                        socket_print_error( stderr, socket_ids[ index ], "Socket create: ", "\n" );
     244                        return socket_ids[ index ];
     245                }
     246                if( verbose ) print_mark( index );
     247        }
     248        return EOK;
     249}
     250
     251int sockets_close( int verbose, int * socket_ids, int sockets ){
    256252        ERROR_DECLARE;
    257253
    258         int index;
    259 
    260         if(verbose){
    261                 printf("\tClose\t");
    262         }
    263         fflush(stdout);
    264         for(index = 0; index < sockets; ++ index){
    265                 if(ERROR_OCCURRED(closesocket(socket_ids[index]))){
    266                         printf("Socket %d (%d) error:\n", index, socket_ids[index]);
    267                         socket_print_error(stderr, ERROR_CODE, "Socket close: ", "\n");
     254        int     index;
     255
     256        if( verbose ) printf( "\tClose\t" );
     257        fflush( stdout );
     258        for( index = 0; index < sockets; ++ index ){
     259                if( ERROR_OCCURRED( closesocket( socket_ids[ index ] ))){
     260                        printf( "Socket %d (%d) error:\n", index, socket_ids[ index ] );
     261                        socket_print_error( stderr, ERROR_CODE, "Socket close: ", "\n" );
    268262                        return ERROR_CODE;
    269263                }
    270                 if(verbose){
    271                         print_mark(index);
    272                 }
    273         }
    274         return EOK;
    275 }
    276 
    277 int sockets_connect(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen){
     264                if( verbose ) print_mark( index );
     265        }
     266        return EOK;
     267}
     268
     269int sockets_connect( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen ){
    278270        ERROR_DECLARE;
    279271
    280         int index;
    281 
    282         if(verbose){
    283                 printf("\tConnect\t");
    284         }
    285         fflush(stdout);
    286         for(index = 0; index < sockets; ++ index){
    287                 if(ERROR_OCCURRED(connect(socket_ids[index], address, addrlen))){
    288                         socket_print_error(stderr, ERROR_CODE, "Socket connect: ", "\n");
     272        int     index;
     273
     274        if( verbose ) printf( "\tConnect\t" );
     275        fflush( stdout );
     276        for( index = 0; index < sockets; ++ index ){
     277                if( ERROR_OCCURRED( connect( socket_ids[ index ], address, addrlen ))){
     278                        socket_print_error( stderr, ERROR_CODE, "Socket connect: ", "\n" );
    289279                        return ERROR_CODE;
    290280                }
    291                 if(verbose){
    292                         print_mark(index);
    293                 }
    294         }
    295         return EOK;
    296 }
    297 
    298 int sockets_sendto(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen, char * data, int size, int messages){
     281                if( verbose ) print_mark( index );
     282        }
     283        return EOK;
     284}
     285
     286int sockets_sendto( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen, char * data, int size, int messages ){
    299287        ERROR_DECLARE;
    300288
    301         int index;
    302         int message;
    303 
    304         if(verbose){
    305                 printf("\tSendto\t");
    306         }
    307         fflush(stdout);
    308         for(index = 0; index < sockets; ++ index){
    309                 for(message = 0; message < messages; ++ message){
    310                         if(ERROR_OCCURRED(sendto(socket_ids[index], data, size, 0, address, addrlen))){
    311                                 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message);
    312                                 socket_print_error(stderr, ERROR_CODE, "Socket send: ", "\n");
     289        int     index;
     290        int     message;
     291
     292        if( verbose ) printf( "\tSendto\t" );
     293        fflush( stdout );
     294        for( index = 0; index < sockets; ++ index ){
     295                for( message = 0; message < messages; ++ message ){
     296                        if( ERROR_OCCURRED( sendto( socket_ids[ index ], data, size, 0, address, addrlen ))){
     297                                printf( "Socket %d (%d), message %d error:\n", index, socket_ids[ index ], message );
     298                                socket_print_error( stderr, ERROR_CODE, "Socket send: ", "\n" );
    313299                                return ERROR_CODE;
    314300                        }
    315301                }
    316                 if(verbose){
    317                         print_mark(index);
    318                 }
    319         }
    320         return EOK;
    321 }
    322 
    323 int sockets_recvfrom(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages){
    324         int value;
    325         int index;
    326         int message;
    327 
    328         if(verbose){
    329                 printf("\tRecvfrom\t");
    330         }
    331         fflush(stdout);
    332         for(index = 0; index < sockets; ++ index){
    333                 for(message = 0; message < messages; ++ message){
    334                         value = recvfrom(socket_ids[index], data, size, 0, address, addrlen);
    335                         if(value < 0){
    336                                 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message);
    337                                 socket_print_error(stderr, value, "Socket receive: ", "\n");
     302                if( verbose ) print_mark( index );
     303        }
     304        return EOK;
     305}
     306
     307int sockets_recvfrom( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages ){
     308        int     value;
     309        int     index;
     310        int     message;
     311
     312        if( verbose ) printf( "\tRecvfrom\t" );
     313        fflush( stdout );
     314        for( index = 0; index < sockets; ++ index ){
     315                for( message = 0; message < messages; ++ message ){
     316                        value = recvfrom( socket_ids[ index ], data, size, 0, address, addrlen );
     317                        if( value < 0 ){
     318                                printf( "Socket %d (%d), message %d error:\n", index, socket_ids[ index ], message );
     319                                socket_print_error( stderr, value, "Socket receive: ", "\n" );
    338320                                return value;
    339321                        }
    340322                }
    341                 if(verbose){
    342                         print_mark(index);
    343                 }
    344         }
    345         return EOK;
    346 }
    347 
    348 int sockets_sendto_recvfrom(int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages){
     323                if( verbose ) print_mark( index );
     324        }
     325        return EOK;
     326}
     327
     328int sockets_sendto_recvfrom( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages ){
    349329        ERROR_DECLARE;
    350330
    351         int value;
    352         int index;
    353         int message;
    354 
    355         if(verbose){
    356                 printf("\tSendto and recvfrom\t");
    357         }
    358         fflush(stdout);
    359         for(index = 0; index < sockets; ++ index){
    360                 for(message = 0; message < messages; ++ message){
    361                         if(ERROR_OCCURRED(sendto(socket_ids[index], data, size, 0, address, * addrlen))){
    362                                 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message);
    363                                 socket_print_error(stderr, ERROR_CODE, "Socket send: ", "\n");
     331        int     value;
     332        int     index;
     333        int     message;
     334
     335        if( verbose ) printf( "\tSendto and recvfrom\t" );
     336        fflush( stdout );
     337        for( index = 0; index < sockets; ++ index ){
     338                for( message = 0; message < messages; ++ message ){
     339                        if( ERROR_OCCURRED( sendto( socket_ids[ index ], data, size, 0, address, * addrlen ))){
     340                                printf( "Socket %d (%d), message %d error:\n", index, socket_ids[ index ], message );
     341                                socket_print_error( stderr, ERROR_CODE, "Socket send: ", "\n" );
    364342                                return ERROR_CODE;
    365343                        }
    366                         value = recvfrom(socket_ids[index], data, size, 0, address, addrlen);
    367                         if(value < 0){
    368                                 printf("Socket %d (%d), message %d error:\n", index, socket_ids[index], message);
    369                                 socket_print_error(stderr, value, "Socket receive: ", "\n");
     344                        value = recvfrom( socket_ids[ index ], data, size, 0, address, addrlen );
     345                        if( value < 0 ){
     346                                printf( "Socket %d (%d), message %d error:\n", index, socket_ids[ index ], message );
     347                                socket_print_error( stderr, value, "Socket receive: ", "\n" );
    370348                                return value;
    371349                        }
    372350                }
    373                 if(verbose){
    374                         print_mark(index);
    375                 }
    376         }
    377         return EOK;
    378 }
    379 
    380 void print_mark(int index){
    381         if((index + 1) % 10){
    382                 printf("*");
     351                if( verbose ) print_mark( index );
     352        }
     353        return EOK;
     354}
     355
     356void print_mark( int index ){
     357        if(( index + 1 ) % 10 ){
     358                printf( "*" );
    383359        }else{
    384                 printf("|");
    385         }
    386         fflush(stdout);
    387 }
    388 
    389 int main(int argc, char * argv[]){
     360                printf( "|" );
     361        }
     362        fflush( stdout );
     363}
     364
     365int main( int argc, char * argv[] ){
    390366        ERROR_DECLARE;
    391367
    392         size_t size                     = 28;
    393         int verbose                     = 0;
    394         sock_type_t type                        = SOCK_DGRAM;
    395         int sockets                     = 10;
    396         int messages            = 10;
    397         int family                      = PF_INET;
    398         uint16_t port                   = 7;
    399 
    400         socklen_t max_length            = sizeof(struct sockaddr_in6);
    401         uint8_t address_data[max_length];
    402         struct sockaddr * address               = (struct sockaddr *) address_data;
    403         struct sockaddr_in * address_in         = (struct sockaddr_in *) address;
    404         struct sockaddr_in6 * address_in6       = (struct sockaddr_in6 *) address;
    405         socklen_t addrlen;
    406 //      char                            address_string[INET6_ADDRSTRLEN];
    407         uint8_t * address_start;
    408 
    409         int * socket_ids;
     368        size_t                          size                    = 28;
     369        int                                     verbose                 = 0;
     370        sock_type_t                     type                    = SOCK_DGRAM;
     371        int                                     sockets                 = 10;
     372        int                                     messages                = 10;
     373        int                                     family                  = PF_INET;
     374        uint16_t                        port                    = 7;
     375
     376        socklen_t                       max_length              = sizeof( struct sockaddr_in6 );
     377        uint8_t                         address_data[ max_length ];
     378        struct sockaddr *               address         = ( struct sockaddr * ) address_data;
     379        struct sockaddr_in *    address_in              = ( struct sockaddr_in * ) address;
     380        struct sockaddr_in6 *   address_in6     = ( struct sockaddr_in6 * ) address;
     381        socklen_t                       addrlen;
     382//      char                            address_string[ INET6_ADDRSTRLEN ];
     383        uint8_t *                       address_start;
     384
     385        int *                           socket_ids;
    410386        char *                          data;
    411         int value;
    412         int index;
    413         struct timeval time_before;
    414         struct timeval time_after;
    415 
    416         printf("Task %d - ", task_get_id());
    417         printf("%s\n", NAME);
    418 
    419         if(argc <= 1){
     387        int                                     value;
     388        int                                     index;
     389        struct timeval          time_before;
     390        struct timeval          time_after;
     391
     392        printf( "Task %d - ", task_get_id());
     393        printf( "%s\n", NAME );
     394
     395        if( argc <= 1 ){
    420396                print_help();
    421397                return EINVAL;
    422398        }
    423399
    424         for(index = 1; (index < argc - 1) || ((index == argc) && (argv[index][0] == '-')); ++ index){
    425                 if(argv[index][0] == '-'){
    426                         switch(argv[index][1]){
    427                                 case 'f':
    428                                         ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &family, "protocol family", 0, parse_protocol_family));
    429                                         break;
    430                                 case 'h':
    431                                         print_help();
    432                                         return EOK;
    433                                         break;
    434                                 case 'm':
    435                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &messages, "message count", 0));
    436                                         break;
    437                                 case 'n':
    438                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &sockets, "socket count", 0));
    439                                         break;
    440                                 case 'p':
    441                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &value, "port number", 0));
    442                                         port = (uint16_t) value;
    443                                         break;
    444                                 case 's':
    445                                         ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &value, "packet size", 0));
    446                                         size = (value >= 0) ? (size_t) value : 0;
    447                                         break;
    448                                 case 't':
    449                                         ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &value, "socket type", 0, parse_socket_type));
    450                                         type = (sock_type_t) value;
    451                                         break;
    452                                 case 'v':
    453                                         verbose = 1;
    454                                         break;
    455                                 case '-':
    456                                         if(str_lcmp(argv[index] + 2, "family=", 7) == 0){
    457                                                 ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &family, "protocol family", 9, parse_protocol_family));
    458                                         }else if(str_lcmp(argv[index] + 2, "help", 5) == 0){
    459                                                 print_help();
    460                                                 return EOK;
    461                                         }else if(str_lcmp(argv[index] + 2, "messages=", 6) == 0){
    462                                                 ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &messages, "message count", 8));
    463                                         }else if(str_lcmp(argv[index] + 2, "sockets=", 6) == 0){
    464                                                 ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &sockets, "socket count", 8));
    465                                         }else if(str_lcmp(argv[index] + 2, "port=", 5) == 0){
    466                                                 ERROR_PROPAGATE(parse_parameter_int(argc, argv, &index, &value, "port number", 7));
    467                                                 port = (uint16_t) value;
    468                                         }else if(str_lcmp(argv[index] + 2, "type=", 5) == 0){
    469                                                 ERROR_PROPAGATE(parse_parameter_name_int(argc, argv, &index, &value, "socket type", 7, parse_socket_type));
    470                                                 type = (sock_type_t) value;
    471                                         }else if(str_lcmp(argv[index] + 2, "verbose", 8) == 0){
    472                                                 verbose = 1;
    473                                         }else{
    474                                                 print_unrecognized(index, argv[index] + 2);
    475                                                 print_help();
    476                                                 return EINVAL;
    477                                         }
    478                                         break;
     400        for( index = 1; ( index < argc - 1 ) || (( index == argc ) && ( argv[ index ][ 0 ] == '-' )); ++ index ){
     401                if( argv[ index ][ 0 ] == '-' ){
     402                        switch( argv[ index ][ 1 ] ){
     403                                case 'f':       ERROR_PROPAGATE( parse_parameter_name_int( argc, argv, & index, & family, "protocol family", 0, parse_protocol_family ));
     404                                                        break;
     405                                case 'h':       print_help();
     406                                                        return EOK;
     407                                                        break;
     408                                case 'm':       ERROR_PROPAGATE( parse_parameter_int( argc, argv, & index, & messages, "message count", 0 ));
     409                                                        break;
     410                                case 'n':       ERROR_PROPAGATE( parse_parameter_int( argc, argv, & index, & sockets, "socket count", 0 ));
     411                                                        break;
     412                                case 'p':       ERROR_PROPAGATE( parse_parameter_int( argc, argv, & index, & value, "port number", 0 ));
     413                                                        port = ( uint16_t ) value;
     414                                                        break;
     415                                case 's':       ERROR_PROPAGATE( parse_parameter_int( argc, argv, & index, & value, "packet size", 0 ));
     416                                                        size = (value >= 0 ) ? ( size_t ) value : 0;
     417                                                        break;
     418                                case 't':       ERROR_PROPAGATE( parse_parameter_name_int( argc, argv, & index, & value, "socket type", 0, parse_socket_type ));
     419                                                        type = ( sock_type_t ) value;
     420                                                        break;
     421                                case 'v':       verbose = 1;
     422                                                        break;
     423                                case '-':       if( str_lcmp( argv[ index ] + 2, "family=", 7 ) == 0 ){
     424                                                                ERROR_PROPAGATE( parse_parameter_name_int( argc, argv, & index, & family, "protocol family", 9, parse_protocol_family ));
     425                                                        }else if( str_lcmp( argv[ index ] + 2, "help", 5 ) == 0 ){
     426                                                                print_help();
     427                                                                return EOK;
     428                                                        }else if( str_lcmp( argv[ index ] + 2, "messages=", 6 ) == 0 ){
     429                                                                ERROR_PROPAGATE( parse_parameter_int( argc, argv, & index, & messages, "message count", 8 ));
     430                                                        }else if( str_lcmp( argv[ index ] + 2, "sockets=", 6 ) == 0 ){
     431                                                                ERROR_PROPAGATE( parse_parameter_int( argc, argv, & index, & sockets, "socket count", 8 ));
     432                                                        }else if( str_lcmp( argv[ index ] + 2, "port=", 5 ) == 0 ){
     433                                                                ERROR_PROPAGATE( parse_parameter_int( argc, argv, & index, & value, "port number", 7 ));
     434                                                                port = ( uint16_t ) value;
     435                                                        }else if( str_lcmp( argv[ index ] + 2, "type=", 5 ) == 0 ){
     436                                                                ERROR_PROPAGATE( parse_parameter_name_int( argc, argv, & index, & value, "socket type", 7, parse_socket_type ));
     437                                                                type = ( sock_type_t ) value;
     438                                                        }else if( str_lcmp( argv[ index ] + 2, "verbose", 8 ) == 0 ){
     439                                                                verbose = 1;
     440                                                        }else{
     441                                                                print_unrecognized( index, argv[ index ] + 2 );
     442                                                                print_help();
     443                                                                return EINVAL;
     444                                                        }
     445                                                        break;
    479446                                default:
    480                                         print_unrecognized(index, argv[index] + 1);
     447                                        print_unrecognized( index, argv[ index ] + 1 );
    481448                                        print_help();
    482449                                        return EINVAL;
    483450                        }
    484451                }else{
    485                         print_unrecognized(index, argv[index]);
     452                        print_unrecognized( index, argv[ index ] );
    486453                        print_help();
    487454                        return EINVAL;
     
    489456        }
    490457
    491         bzero(address_data, max_length);
    492         switch(family){
     458        bzero( address_data, max_length );
     459        switch( family ){
    493460                case PF_INET:
    494461                        address_in->sin_family = AF_INET;
    495                         address_in->sin_port = htons(port);
    496                         address_start = (uint8_t *) &address_in->sin_addr.s_addr;
    497                         addrlen = sizeof(struct sockaddr_in);
     462                        address_in->sin_port = htons( port );
     463                        address_start = ( uint8_t * ) & address_in->sin_addr.s_addr;
     464                        addrlen = sizeof( struct sockaddr_in );
    498465                        break;
    499466                case PF_INET6:
    500467                        address_in6->sin6_family = AF_INET6;
    501                         address_in6->sin6_port = htons(port);
    502                         address_start = (uint8_t *) &address_in6->sin6_addr.s6_addr;
    503                         addrlen = sizeof(struct sockaddr_in6);
     468                        address_in6->sin6_port = htons( port );
     469                        address_start = ( uint8_t * ) & address_in6->sin6_addr.s6_addr;
     470                        addrlen = sizeof( struct sockaddr_in6 );
    504471                        break;
    505472                default:
    506                         fprintf(stderr, "Address family is not supported\n");
     473                        fprintf( stderr, "Address family is not supported\n" );
    507474                        return EAFNOSUPPORT;
    508475        }
    509476
    510         if(ERROR_OCCURRED(inet_pton(family, argv[argc - 1], address_start))){
    511                 fprintf(stderr, "Address parse error %d\n", ERROR_CODE);
     477        if( ERROR_OCCURRED( inet_pton( family, argv[ argc - 1 ], address_start ))){
     478                fprintf( stderr, "Address parse error %d\n", ERROR_CODE );
    512479                return ERROR_CODE;
    513480        }
    514481
    515         if(size <= 0){
    516                 fprintf(stderr, "Data buffer size too small (%d). Using 1024 bytes instead.\n", size);
     482        if( size <= 0 ){
     483                fprintf( stderr, "Data buffer size too small (%d). Using 1024 bytes instead.\n", size );
    517484                size = 1024;
    518485        }
    519486        // size plus terminating null (\0)
    520         data = (char *) malloc(size + 1);
    521         if(! data){
    522                 fprintf(stderr, "Failed to allocate data buffer.\n");
     487        data = ( char * ) malloc( size + 1 );
     488        if( ! data ){
     489                fprintf( stderr, "Failed to allocate data buffer.\n" );
    523490                return ENOMEM;
    524491        }
    525         refresh_data(data, size);
    526 
    527         if(sockets <= 0){
    528                 fprintf(stderr, "Socket count too small (%d). Using 2 instead.\n", sockets);
     492        refresh_data( data, size );
     493
     494        if( sockets <= 0 ){
     495                fprintf( stderr, "Socket count too small (%d). Using 2 instead.\n", sockets );
    529496                sockets = 2;
    530497        }
    531498        // count plus terminating null (\0)
    532         socket_ids = (int *) malloc(sizeof(int) * (sockets + 1));
    533         if(! socket_ids){
    534                 fprintf(stderr, "Failed to allocate receive buffer.\n");
     499        socket_ids = ( int * ) malloc( sizeof( int ) * ( sockets + 1 ));
     500        if( ! socket_ids ){
     501                fprintf( stderr, "Failed to allocate receive buffer.\n" );
    535502                return ENOMEM;
    536503        }
    537         socket_ids[sockets] = NULL;
    538 
    539         if(verbose){
    540                 printf("Starting tests\n");
    541         }
    542 
    543         ERROR_PROPAGATE(sockets_create(verbose, socket_ids, sockets, family, type));
    544 
    545         if(type == SOCK_STREAM){
    546                 ERROR_PROPAGATE(sockets_connect(verbose, socket_ids, sockets, address, addrlen));
    547         }
    548 
    549         if(verbose){
    550                 printf("\n");
    551         }
    552 
    553         if(ERROR_OCCURRED(gettimeofday(&time_before, NULL))){
    554                 fprintf(stderr, "Get time of day error %d\n", ERROR_CODE);
     504        socket_ids[ sockets ] = NULL;
     505
     506        if( verbose ) printf( "Starting tests\n" );
     507
     508        ERROR_PROPAGATE( sockets_create( verbose, socket_ids, sockets, family, type ));
     509
     510        if( type == SOCK_STREAM ){
     511                ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, addrlen ));
     512        }
     513
     514        if( verbose ) printf( "\n" );
     515
     516        if( ERROR_OCCURRED( gettimeofday( & time_before, NULL ))){
     517                fprintf( stderr, "Get time of day error %d\n", ERROR_CODE );
    555518                return ERROR_CODE;
    556519        }
    557520
    558         ERROR_PROPAGATE(sockets_sendto_recvfrom(verbose, socket_ids, sockets, address, &addrlen, data, size, messages));
    559 
    560         if(ERROR_OCCURRED(gettimeofday(&time_after, NULL))){
    561                 fprintf(stderr, "Get time of day error %d\n", ERROR_CODE);
     521        ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, messages ));
     522
     523        if( ERROR_OCCURRED( gettimeofday( & time_after, NULL ))){
     524                fprintf( stderr, "Get time of day error %d\n", ERROR_CODE );
    562525                return ERROR_CODE;
    563526        }
    564527
    565         if(verbose){
    566                 printf("\tOK\n");
    567         }
    568 
    569         printf("sendto + recvfrom tested in %d microseconds\n", tv_sub(&time_after, &time_before));
    570 
    571         if(ERROR_OCCURRED(gettimeofday(&time_before, NULL))){
    572                 fprintf(stderr, "Get time of day error %d\n", ERROR_CODE);
     528        if( verbose ) printf( "\tOK\n" );
     529
     530        printf( "sendto + recvfrom tested in %d microseconds\n", tv_sub( & time_after, & time_before ));
     531
     532        if( ERROR_OCCURRED( gettimeofday( & time_before, NULL ))){
     533                fprintf( stderr, "Get time of day error %d\n", ERROR_CODE );
    573534                return ERROR_CODE;
    574535        }
    575536
    576         ERROR_PROPAGATE(sockets_sendto(verbose, socket_ids, sockets, address, addrlen, data, size, messages));
    577         ERROR_PROPAGATE(sockets_recvfrom(verbose, socket_ids, sockets, address, &addrlen, data, size, messages));
    578 
    579         if(ERROR_OCCURRED(gettimeofday(&time_after, NULL))){
    580                 fprintf(stderr, "Get time of day error %d\n", ERROR_CODE);
     537        ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, sockets, address, addrlen, data, size, messages ));
     538        ERROR_PROPAGATE( sockets_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, messages ));
     539
     540        if( ERROR_OCCURRED( gettimeofday( & time_after, NULL ))){
     541                fprintf( stderr, "Get time of day error %d\n", ERROR_CODE );
    581542                return ERROR_CODE;
    582543        }
    583544
    584         if(verbose){
    585                 printf("\tOK\n");
    586         }
    587 
    588         printf("sendto, recvfrom tested in %d microseconds\n", tv_sub(&time_after, &time_before));
    589 
    590         ERROR_PROPAGATE(sockets_close(verbose, socket_ids, sockets));
    591 
    592         if(verbose){
    593                 printf("\nExiting\n");
    594         }
     545        if( verbose ) printf( "\tOK\n" );
     546
     547        printf( "sendto, recvfrom tested in %d microseconds\n", tv_sub( & time_after, & time_before ));
     548
     549        ERROR_PROPAGATE( sockets_close( verbose, socket_ids, sockets ));
     550
     551        if( verbose ) printf( "\nExiting\n" );
    595552
    596553        return EOK;
Note: See TracChangeset for help on using the changeset viewer.