diff --git a/ntester.cpp b/ntester.cpp index 29e635c..31c0aba 100644 --- a/ntester.cpp +++ b/ntester.cpp @@ -13,27 +13,35 @@ int main( int argc, char *argv[] ) Network::Connection *n; - if ( argc > 1 ) { - server = false; - /* client */ - - key = argv[ 1 ]; - ip = argv[ 2 ]; - port = atoi( argv[ 3 ] ); - - n = new Network::Connection( key, ip, port ); - } else { - n = new Network::Connection(); + try { + if ( argc > 1 ) { + server = false; + /* client */ + + key = argv[ 1 ]; + ip = argv[ 2 ]; + port = atoi( argv[ 3 ] ); + + n = new Network::Connection( key, ip, port ); + } else { + n = new Network::Connection(); + } + } catch ( CryptoException e ) { + fprintf( stderr, "Fatal error: %s\n", e.text.c_str() ); + exit( 1 ); } fprintf( stderr, "Port bound is %d, key is %s\n", n->port(), n->get_key().c_str() ); if ( server ) { while ( true ) { - KeyStroke s = n->recv(); - - printf( "%c", s.letter ); - fflush( NULL ); + try { + KeyStroke s = n->recv(); + printf( "%c", s.letter ); + fflush( NULL ); + } catch ( CryptoException e ) { + fprintf( stderr, "Error: %s\n", e.text.c_str() ); + } } } else { struct termios the_termios;