Catch and prettyprint exceptions even in setup phase
This commit is contained in:
@@ -60,13 +60,28 @@ int main( int argc, char *argv[] )
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
STMClient client( ip, port, key );
|
||||
try {
|
||||
STMClient client( ip, port, key );
|
||||
client.init();
|
||||
|
||||
client.init();
|
||||
try {
|
||||
client.main();
|
||||
} catch ( Network::NetworkException e ) {
|
||||
fprintf( stderr, "Network exception: %s: %s\r\n",
|
||||
e.function.c_str(), strerror( e.the_errno ) );
|
||||
} catch ( Crypto::CryptoException e ) {
|
||||
fprintf( stderr, "Crypto exception: %s\r\n",
|
||||
e.text.c_str() );
|
||||
}
|
||||
|
||||
client.main();
|
||||
|
||||
client.shutdown();
|
||||
client.shutdown();
|
||||
} catch ( Network::NetworkException e ) {
|
||||
fprintf( stderr, "Network exception: %s: %s\r\n",
|
||||
e.function.c_str(), strerror( e.the_errno ) );
|
||||
} catch ( Crypto::CryptoException e ) {
|
||||
fprintf( stderr, "Crypto exception: %s\r\n",
|
||||
e.text.c_str() );
|
||||
}
|
||||
|
||||
printf( "\n[mosh is exiting.]\n" );
|
||||
|
||||
|
||||
@@ -127,7 +127,16 @@ int main( int argc, char *argv[] )
|
||||
exit( 0 );
|
||||
} else {
|
||||
/* parent */
|
||||
serve( master, desired_ip );
|
||||
try {
|
||||
serve( master, desired_ip );
|
||||
} catch ( Network::NetworkException e ) {
|
||||
fprintf( stderr, "Network exception: %s: %s\n",
|
||||
e.function.c_str(), strerror( e.the_errno ) );
|
||||
} catch ( Crypto::CryptoException e ) {
|
||||
fprintf( stderr, "Crypto exception: %s\n",
|
||||
e.text.c_str() );
|
||||
}
|
||||
|
||||
if ( close( master ) < 0 ) {
|
||||
perror( "close" );
|
||||
exit( 1 );
|
||||
|
||||
@@ -153,6 +153,10 @@ void STMClient::main_init( void )
|
||||
|
||||
void STMClient::output_new_frame( void )
|
||||
{
|
||||
if ( !network ) { /* clean shutdown even when not initialized */
|
||||
return;
|
||||
}
|
||||
|
||||
/* fetch target state */
|
||||
Terminal::Framebuffer new_state( network->get_latest_remote_state().state.get_fb() );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user