Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4742 → Rev 4743

/branches/network/uspace/srv/net/app/nettest1/nettest1.c
38,6 → 38,7
#include <stdio.h>
#include <string.h>
#include <task.h>
#include <time.h>
 
#include "../../include/in.h"
#include "../../include/in6.h"
83,10 → 84,10
*/
int parse_socket_type( const char * name );
 
void refresh_data( char * data, int size );
void refresh_data( char * data, size_t size );
int sockets_create( int verbose, int * socket_ids, int sockets, int family, sock_type_t type );
int sockets_close( int verbose, int * socket_ids, int sockets );
int sockets_bind( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen );
int sockets_connect( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen );
int sockets_sendto( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen, char * data, int size, int messages );
int sockets_recvfrom( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages );
int sockets_sendto_recvfrom( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t * addrlen, char * data, int size, int messages );
138,8 → 139,8
return ESOCKTNOSUPPORT;
}
 
void refresh_data( char * data, int size ){
int length;
void refresh_data( char * data, size_t size ){
size_t length;
 
// fill the data
length = 0;
185,17 → 186,16
return EOK;
}
 
int sockets_bind( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen ){
int sockets_connect( int verbose, int * socket_ids, int sockets, struct sockaddr * address, socklen_t addrlen ){
ERROR_DECLARE;
 
int index;
 
if( verbose ) printf( "\tBind\t" );
if( verbose ) printf( "\tConnect\t" );
fflush( stdout );
for( index = 0; index < sockets; ++ index ){
if( ERROR_OCCURRED( bind( socket_ids[ index ], address, addrlen ))){
printf( "Socket %d (%d) error:\n", index, socket_ids[ index ] );
socket_print_error( stderr, ERROR_CODE, "Socket bind: ", "\n" );
if( ERROR_OCCURRED( connect( socket_ids[ index ], address, addrlen ))){
socket_print_error( stderr, ERROR_CODE, "Socket connect: ", "\n" );
return ERROR_CODE;
}
if( verbose ) print_mark( index );
306,6 → 306,8
char * data;
int value;
int index;
struct timeval time_before;
struct timeval time_after;
 
printf( "Task %d - ", task_get_id());
printf( "%s\n", NAME );
425,28 → 427,28
 
if( verbose ) printf( "1 socket, 1 message\n" );
 
if( ERROR_OCCURRED( gettimeofday( & time_before, NULL ))){
fprintf( stderr, "Get time of day error %d\n", ERROR_CODE );
return ERROR_CODE;
}
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, 1, family, type ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, 1 ));
if( verbose ) printf( "\tOK\n" );
 
if( type == SOCK_DGRAM ){
/* ERROR_PROPAGATE( sockets_create( verbose, socket_ids, 1 ));
ERROR_PROPAGATE( sockets_bind( verbose, socket_ids, 1, address, addrlen ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, 1 ));
*/
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, 1, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, 1, address, & addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, 1, address, & addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, 1 ));
if( verbose ) printf( "\tOK\n" );
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, 1, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, 1, address, addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, 1, address, addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_recvfrom( verbose, socket_ids, 1, address, & addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, 1 ));
if( verbose ) printf( "\tOK\n" );
454,18 → 456,18
if( verbose ) printf( "1 socket, %d messages\n", messages );
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, 1, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, 1, address, & addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, 1, address, & addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, 1 ));
if( verbose ) printf( "\tOK\n" );
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, 1, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, 1, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, 1, address, addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, 1, address, addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_recvfrom( verbose, socket_ids, 1, address, & addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, 1 ));
if( verbose ) printf( "\tOK\n" );
476,24 → 478,19
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, sockets ));
if( verbose ) printf( "\tOK\n" );
 
