From: Jens Axboe Date: Tue, 25 Mar 2014 22:06:17 +0000 (-0700) Subject: server: unlink sock file if interrupted early X-Git-Tag: fio-2.1.7~1^2 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=43cdea1d0d62fe57c0b1017c55b4700cd95f63b0;hp=--cc server: unlink sock file if interrupted early Signed-off-by: Jens Axboe --- 43cdea1d0d62fe57c0b1017c55b4700cd95f63b0 diff --git a/server.c b/server.c index 0954d4c3..d72835b7 100644 --- a/server.c +++ b/server.c @@ -1339,7 +1339,6 @@ static int fio_init_server_sock(void) memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; strcpy(addr.sun_path, bind_sock); - unlink(bind_sock); len = sizeof(addr.sun_family) + strlen(bind_sock) + 1; @@ -1567,6 +1566,22 @@ out: return ret; } +static void sig_int(int sig) +{ + if (bind_sock) + unlink(bind_sock); +} + +static void set_sig_handlers(void) +{ + struct sigaction act; + + memset(&act, 0, sizeof(act)); + act.sa_handler = sig_int; + act.sa_flags = SA_RESTART; + sigaction(SIGINT, &act, NULL); +} + static int fio_server(void) { int sk, ret; @@ -1580,6 +1595,8 @@ static int fio_server(void) if (sk < 0) return -1; + set_sig_handlers(); + ret = accept_loop(sk); close(sk);