- From 07e522cd7e223517389582a8eb647a4a6a8a5cf8 Mon Sep 17 00:00:00 2001
- From: Yousong Zhou <yszhou4tech@gmail.com>
- Date: Thu, 30 Apr 2015 13:53:11 +0800
- Subject: [PATCH 203/210] xl2tpd-control: cleaup result file atexit().
-
- ---
- xl2tpd-control.c | 21 ++++++++++++++-------
- 1 file changed, 14 insertions(+), 7 deletions(-)
-
- diff --git a/xl2tpd-control.c b/xl2tpd-control.c
- index 973ee87..abc0324 100644
- --- a/xl2tpd-control.c
- +++ b/xl2tpd-control.c
- @@ -12,6 +12,7 @@
-
- #define _GNU_SOURCE
-
- +#include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdarg.h>
- @@ -35,6 +36,9 @@
- #define TUNNEL_REQUIRED 1
- #define TUNNEL_NOT_REQUIRED 0
-
- +char result_filename[128];
- +int result_fd = -1;
- +
- int log_level = ERROR_LEVEL;
-
- void print_error (int level, const char *fmt, ...);
- @@ -117,6 +121,14 @@ void help()
- );
- }
-
- +void cleanup(void)
- +{
- + /* cleaning up */
- + if (result_fd >= 0)
- + close (result_fd);
- + unlink (result_filename);
- +}
- +
- int main (int argc, char *argv[])
- {
- char* control_filename = NULL;
- @@ -195,11 +207,11 @@ int main (int argc, char *argv[])
- FILE* mesf = fmemopen (buf, CONTROL_PIPE_MESSAGE_SIZE, "w");
-
- /* create result pipe for reading */
- - char result_filename[128];
- snprintf (result_filename, 128, RESULT_FILENAME_FORMAT, getpid());
- unlink (result_filename);
- mkfifo (result_filename, 0600);
- - int result_fd = open (result_filename, O_RDONLY | O_NONBLOCK, 0600);
- + atexit(cleanup);
- + result_fd = open (result_filename, O_RDONLY | O_NONBLOCK, 0600);
- if (result_fd < 0)
- {
- print_error (ERROR_LEVEL,
- @@ -293,11 +305,6 @@ int main (int argc, char *argv[])
- );
- printf ("%s", rbuf);
-
- - /* cleaning up */
- -
- - close (result_fd);
- - unlink (result_filename);
- -
- return command_result_code;
- }
-
- --
- 1.7.10.4
-
|