summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2015-09-12 19:18:50 +0200
committerFrancis Dupont <fdupont@isc.org>2015-09-12 19:18:50 +0200
commit646acb59b4ca20967aff71a3b15f013b391e4376 (patch)
tree4d42a5d44de36e2c30684dca0a1f135ce0511653
parent7da1ac2bc68d6e65ee240d3f98a9ed67483db804 (diff)
downloadisc-dhcp-646acb59b4ca20967aff71a3b15f013b391e4376.tar.gz
Merged #38692 (use program base name in (sys)log)
-rw-r--r--RELNOTES7
-rw-r--r--client/dhclient.c16
-rw-r--r--dhcpctl/omshell.c17
-rw-r--r--includes/omapip/omapip_p.h3
-rw-r--r--includes/site.h6
-rw-r--r--relay/dhcrelay.c29
-rw-r--r--server/dhcpd.c22
7 files changed, 82 insertions, 18 deletions
diff --git a/RELNOTES b/RELNOTES
index 9a6ff7cd..698c8da4 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -57,6 +57,13 @@ by Eric Young (eay@cryptsoft.com).
- Corrected a static analyzer warning in common/execute.c
[ISC-Bugs #40374]
+- ISC DHCP now follows the common convention to use the base name a
+ program is invoked with (aka argv[0], vs. a builtin name) for
+ logs. This should help differentiate syslog entires for DHCPv4 and
+ DHCPv6 servers. You can define OLD_LOG_NAME in includes/site.h to
+ keep the previous behavior.
+ [ISC-BUGS #38692]
+
Changes since 4.3.3b1
- None
diff --git a/client/dhclient.c b/client/dhclient.c
index be2af6ad..3a0c0611 100644
--- a/client/dhclient.c
+++ b/client/dhclient.c
@@ -37,6 +37,7 @@
#include <sys/time.h>
#include <sys/wait.h>
#include <limits.h>
+#include <isc/file.h>
#include <dns/result.h>
TIME default_lease_time = 43200; /* 12 hours... */
@@ -89,6 +90,8 @@ int wanted_ia_ta = 0;
int wanted_ia_pd = 0;
char *mockup_relay = NULL;
+char *progname = NULL;
+
void run_stateless(int exit_mode);
static void usage(void);
@@ -129,6 +132,12 @@ main(int argc, char **argv) {
#endif /* DHCPv6 */
char *s;
+#ifdef OLD_LOG_NAME
+ progname = "dhclient";
+#else
+ progname = argv[0];
+#endif
+
/* Initialize client globals. */
memset(&default_duid, 0, sizeof(default_duid));
@@ -145,7 +154,7 @@ main(int argc, char **argv) {
else if (fd != -1)
close(fd);
- openlog("dhclient", DHCP_LOG_OPTIONS, LOG_DAEMON);
+ openlog(isc_file_basename(progname), DHCP_LOG_OPTIONS, LOG_DAEMON);
#if !(defined(DEBUG) || defined(__CYGWIN32__))
setlogmask(LOG_UPTO(LOG_INFO));
@@ -750,7 +759,7 @@ static void usage()
log_info(url);
- log_fatal("Usage: dhclient "
+ log_fatal("Usage: %s "
#ifdef DHCPv6
"[-4|-6] [-SNTPI1dvrxi] [-nw] [-p <port>] [-D LL|LLT] \n"
#else /* DHCPv6 */
@@ -759,7 +768,8 @@ static void usage()
" [-s server-addr] [-cf config-file]\n"
" [-df duid-file] [-lf lease-file]\n"
" [-pf pid-file] [--no-pid] [-e VAR=val]\n"
- " [-sf script-file] [interface]");
+ " [-sf script-file] [interface]",
+ isc_file_basename(progname));
}
void run_stateless(int exit_mode)
diff --git a/dhcpctl/omshell.c b/dhcpctl/omshell.c
index 44fd2726..adf4b9ae 100644
--- a/dhcpctl/omshell.c
+++ b/dhcpctl/omshell.c
@@ -3,7 +3,7 @@
Examine and modify omapi objects. */
/*
- * Copyright (c) 2009-2011,2013,2014 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2009-2011,2013-2015 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 2004-2007 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 2001-2003 by Internet Software Consortium
*
@@ -39,6 +39,7 @@
#include <syslog.h>
#include "dhcpctl.h"
#include "dhcpd.h"
+#include <isc/file.h>
/* Fixups */
isc_result_t find_class (struct class **c, const char *n, const char *f, int l)
@@ -63,7 +64,7 @@ int check_collection (struct packet *p, struct lease *l, struct collection *c)
}
void classify (struct packet *packet, struct class *class) { }
-static void usage (char *s) {
+static void usage (const char *s) {
fprintf (stderr, "Usage: %s\n", s);
exit (1);
}
@@ -94,13 +95,21 @@ main(int argc, char **argv) {
char s1[1024];
int connected = 0;
char hex_buf[1025];
+ char *progname;
+
+#ifdef OLD_LOG_NAME
+ progname = "omshell";
+#else
+ progname = argv[0];
+#endif
for (i = 1; i < argc; i++) {
- usage(argv[0]);
+ usage(isc_file_basename(progname));
}
/* Initially, log errors to stderr as well as to syslogd. */
- openlog ("omshell", DHCP_LOG_OPTIONS, DHCPD_LOG_FACILITY);
+ openlog (isc_file_basename(progname),
+ DHCP_LOG_OPTIONS, DHCPD_LOG_FACILITY);
status = dhcpctl_initialize ();
if (status != ISC_R_SUCCESS) {
fprintf (stderr, "dhcpctl_initialize: %s\n",
diff --git a/includes/omapip/omapip_p.h b/includes/omapip/omapip_p.h
index 788c91e6..3370a93e 100644
--- a/includes/omapip/omapip_p.h
+++ b/includes/omapip/omapip_p.h
@@ -3,7 +3,8 @@
Private master include file for the OMAPI library. */
/*
- * Copyright (c) 2009-2010,2014 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2014-2015 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2009-2010 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 2004,2007 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1996-2003 by Internet Software Consortium
*
diff --git a/includes/site.h b/includes/site.h
index f11fefbf..ce7876ba 100644
--- a/includes/site.h
+++ b/includes/site.h
@@ -190,6 +190,12 @@
/* #define USE_RAW_SOCKETS */
+/* Define this to keep the old program name (e.g., "dhcpd" for
+ the DHCP server) in place of the (base) name the program was
+ invoked with. */
+
+/* #define OLD_LOG_NAME */
+
/* Define this to change the logging facility used by dhcpd. */
/* #define DHCPD_LOG_FACILITY LOG_DAEMON */
diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c
index 15b49976..67933de1 100644
--- a/relay/dhcrelay.c
+++ b/relay/dhcrelay.c
@@ -30,6 +30,7 @@
#include <syslog.h>
#include <signal.h>
#include <sys/time.h>
+#include <isc/file.h>
TIME default_lease_time = 43200; /* 12 hours... */
TIME max_lease_time = 86400; /* 24 hours... */
@@ -140,15 +141,17 @@ static const char message[] =
static const char url[] =
"For info, please visit https://www.isc.org/software/dhcp/";
+char *progname;
+
#ifdef DHCPv6
#define DHCRELAY_USAGE \
-"Usage: dhcrelay [-4] [-d] [-q] [-a] [-D]\n"\
+"Usage: %s [-4] [-d] [-q] [-a] [-D]\n"\
" [-A <length>] [-c <hops>] [-p <port>]\n" \
" [-pf <pid-file>] [--no-pid]\n"\
" [-m append|replace|forward|discard]\n" \
" [-i interface0 [ ... -i interfaceN]\n" \
" server0 [ ... serverN]\n\n" \
-" dhcrelay -6 [-d] [-q] [-I] [-c <hops>] [-p <port>]\n" \
+" %s -6 [-d] [-q] [-I] [-c <hops>] [-p <port>]\n" \
" [-pf <pid-file>] [--no-pid]\n" \
" [-s <subscriber-id>]\n" \
" -l lower0 [ ... -l lowerN]\n" \
@@ -157,7 +160,7 @@ static const char url[] =
" upper (server link): [address%%]interface"
#else
#define DHCRELAY_USAGE \
-"Usage: dhcrelay [-d] [-q] [-a] [-D] [-A <length>] [-c <hops>] [-p <port>]\n" \
+"Usage: %s [-d] [-q] [-a] [-D] [-A <length>] [-c <hops>] [-p <port>]\n" \
" [-pf <pid-file>] [--no-pid]\n" \
" [-m append|replace|forward|discard]\n" \
" [-i interface0 [ ... -i interfaceN]\n" \
@@ -165,7 +168,11 @@ static const char url[] =
#endif
static void usage() {
- log_fatal(DHCRELAY_USAGE);
+ log_fatal(DHCRELAY_USAGE,
+#ifdef DHCPv6
+ isc_file_basename(progname),
+#endif
+ isc_file_basename(progname));
}
int
@@ -184,6 +191,12 @@ main(int argc, char **argv) {
int local_family_set = 0;
#endif
+#ifdef OLD_LOG_NAME
+ progname = "dhcrelay";
+#else
+ progname = argv[0];
+#endif
+
/* Make sure that file descriptors 0(stdin), 1,(stdout), and
2(stderr) are open. To do this, we assume that when we
open a file the lowest available file descriptor is used. */
@@ -197,7 +210,7 @@ main(int argc, char **argv) {
else if (fd != -1)
close(fd);
- openlog("dhcrelay", DHCP_LOG_OPTIONS, LOG_DAEMON);
+ openlog(isc_file_basename(progname), DHCP_LOG_OPTIONS, LOG_DAEMON);
#if !defined(DEBUG)
setlogmask(LOG_UPTO(LOG_INFO));
@@ -388,7 +401,11 @@ main(int argc, char **argv) {
exit(0);
} else if (!strcmp(argv[i], "--help") ||
!strcmp(argv[i], "-h")) {
- log_info(DHCRELAY_USAGE);
+ log_info(DHCRELAY_USAGE,
+#ifdef DHCPv6
+ isc_file_basename(progname),
+#endif
+ isc_file_basename(progname));
exit(0);
} else if (argv[i][0] == '-') {
usage();
diff --git a/server/dhcpd.c b/server/dhcpd.c
index db95f172..a44e2fa8 100644
--- a/server/dhcpd.c
+++ b/server/dhcpd.c
@@ -41,6 +41,7 @@ static const char url [] =
#include <limits.h>
#include <sys/types.h>
#include <sys/time.h>
+#include <isc/file.h>
#if defined (PARANOIA)
# include <sys/types.h>
@@ -94,6 +95,10 @@ int omapi_port;
trace_type_t *trace_srandom;
#endif
+#ifndef UNIT_TEST
+char *progname;
+#endif
+
static isc_result_t verify_addr (omapi_object_t *l, omapi_addr_t *addr) {
return ISC_R_SUCCESS;
}
@@ -191,6 +196,12 @@ main(int argc, char **argv) {
char *set_chroot = 0;
#endif /* PARANOIA */
+#ifdef OLD_LOG_NAME
+ progname = "dhcpd";
+#else
+ progname = argv[0];
+#endif
+
/* Make sure that file descriptors 0 (stdin), 1, (stdout), and
2 (stderr) are open. To do this, we assume that when we
open a file the lowest available file descriptor is used. */
@@ -227,7 +238,8 @@ main(int argc, char **argv) {
dhcp_common_objects_setup ();
/* Initially, log errors to stderr as well as to syslogd. */
- openlog ("dhcpd", DHCP_LOG_OPTIONS, DHCPD_LOG_FACILITY);
+ openlog (isc_file_basename(progname),
+ DHCP_LOG_OPTIONS, DHCPD_LOG_FACILITY);
for (i = 1; i < argc; i++) {
if (!strcmp (argv [i], "-p")) {
@@ -1049,7 +1061,8 @@ void postconf_initialization (int quiet)
&global_scope, oc, MDL)) {
if (db.len == 1) {
closelog ();
- openlog("dhcpd", DHCP_LOG_OPTIONS, db.data[0]);
+ openlog(isc_file_basename(progname),
+ DHCP_LOG_OPTIONS, db.data[0]);
/* Log the startup banner into the new
log file. */
/* Don't log to stderr twice. */
@@ -1161,7 +1174,7 @@ usage(void) {
log_info(copyright);
log_info(arr);
- log_fatal("Usage: dhcpd [-p <UDP port #>] [-f] [-d] [-q] [-t|-T]\n"
+ log_fatal("Usage: %s [-p <UDP port #>] [-f] [-d] [-q] [-t|-T]\n"
#ifdef DHCPv6
" [-4|-6] [-cf config-file] [-lf lease-file]\n"
#else /* !DHCPv6 */
@@ -1176,7 +1189,8 @@ usage(void) {
" [-play trace-input-file]\n"
#endif /* TRACING */
" [-pf pid-file] [--no-pid] [-s server]\n"
- " [if0 [...ifN]]");
+ " [if0 [...ifN]]",
+ isc_file_basename(progname));
}
#endif