diff options
-rw-r--r-- | src/pluto/log.c | 67 | ||||
-rw-r--r-- | src/pluto/plutomain.c | 62 |
2 files changed, 72 insertions, 57 deletions
diff --git a/src/pluto/log.c b/src/pluto/log.c index ed815ca68..4cb7f4999 100644 --- a/src/pluto/log.c +++ b/src/pluto/log.c @@ -30,6 +30,7 @@ #include <sys/types.h> #include <freeswan.h> +#include <debug.h> #include "constants.h" #include "defs.h" @@ -80,14 +81,78 @@ struct connection *cur_connection = NULL; /* current connection, for diagn const ip_address *cur_from = NULL; /* source of current current message */ u_int16_t cur_from_port; /* host order */ +/** + * pluto dbg function for libstrongswan + */ +static void pluto_dbg(int level, char *fmt, ...) +{ + int priority = LOG_INFO; + char buffer[8192]; + char *current = buffer, *next; + va_list args; + int debug_level; + + if (cur_debugging & DBG_PRIVATE) + { + debug_level = 4; + } + else if (cur_debugging & DBG_RAW) + { + debug_level = 3; + } + else if (cur_debugging & DBG_PARSING) + { + debug_level = 2; + } + else + { + debug_level = 1; + } + + if (level <= debug_level) + { + va_start(args, fmt); + + if (log_to_stderr) + { + vfprintf(stderr, fmt, args); + fprintf(stderr, "\n"); + } + if (log_to_syslog) + { + /* write in memory buffer first */ + vsnprintf(buffer, sizeof(buffer), fmt, args); + + /* do a syslog with every line */ + while (current) + { + next = strchr(current, '\n'); + if (next) + { + *(next++) = '\0'; + } + syslog(priority, "|%s\n", current); + current = next; + } + } + va_end(args); + } +} + void init_log(const char *program) { + /* enable pluto debugging hook for libstrongswan */ + dbg = pluto_dbg; + if (log_to_stderr) + { setbuf(stderr, NULL); + } if (log_to_syslog) + { openlog(program, LOG_CONS | LOG_NDELAY | LOG_PID, LOG_AUTHPRIV); - + } TAILQ_INIT(&perpeer_list); } diff --git a/src/pluto/plutomain.c b/src/pluto/plutomain.c index fa973fc11..32adf4a26 100644 --- a/src/pluto/plutomain.c +++ b/src/pluto/plutomain.c @@ -18,7 +18,6 @@ #include <stdio.h> #include <stdlib.h> -#include <syslog.h> #include <unistd.h> #include <ctype.h> #include <errno.h> @@ -41,7 +40,6 @@ #include <freeswan.h> #include <library.h> -#include <debug.h> #include <pfkeyv2.h> #include <pfkey.h> @@ -75,8 +73,7 @@ #include "nat_traversal.h" #include "virtual.h" -static void -usage(const char *mess) +static void usage(const char *mess) { if (mess != NULL && *mess != '\0') fprintf(stderr, "%s\n", mess); @@ -128,9 +125,9 @@ usage(const char *mess) "[--debug-oppo]" " [--debug-controlmore]" " [--debug-private]" + " [--debug-natt]" #endif - " [ --debug-natt]" - " \\\n\t" + " \\\n\t" "[--nat_traversal] [--keep_alive <delay_sec>]" " \\\n\t" "[--force_keepalive] [--disable_port_floating]" @@ -154,8 +151,7 @@ static char pluto_lock[sizeof(ctl_addr.sun_path)] = DEFAULT_CTLBASE LOCK_SUFFIX; static bool pluto_lock_created = FALSE; /* create lockfile, or die in the attempt */ -static int -create_lock(void) +static int create_lock(void) { int fd = open(pluto_lock, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC , S_IRUSR | S_IRGRP | S_IROTH); @@ -180,8 +176,7 @@ create_lock(void) return fd; } -static bool -fill_lock(int lockfd, pid_t pid) +static bool fill_lock(int lockfd, pid_t pid) { char buf[30]; /* holds "<pid>\n" */ int len = snprintf(buf, sizeof(buf), "%u\n", (unsigned int) pid); @@ -200,47 +195,6 @@ static void delete_lock(void) } } -static int debug_level = 1; - -/** - * pluto dbg function - */ -static void pluto_dbg(int level, char *fmt, ...) -{ - int priority = LOG_INFO; - char buffer[8192]; - char *current = buffer, *next; - va_list args; - - if (level <= debug_level) - { - va_start(args, fmt); - - if (log_to_stderr) - { - vfprintf(stderr, fmt, args); - fprintf(stderr, "\n"); - } - if (log_to_syslog) - { - /* write in memory buffer first */ - vsnprintf(buffer, sizeof(buffer), fmt, args); - - /* do a syslog with every line */ - while (current) - { - next = strchr(current, '\n'); - if (next) - { - *(next++) = '\0'; - } - syslog(priority, "%s\n", current); - current = next; - } - } - va_end(args); - } -} /* by default pluto sends certificate requests to its peers */ bool no_cr_send = FALSE; @@ -268,8 +222,7 @@ bool pkcs11_proxy = FALSE; */ static const char *pkcs11_init_args = NULL; -int -main(int argc, char **argv) +int main(int argc, char **argv) { bool fork_desired = TRUE; bool log_to_stderr_desired = FALSE; @@ -645,9 +598,6 @@ main(int argc, char **argv) abort(); } - /* enable pluto debugging hook */ - dbg = pluto_dbg; - init_constants(); init_log("pluto"); |