ssl_server2 now exits on signal during a read too
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index cb69b33..0b8852a 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -572,7 +572,7 @@
}
#endif /* POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED */
-static int listen_fd;
+static int listen_fd, client_fd = -1;
/* Interruption handler to ensure clean exit (for valgrind testing) */
#if !defined(_WIN32)
@@ -582,13 +582,13 @@
((void) sig);
received_sigterm = 1;
net_close( listen_fd ); /* causes net_accept() to abort */
+ net_close( client_fd ); /* causes net_read() to abort */
}
#endif
int main( int argc, char *argv[] )
{
int ret = 0, len, written, frags, exchanges;
- int client_fd = -1;
int version_suites[4][2];
unsigned char buf[IO_BUF_LEN];
#if defined(POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED)
@@ -1386,6 +1386,15 @@
printf( " ok\n" );
reset:
+#if !defined(_WIN32)
+ if( received_sigterm )
+ {
+ printf( " interrupted by SIGTERM\n" );
+ ret = 0;
+ goto exit;
+ }
+#endif
+
#ifdef POLARSSL_ERROR_C
if( ret != 0 )
{