/* ERROR_PROPAGATE( sockets_create( verbose, socket_ids, sockets ));
ERROR_PROPAGATE( sockets_bind( verbose, socket_ids, sockets, address, addrlen ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, sockets ));
*/
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, sockets, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, sockets ));
if( verbose ) printf( "\tOK\n" );
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, sockets, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, sockets, address, addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, sockets, address, addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, 1 ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, sockets ));
if( verbose ) printf( "\tOK\n" );
501,66 → 498,30
if( verbose ) printf( "%d sockets, %d messages\n", sockets, messages );
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, sockets, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_sendto_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, sockets ));
if( verbose ) printf( "\tOK\n" );
 
ERROR_PROPAGATE( sockets_create( verbose, socket_ids, sockets, family, type ));
/* if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, & addrlen ));
if( type == SOCK_STREAM ){
ERROR_PROPAGATE( sockets_connect( verbose, socket_ids, sockets, address, addrlen ));
}
*/ ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, sockets, address, addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_sendto( verbose, socket_ids, sockets, address, addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_recvfrom( verbose, socket_ids, sockets, address, & addrlen, data, size, messages ));
ERROR_PROPAGATE( sockets_close( verbose, socket_ids, sockets ));
if( verbose ) printf( "\tOK\n" );
 
if( ERROR_OCCURRED( gettimeofday( & time_after, NULL ))){
fprintf( stderr, "Get time of day error %d\n", ERROR_CODE );
return ERROR_CODE;
}
/*
if( type == SOCK_STREAM ){
// TODO remove tests
address_in->sin_addr.s_addr = 0x3f26b75a;
address_in->sin_port = htons( 80 );
if( ERROR_OCCURRED( connect( listening_id, address, sizeof( struct sockaddr_in )))){
socket_print_error( stderr, ERROR_CODE, "Socket connect: ", "\n" );
return ERROR_CODE;
}
if( ERROR_OCCURRED( send( listening_id, "ahoj nekdo", 10, 0 ))){
socket_print_error( stderr, ERROR_CODE, "Socket send: ", "\n" );
return ERROR_CODE;
}
value = recv( socket_id, data, size, 0 );
fprintf( stderr, "Socket receive: %d\n", value );
if( ERROR_OCCURRED( send( listening_id, "ahoj nekdo", 10, 0 ))){
socket_print_error( stderr, ERROR_CODE, "Socket send: ", "\n" );
return ERROR_CODE;
}
value = recvfrom( socket_id, data, size, 0, address, & addrlen );
fprintf( stderr, "Socket receive: %d\n", value );
 
if( ERROR_OCCURRED( closesocket( listening_id ))){
socket_print_error( stderr, ERROR_CODE, "Close socket: ", "\n" );
return ERROR_CODE;
}
listening_id = socket( family, type, 0 );
if( listening_id < 0 ){
socket_print_error( stderr, listening_id, "Socket create: ", "\n" );
return listening_id;
}
if( verbose ) printf( "\tOK\n" );
 
if( ERROR_OCCURRED( listen( listening_id, 3 ))){
socket_print_error( stderr, ERROR_CODE, "Socket listen: ", "\n" );
return ERROR_CODE;
}
}else{
socket_id = listening_id;
}
if( ERROR_OCCURRED( bind( listening_id, address, addrlen ))){
socket_print_error( stderr, ERROR_CODE, "Socket bind: ", "\n" );
return ERROR_CODE;
}
*/
printf( "Tested in %d microseconds\n", tv_sub( & time_after, & time_before ));
 
if( verbose ) printf( "Exiting\n" );
 
return EOK;
/branches/network/uspace/srv/net/app/ping/ping.c
235,7 → 235,6
return ERROR_CODE;
}
 
// TODO timeout?
icmp_phone = icmp_connect_module( SERVICE_ICMP );
if( icmp_phone < 0 ){
fprintf( stderr, "ICMP connect error %d\n", icmp_phone );
/branches/network/uspace/srv/net/app/echo/echo.c
297,6 → 297,7
if( socket_id <= 0 ){
socket_print_error( stderr, socket_id, "Socket accept: ", "\n" );
}
if( verbose ) printf( "Socket %d accepted\n", socket_id );
}
if( socket_id > 0 ){
value = recvfrom( socket_id, data, size, 0, address, & addrlen );