From b3402a68a4d29e9b1ae4e012e39a7bcb14fea3cf Mon Sep 17 00:00:00 2001
|
|
From: Yousong Zhou <yszhou4tech@gmail.com>
|
|
Date: Thu, 30 Apr 2015 13:57:36 +0800
|
|
Subject: [PATCH 207/210] xl2tpd: introduce new option -l for using syslog as
|
|
the logging facility.
|
|
|
|
Defaults to old behaviour if no -l option was specified. Also update
|
|
manual doc to reflect this change.
|
|
---
|
|
doc/xl2tpd.8 | 5 +++++
|
|
file.h | 1 +
|
|
misc.c | 2 +-
|
|
xl2tpd.c | 13 ++++++++++++-
|
|
4 files changed, 19 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/doc/xl2tpd.8 b/doc/xl2tpd.8
|
|
index 915b247..7afccac 100644
|
|
--- a/doc/xl2tpd.8
|
|
+++ b/doc/xl2tpd.8
|
|
@@ -20,6 +20,11 @@ This option prevents xl2tpd from detaching from the terminal and
|
|
daemonizing.
|
|
|
|
.TP
|
|
+.B -l
|
|
+This option tells xl2tpd to use syslog for logging even when \fB\-D\fR
|
|
+was specified.
|
|
+
|
|
+.TP
|
|
.B -c <config file>
|
|
Tells xl2tpd to use an alternate config file. Default is
|
|
/etc/xl2tpd/xl2tpd.conf. Fallback configuration file is
|
|
diff --git a/file.h b/file.h
|
|
index 89987ae..92df046 100644
|
|
--- a/file.h
|
|
+++ b/file.h
|
|
@@ -151,6 +151,7 @@ struct global
|
|
char pidfile[STRLEN]; /* File containing the pid number*/
|
|
char controlfile[STRLEN]; /* Control file name (named pipe) */
|
|
int daemon; /* Use daemon mode? */
|
|
+ int syslog; /* Use syslog for logging? */
|
|
int accesscontrol; /* Use access control? */
|
|
int forceuserspace; /* Force userspace? */
|
|
int packet_dump; /* Dump (print) all packets? */
|
|
diff --git a/misc.c b/misc.c
|
|
index 3092401..cccf4ca 100644
|
|
--- a/misc.c
|
|
+++ b/misc.c
|
|
@@ -57,7 +57,7 @@ void l2tp_log (int level, const char *fmt, ...)
|
|
vsnprintf (buf, sizeof (buf), fmt, args);
|
|
va_end (args);
|
|
|
|
- if(gconfig.daemon) {
|
|
+ if(gconfig.syslog) {
|
|
init_log();
|
|
SYSLOG_CALL( syslog (level, "%s", buf) );
|
|
} else {
|
|
diff --git a/xl2tpd.c b/xl2tpd.c
|
|
index 017adfd..1937690 100644
|
|
--- a/xl2tpd.c
|
|
+++ b/xl2tpd.c
|
|
@@ -1594,7 +1594,7 @@ void do_control ()
|
|
void usage(void) {
|
|
printf("\nxl2tpd version: %s\n", SERVER_VERSION);
|
|
printf("Usage: xl2tpd [-c <config file>] [-s <secret file>] [-p <pid file>]\n"
|
|
- " [-C <control file>] [-D]\n"
|
|
+ " [-C <control file>] [-D] [-l]\n"
|
|
" [-v, --version]\n");
|
|
printf("\n");
|
|
exit(1);
|
|
@@ -1605,6 +1605,7 @@ void init_args(int argc, char *argv[])
|
|
int i=0;
|
|
|
|
gconfig.daemon=1;
|
|
+ gconfig.syslog=-1;
|
|
memset(gconfig.altauthfile,0,STRLEN);
|
|
memset(gconfig.altconfigfile,0,STRLEN);
|
|
memset(gconfig.authfile,0,STRLEN);
|
|
@@ -1642,6 +1643,9 @@ void init_args(int argc, char *argv[])
|
|
else if (! strncmp(argv[i],"-D",2)) {
|
|
gconfig.daemon=0;
|
|
}
|
|
+ else if (! strncmp(argv[i],"-l",2)) {
|
|
+ gconfig.syslog=1;
|
|
+ }
|
|
else if (! strncmp(argv[i],"-s",2)) {
|
|
if(++i == argc)
|
|
usage();
|
|
@@ -1667,6 +1671,13 @@ void init_args(int argc, char *argv[])
|
|
usage();
|
|
}
|
|
}
|
|
+
|
|
+ /*
|
|
+ * defaults to syslog if no log facility was explicitly
|
|
+ * specified and we are about to daemonize
|
|
+ */
|
|
+ if (gconfig.syslog < 0)
|
|
+ gconfig.syslog = gconfig.daemon;
|
|
}
|
|
|
|
|
|
--
|
|
1.7.10.4
|
|
|