valgrind client close in a controlled way on SIGINT

With this, both the test server and client are valgrind-clean
tested with a chrome session also active to the server

Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
Andy Green 2013-02-11 14:32:02 +08:00
parent fdd305a986
commit 3886ec7246

View file

@ -24,6 +24,7 @@
#include <unistd.h>
#include <getopt.h>
#include <string.h>
#include <signal.h>
#include "../lib/libwebsockets.h"
@ -33,6 +34,7 @@ static int deny_deflate;
static int deny_mux;
static struct libwebsocket *wsi_mirror;
static int mirror_lifetime = 0;
static int force_exit = 0;
/*
* This demo shows how to connect multiple websockets simultaneously to a
@ -182,6 +184,11 @@ static struct libwebsocket_protocols protocols[] = {
{ NULL, NULL, 0, 0 } /* end */
};
void sighandler(int sig)
{
force_exit = 1;
}
static struct option options[] = {
{ "help", no_argument, NULL, 'h' },
{ "debug", required_argument, NULL, 'd' },
@ -251,6 +258,8 @@ int main(int argc, char **argv)
if (optind >= argc)
goto usage;
signal(SIGINT, sighandler);
address = argv[optind];
/*
@ -295,7 +304,7 @@ int main(int argc, char **argv)
*/
n = 0;
while (n >= 0 && !was_closed) {
while (n >= 0 && !was_closed && !force_exit) {
n = libwebsocket_service(context, 10);
if (n < 0)