1 /* -------------------------------------------------------
2 * test-portmon.c: unit testing for libtcp-portmon library
3 * Philip Kovacs (kovacsp3@comcast.net) 2005
6 * ------------------------------------------------------*/
10 #include "libtcp-portmon.h"
12 volatile int g_signal;
14 tcp_port_monitor_collection_t *p_collection = NULL;
16 void set_terminate(int);
20 tcp_port_monitor_t * p_monitor;
26 (void) signal(SIGINT,set_terminate);
28 if ( (p_collection = create_tcp_port_monitor_collection( NULL )) == NULL) {
29 fprintf(stderr,"error: create_tcp_port_monitor_collection()\n");
33 if ( (p_monitor = create_tcp_port_monitor( 1, 65535, NULL )) == NULL) {
34 fprintf(stderr,"error: create_tcp_port_monitor()\n");
38 if ( (insert_tcp_port_monitor_into_collection( p_collection, p_monitor )) != 0 ) {
39 fprintf(stderr,"error: insert_tcp_port_monitor_into_collection()\n");
45 update_tcp_port_monitor_collection( p_collection );
47 if ( (p_monitor = find_tcp_port_monitor( p_collection, 1, 65535 )) == NULL ) {
48 fprintf(stderr,"error: find_tcp_port_monitor()\n");
52 peek_tcp_port_monitor( p_monitor, COUNT, 0, buf, sizeof(buf)-1 );
53 fprintf( stdout, "\n(%d,%d) COUNT=%s\n",
54 p_monitor->port_range_begin, p_monitor->port_range_end, buf );
55 for ( i=0; i<p_monitor->hash.size; i++ )
57 fprintf( stdout, "(%d,%d) -- connection %d -- ",
58 p_monitor->port_range_begin, p_monitor->port_range_end, i );
59 peek_tcp_port_monitor( p_monitor, REMOTEIP, i, buf, sizeof(buf)-1 );
60 fprintf( stdout, "%s ", buf );
61 peek_tcp_port_monitor( p_monitor, REMOTEHOST, i, buf, sizeof(buf)-1 );
62 fprintf( stdout, "(%s) ", buf );
63 peek_tcp_port_monitor( p_monitor, REMOTEPORT, i, buf, sizeof(buf)-1 );
64 fprintf( stdout, ": %s ", buf );
65 peek_tcp_port_monitor( p_monitor, LOCALIP, i, buf, sizeof(buf)-1 );
66 fprintf( stdout, "on %s ", buf );
67 peek_tcp_port_monitor( p_monitor, LOCALHOST, i, buf, sizeof(buf)-1 );
68 fprintf( stdout, "(%s) ", buf );
69 peek_tcp_port_monitor( p_monitor, LOCALPORT, i, buf, sizeof(buf)-1 );
70 fprintf( stdout, ": %s\n", buf );
72 peek_tcp_port_monitor( p_monitor, LOCALSERVICE, i, buf, sizeof(buf)-1 );
73 fprintf( stdout, "(%s)\n", buf );
77 printf("\n<< PRESS CNTL-C TO EXIT >>\n");
81 if ( g_signal && p_collection ) {
82 destroy_tcp_port_monitor_collection(p_collection);
91 void set_terminate(int sig)