diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index b99aeb6a0..20afbba80 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1620,8 +1620,13 @@ reset: #if !defined(_WIN32) if( received_sigterm ) { - polarssl_printf( " interrupted by SIGTERM\n" ); - ret = 0; + polarssl_printf( " interrupted by SIGTERM (not in net_accept())\n" ); + if( ret == POLARSSL_ERR_NET_RECV_FAILED || + ret == POLARSSL_ERR_NET_SEND_FAILED ) + { + ret = 0; + } + goto exit; } #endif @@ -1653,8 +1658,10 @@ reset: #if !defined(_WIN32) if( received_sigterm ) { - polarssl_printf( " interrupted by signal\n" ); - ret = 0; + polarssl_printf( " interrupted by SIGTERM (in net_accept())\n" ); + if( ret == POLARSSL_ERR_NET_ACCEPT_FAILED ) + ret = 0; + goto exit; } #endif