summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd/log.c
diff options
context:
space:
mode:
authorSebastian Benoit <benno@cvs.openbsd.org>2016-09-02 14:00:30 +0000
committerSebastian Benoit <benno@cvs.openbsd.org>2016-09-02 14:00:30 +0000
commitaa3b6762016a886f814101479e2d0dead65f7415 (patch)
treec0d0d871a17413b000fd52db478a222c9984c8ea /usr.sbin/bgpd/log.c
parent2d7c48de747954357d788728d987a52faac5fb10 (diff)
work on making log.c similar in all daemons:
move daemon-local functions into new logmsg.c, and reduce the (mostly whitespace) differences so that log.c's can be diffed easily. ok claudio@, feedback from henning@, deraadt@, reyk@
Diffstat (limited to 'usr.sbin/bgpd/log.c')
-rw-r--r--usr.sbin/bgpd/log.c192
1 files changed, 7 insertions, 185 deletions
diff --git a/usr.sbin/bgpd/log.c b/usr.sbin/bgpd/log.c
index 025cf1d2ce4..ae724a478b3 100644
--- a/usr.sbin/bgpd/log.c
+++ b/usr.sbin/bgpd/log.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.c,v 1.60 2016/08/08 21:44:00 renato Exp $ */
+/* $OpenBSD: log.c,v 1.61 2016/09/02 14:00:29 benno Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -16,52 +16,19 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include <err.h>
#include <errno.h>
-#include <netdb.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
#include <time.h>
-#include <unistd.h>
-#include "bgpd.h"
-#include "session.h"
#include "log.h"
-int debug;
-int verbose;
-
-char *
-log_fmt_peer(const struct peer_config *peer)
-{
- const char *ip;
- char *pfmt, *p;
-
- ip = log_addr(&peer->remote_addr);
- if ((peer->remote_addr.aid == AID_INET && peer->remote_masklen != 32) ||
- (peer->remote_addr.aid == AID_INET6 &&
- peer->remote_masklen != 128)) {
- if (asprintf(&p, "%s/%u", ip, peer->remote_masklen) == -1)
- fatal(NULL);
- } else {
- if ((p = strdup(ip)) == NULL)
- fatal(NULL);
- }
-
- if (peer->descr[0]) {
- if (asprintf(&pfmt, "neighbor %s (%s)", p, peer->descr) ==
- -1)
- fatal(NULL);
- } else {
- if (asprintf(&pfmt, "neighbor %s", p) == -1)
- fatal(NULL);
- }
- free(p);
- return (pfmt);
-}
+int debug;
+int verbose;
+const char *log_procname;
void
log_init(int n_debug)
@@ -111,45 +78,6 @@ vlog(int pri, const char *fmt, va_list ap)
vsyslog(pri, fmt, ap);
}
-
-void
-log_peer_warn(const struct peer_config *peer, const char *emsg, ...)
-{
- char *p, *nfmt;
- va_list ap;
-
- p = log_fmt_peer(peer);
- if (emsg == NULL) {
- if (asprintf(&nfmt, "%s: %s", p, strerror(errno)) == -1)
- fatal(NULL);
- } else {
- if (asprintf(&nfmt, "%s: %s: %s", p, emsg, strerror(errno)) ==
- -1)
- fatal(NULL);
- }
- va_start(ap, emsg);
- vlog(LOG_CRIT, nfmt, ap);
- va_end(ap);
- free(p);
- free(nfmt);
-}
-
-void
-log_peer_warnx(const struct peer_config *peer, const char *emsg, ...)
-{
- char *p, *nfmt;
- va_list ap;
-
- p = log_fmt_peer(peer);
- if (asprintf(&nfmt, "%s: %s", p, emsg) == -1)
- fatal(NULL);
- va_start(ap, emsg);
- vlog(LOG_CRIT, nfmt, ap);
- va_end(ap);
- free(p);
- free(nfmt);
-}
-
void
log_warn(const char *emsg, ...)
{
@@ -217,15 +145,15 @@ fatal(const char *emsg, ...)
va_end(ap);
if (emsg == NULL)
- logit(LOG_CRIT, "fatal in %s: %s", procnames[bgpd_process],
+ logit(LOG_CRIT, "fatal in %s: %s", log_procname,
strerror(errno));
else
if (errno)
logit(LOG_CRIT, "fatal in %s: %s: %s",
- procnames[bgpd_process], s, strerror(errno));
+ log_procname, s, strerror(errno));
else
logit(LOG_CRIT, "fatal in %s: %s",
- procnames[bgpd_process], s);
+ log_procname, s);
exit(1);
}
@@ -236,109 +164,3 @@ fatalx(const char *emsg)
errno = 0;
fatal(emsg);
}
-
-void
-log_statechange(struct peer *peer, enum session_state nstate,
- enum session_events event)
-{
- char *p;
-
- /* don't clutter the logs with constant Connect -> Active -> Connect */
- if (nstate == STATE_CONNECT && peer->state == STATE_ACTIVE &&
- peer->prev_state == STATE_CONNECT)
- return;
- if (nstate == STATE_ACTIVE && peer->state == STATE_CONNECT &&
- peer->prev_state == STATE_ACTIVE)
- return;
-
- peer->lasterr = 0;
- p = log_fmt_peer(&peer->conf);
- logit(LOG_INFO, "%s: state change %s -> %s, reason: %s",
- p, statenames[peer->state], statenames[nstate], eventnames[event]);
- free(p);
-}
-
-void
-log_notification(const struct peer *peer, u_int8_t errcode, u_int8_t subcode,
- u_char *data, u_int16_t datalen, const char *dir)
-{
- char *p;
- const char *suberrname = NULL;
- int uk = 0;
-
- p = log_fmt_peer(&peer->conf);
- switch (errcode) {
- case ERR_HEADER:
- if (subcode >= sizeof(suberr_header_names)/sizeof(char *))
- uk = 1;
- else
- suberrname = suberr_header_names[subcode];
- break;
- case ERR_OPEN:
- if (subcode >= sizeof(suberr_open_names)/sizeof(char *))
- uk = 1;
- else
- suberrname = suberr_open_names[subcode];
- break;
- case ERR_UPDATE:
- if (subcode >= sizeof(suberr_update_names)/sizeof(char *))
- uk = 1;
- else
- suberrname = suberr_update_names[subcode];
- break;
- case ERR_CEASE:
- if (subcode >= sizeof(suberr_cease_names)/sizeof(char *))
- uk = 1;
- else
- suberrname = suberr_cease_names[subcode];
- break;
- case ERR_HOLDTIMEREXPIRED:
- if (subcode != 0)
- uk = 1;
- break;
- case ERR_FSM:
- if (subcode >= sizeof(suberr_fsm_names)/sizeof(char *))
- uk = 1;
- else
- suberrname = suberr_fsm_names[subcode];
- break;
- default:
- logit(LOG_CRIT, "%s: %s notification, unknown errcode "
- "%u, subcode %u", p, dir, errcode, subcode);
- free(p);
- return;
- }
-
- if (uk)
- logit(LOG_CRIT, "%s: %s notification: %s, unknown subcode %u",
- p, dir, errnames[errcode], subcode);
- else {
- if (suberrname == NULL)
- logit(LOG_CRIT, "%s: %s notification: %s", p,
- dir, errnames[errcode]);
- else
- logit(LOG_CRIT, "%s: %s notification: %s, %s",
- p, dir, errnames[errcode], suberrname);
- }
- free(p);
-}
-
-void
-log_conn_attempt(const struct peer *peer, struct sockaddr *sa)
-{
- char *p;
- const char *b;
-
- if (peer == NULL) { /* connection from non-peer, drop */
- b = log_sockaddr(sa);
- logit(LOG_INFO, "connection from non-peer %s refused", b);
- } else {
- /* only log if there is a chance that the session may come up */
- if (peer->conf.down && peer->state == STATE_IDLE)
- return;
- p = log_fmt_peer(&peer->conf);
- logit(LOG_INFO, "Connection attempt from %s while session is "
- "in state %s", p, statenames[peer->state]);
- free(p);
- }
-}