From d85b048d480df23e9316958b8c8f1159eea7b3ee Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Tue, 21 Jan 2020 14:29:17 +0100 Subject: [PATCH 1/2] bfdd: remove logging shim This does exactly nothing, other than hiding format warnings... Signed-off-by: David Lamparter --- bfdd/bfd.h | 31 +++++------- bfdd/bfdd.c | 7 +-- bfdd/log.c | 125 ------------------------------------------------- bfdd/subdir.am | 1 - 4 files changed, 14 insertions(+), 150 deletions(-) delete mode 100644 bfdd/log.c diff --git a/bfdd/bfd.h b/bfdd/bfd.h index 97702aab54..2ae74d7880 100644 --- a/bfdd/bfd.h +++ b/bfdd/bfd.h @@ -427,27 +427,20 @@ void pl_free(struct peer_label *pl); /* - * log.c - * - * Contains code that does the logging procedures. Might implement multiple - * backends (e.g. zebra log, syslog or other logging lib). + * logging - alias to zebra log */ -enum blog_level { - /* level vs syslog equivalent */ - BLOG_DEBUG = 0, /* LOG_DEBUG */ - BLOG_INFO = 1, /* LOG_INFO */ - BLOG_WARNING = 2, /* LOG_WARNING */ - BLOG_ERROR = 3, /* LOG_ERR */ - BLOG_FATAL = 4, /* LOG_CRIT */ -}; -void log_init(int foreground, enum blog_level level, - struct frr_daemon_info *fdi); -void log_info(const char *fmt, ...); -void log_debug(const char *fmt, ...); -void log_warning(const char *fmt, ...); -void log_error(const char *fmt, ...); -void log_fatal(const char *fmt, ...); +#define log_debug zlog_debug +#define log_info zlog_info +#define log_warning zlog_warn +#define log_error zlog_err + +#define log_fatal(msg, ...) \ + do { \ + zlog_err(msg, ## __VA_ARGS__); \ + assert(!msg); \ + abort(); \ + } while (0) /* diff --git a/bfdd/bfdd.c b/bfdd/bfdd.c index 341edbe5cd..69f268ab01 100644 --- a/bfdd/bfdd.c +++ b/bfdd/bfdd.c @@ -216,15 +216,12 @@ int main(int argc, char *argv[]) parse_config(conf); #endif - /* Initialize logging API. */ - log_init(1, BLOG_DEBUG, &bfdd_di); + /* Initialize FRR infrastructure. */ + master = frr_init(); /* Initialize control socket. */ control_init(ctl_path); - /* Initialize FRR infrastructure. */ - master = frr_init(); - /* Initialize BFD data structures. */ bfd_initialize(); diff --git a/bfdd/log.c b/bfdd/log.c deleted file mode 100644 index d81d7cd9b3..0000000000 --- a/bfdd/log.c +++ /dev/null @@ -1,125 +0,0 @@ -/********************************************************************* - * Copyright 2017-2018 Network Device Education Foundation, Inc. ("NetDEF") - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; see the file COPYING; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * log.c: implements an abstraction between loggers interface. Implement all - * log backends in this file. - * - * Authors - * ------- - * Rafael Zalamena - */ - -#include - -#include "bfd.h" - -#include "lib/log_int.h" - -void log_msg(int level, const char *fmt, va_list vl); - - -static int log_fg; -static int log_level = BLOG_DEBUG; - -void log_init(int foreground, enum blog_level level, - struct frr_daemon_info *fdi) -{ - log_fg = foreground; - log_level = level; - - openzlog(fdi->progname, fdi->logname, 0, - LOG_CONS | LOG_NDELAY | LOG_PID, LOG_DAEMON); -} - -void log_msg(int level, const char *fmt, va_list vl) -{ - if (level < log_level) - return; - - switch (level) { - case BLOG_DEBUG: - vzlog(LOG_DEBUG, fmt, vl); - break; - - case BLOG_INFO: - vzlog(LOG_INFO, fmt, vl); - break; - - case BLOG_WARNING: - vzlog(LOG_WARNING, fmt, vl); - break; - - case BLOG_ERROR: - vzlog(LOG_ERR, fmt, vl); - break; - - case BLOG_FATAL: - vzlog(LOG_EMERG, fmt, vl); - break; - - default: - vfprintf(stderr, fmt, vl); - break; - } -} - -void log_info(const char *fmt, ...) -{ - va_list vl; - - va_start(vl, fmt); - log_msg(BLOG_INFO, fmt, vl); - va_end(vl); -} - -void log_debug(const char *fmt, ...) -{ - va_list vl; - - va_start(vl, fmt); - log_msg(BLOG_DEBUG, fmt, vl); - va_end(vl); -} - -void log_error(const char *fmt, ...) -{ - va_list vl; - - va_start(vl, fmt); - log_msg(BLOG_ERROR, fmt, vl); - va_end(vl); -} - -void log_warning(const char *fmt, ...) -{ - va_list vl; - - va_start(vl, fmt); - log_msg(BLOG_WARNING, fmt, vl); - va_end(vl); -} - -void log_fatal(const char *fmt, ...) -{ - va_list vl; - - va_start(vl, fmt); - log_msg(BLOG_FATAL, fmt, vl); - va_end(vl); - - exit(1); -} diff --git a/bfdd/subdir.am b/bfdd/subdir.am index 9aa522f3f0..254329e221 100644 --- a/bfdd/subdir.am +++ b/bfdd/subdir.am @@ -22,7 +22,6 @@ bfdd_libbfd_a_SOURCES = \ bfdd/config.c \ bfdd/control.c \ bfdd/event.c \ - bfdd/log.c \ bfdd/ptm_adapter.c \ # end From b7b3d466eb9dc631753d6ddc0b32d5a7ad1ded8f Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Tue, 21 Jan 2020 15:02:41 +0100 Subject: [PATCH 2/2] bfdd: fix format strings ... now that we get warnings about them ... Signed-off-by: David Lamparter --- bfdd/bfd_packet.c | 4 ++-- bfdd/config.c | 5 +++-- bfdd/control.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/bfdd/bfd_packet.c b/bfdd/bfd_packet.c index 6da5e2cdf9..1ec761e3b8 100644 --- a/bfdd/bfd_packet.c +++ b/bfdd/bfd_packet.c @@ -116,7 +116,7 @@ int _ptm_bfd_send(struct bfd_session *bs, uint16_t *port, const void *data, return -1; } if (rv < (ssize_t)datalen) - log_debug("packet-send: send partial", strerror(errno)); + log_debug("packet-send: send partial: %s", strerror(errno)); return 0; } @@ -799,7 +799,7 @@ int bp_udp_send(int sd, uint8_t ttl, uint8_t *data, size_t datalen, log_debug("udp-send: loopback failure: (%d) %s", errno, strerror(errno)); return -1; } else if (wlen < (ssize_t)datalen) { - log_debug("udp-send: partial send: %ld expected %ld", wlen, + log_debug("udp-send: partial send: %zd expected %zu", wlen, datalen); return -1; } diff --git a/bfdd/config.c b/bfdd/config.c index 0c0bac0aaa..dd4a192694 100644 --- a/bfdd/config.c +++ b/bfdd/config.c @@ -215,7 +215,8 @@ static int parse_peer_config(struct json_object *jo, struct bfd_peer_cfg *bpc) if (strlcpy(bpc->bpc_localif, sval, sizeof(bpc->bpc_localif)) > sizeof(bpc->bpc_localif)) { - log_debug("\tlocal-interface: %s (truncated)"); + log_debug("\tlocal-interface: %s (truncated)", + sval); error++; } else { log_debug("\tlocal-interface: %s", sval); @@ -235,7 +236,7 @@ static int parse_peer_config(struct json_object *jo, struct bfd_peer_cfg *bpc) bpc->bpc_detectmultiplier = json_object_get_int64(jo_val); bpc->bpc_has_detectmultiplier = true; - log_debug("\tdetect-multiplier: %llu", + log_debug("\tdetect-multiplier: %u", bpc->bpc_detectmultiplier); } else if (strcmp(key, "receive-interval") == 0) { bpc->bpc_recvinterval = json_object_get_int64(jo_val); diff --git a/bfdd/control.c b/bfdd/control.c index 5c5421c041..cf821f45b8 100644 --- a/bfdd/control.c +++ b/bfdd/control.c @@ -471,7 +471,7 @@ static int control_read(struct thread *t) bcb->bcb_buf = XMALLOC(MTYPE_BFDD_NOTIFICATION, sizeof(bcm) + bcb->bcb_left + 1); if (bcb->bcb_buf == NULL) { - log_warning("%s: not enough memory for message size: %u", + log_warning("%s: not enough memory for message size: %zu", __func__, bcb->bcb_left); control_free(bcs); return 0;