Enhance output of udp_proxy (with time)
diff --git a/programs/test/udp_proxy.c b/programs/test/udp_proxy.c
index 23eb2ab..48549cf 100644
--- a/programs/test/udp_proxy.c
+++ b/programs/test/udp_proxy.c
@@ -66,6 +66,11 @@
#include <unistd.h>
#endif /* ( _WIN32 || _WIN32_WCE ) && !EFIX64 && !EFI32 */
+/* For gettimeofday() */
+#if !defined(_WIN32)
+#include <sys/time.h>
+#endif
+
#define MAX_MSG_SIZE 4096 /* Reasonable max size for our tests */
#define DFL_SERVER_ADDR "localhost"
@@ -250,6 +255,27 @@
}
}
+/* Return elapsed time in milliseconds since the first call */
+static unsigned long ellapsed_time( void )
+{
+#if defined(_WIN32)
+ return( 0 );
+#else
+ static struct timeval ref = { 0, 0 };
+ struct timeval now;
+
+ if( ref.tv_sec == 0 && ref.tv_usec == 0 )
+ {
+ gettimeofday( &ref, NULL );
+ return( 0 );
+ }
+
+ gettimeofday( &now, NULL );
+ return( 1000 * ( now.tv_sec - ref.tv_sec )
+ + ( now.tv_usec - ref.tv_usec ) / 1000 );
+#endif
+}
+
typedef struct
{
void *dst;
@@ -263,9 +289,11 @@
void print_packet( const packet *p, const char *why )
{
if( why == NULL )
- printf( " > %s: %s (%u bytes)\n", p->way, p->type, p->len );
+ printf( " %05lu %s %s (%u bytes)\n",
+ ellapsed_time(), p->way, p->type, p->len );
else
- printf( " < %s: %s (%u bytes): %s\n", p->way, p->type, p->len, why );
+ printf( " %s %s (%u bytes): %s\n",
+ p->way, p->type, p->len, why );
fflush( stdout );
}
@@ -450,13 +478,15 @@
if( FD_ISSET( client_fd, &read_fds ) )
{
- if( ( ret = handle_message( "c2s", server_fd, client_fd ) ) != 0 )
+ if( ( ret = handle_message( "S <- C",
+ server_fd, client_fd ) ) != 0 )
goto exit;
}
if( FD_ISSET( server_fd, &read_fds ) )
{
- if( ( ret = handle_message( "s2c", client_fd, server_fd ) ) != 0 )
+ if( ( ret = handle_message( "S -> C",
+ client_fd, server_fd ) ) != 0 )
goto exit;
}
}