commit - 8efb008e71e124a424e49032b6cf5cfbb53a08bf
commit + 9787a4f4bec8896e2474a4d1d1e9ff30e926ac93
blob - c137bdf7446e53e046c9d62014f2ec5153e596c0
blob + 070065ac2f7445ccc1cfbd59427f90148cfa3783
--- log.c
+++ log.c
-/* $OpenBSD: log.c,v 1.29 2015/11/21 13:46:29 reyk Exp $ */
+/* $OpenBSD: log.c,v 1.30 2015/11/22 13:27:13 reyk Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
#include <errno.h>
#include <time.h>
-int debug;
-int verbose;
+int debug;
+int verbose;
+const char *log_procname;
-void log_init(int);
+void log_init(int, int);
+void log_procinit(const char *);
void log_verbose(int);
void log_warn(const char *, ...)
__attribute__((__format__ (printf, 1, 2)));
__attribute__((__format__ (printf, 2, 3)));
void vlog(int, const char *, va_list)
__attribute__((__format__ (printf, 2, 0)));
-__dead void fatal(const char *);
-__dead void fatalx(const char *);
+__dead void fatal(const char *, ...)
+ __attribute__((__format__ (printf, 1, 2)));
+__dead void fatalx(const char *, ...)
+ __attribute__((__format__ (printf, 1, 2)));
void
-log_init(int n_debug)
+log_init(int n_debug, int facility)
{
extern char *__progname;
debug = n_debug;
verbose = n_debug;
+ log_procinit(__progname);
if (!debug)
- openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ openlog(__progname, LOG_PID | LOG_NDELAY, facility);
tzset();
}
void
+log_procinit(const char *procname)
+{
+ if (procname != NULL)
+ log_procname = procname;
+}
+
+void
log_verbose(int v)
{
verbose = v;
}
}
-void
-fatal(const char *emsg)
+static void
+vfatal(const char *emsg, va_list ap)
{
- if (emsg == NULL)
- logit(LOG_CRIT, "fatal: %s", strerror(errno));
+ static char s[BUFSIZ];
+ const char *sep;
+
+ if (emsg != NULL) {
+ (void)vsnprintf(s, sizeof(s), emsg, ap);
+ sep = ": ";
+ } else {
+ s[0] = '\0';
+ sep = "";
+ }
+ if (errno)
+ logit(LOG_CRIT, "fatal in %s: %s%s%s",
+ log_procname, s, sep, strerror(errno));
else
- if (errno)
- logit(LOG_CRIT, "fatal: %s: %s",
- emsg, strerror(errno));
- else
- logit(LOG_CRIT, "fatal: %s", emsg);
+ logit(LOG_CRIT, "fatal in %s%s%s", log_procname, sep, s);
+}
+void
+fatal(const char *emsg, ...)
+{
+ va_list ap;
+
+ va_start(ap, emsg);
+ vfatal(emsg, ap);
+ va_end(ap);
exit(1);
}
void
-fatalx(const char *emsg)
+fatalx(const char *emsg, ...)
{
+ va_list ap;
+
errno = 0;
- fatal(emsg);
+ va_start(ap, emsg);
+ vfatal(emsg, ap);
+ va_end(ap);
+ exit(1);
}
blob - c6c9d7b3f74433954daa74b74ae23e7d07bee417
blob + a6bf3908f3c73872a3d8493ae17ee6048c239863
--- parse.y
+++ parse.y
-/* $OpenBSD: parse.y,v 1.205 2015/08/20 22:39:29 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.206 2015/11/22 13:27:13 reyk Exp $ */
/*
* Copyright (c) 2007 - 2014 Reyk Floeter <reyk@openbsd.org>
return (NULL);
if ((h = calloc(1, sizeof(*h))) == NULL)
- fatal(NULL);
+ fatal(__func__);
sain = (struct sockaddr_in *)&h->ss;
sain->sin_len = sizeof(struct sockaddr_in);
sain->sin_family = AF_INET;
hints.ai_flags = AI_NUMERICHOST;
if (getaddrinfo(s, "0", &hints, &res) == 0) {
if ((h = calloc(1, sizeof(*h))) == NULL)
- fatal(NULL);
+ fatal(__func__);
sa_in6 = (struct sockaddr_in6 *)&h->ss;
sa_in6->sin6_len = sizeof(struct sockaddr_in6);
sa_in6->sin6_family = AF_INET6;
res->ai_family != AF_INET6)
continue;
if ((h = calloc(1, sizeof(*h))) == NULL)
- fatal(NULL);
+ fatal(__func__);
if (port != NULL)
bcopy(port, &h->port, sizeof(h->port));
blob - c796944827deae384766fa20b9c220e973baf196
blob + 53c42df3bce41641f0a7f3b9957af3aed7a8098c
--- proc.c
+++ proc.c
-/* $OpenBSD: proc.c,v 1.21 2015/10/01 12:16:21 reyk Exp $ */
+/* $OpenBSD: proc.c,v 1.22 2015/11/22 13:27:13 reyk Exp $ */
/*
* Copyright (c) 2010 - 2014 Reyk Floeter <reyk@openbsd.org>
case -1:
fatal("proc_run: cannot fork");
case 0:
+ log_procinit(p->p_title);
+
/* Set the process group of the current process */
setpgid(0, 0);
break;
if (p->p_id == PROC_CONTROL && ps->ps_instance == 0) {
if (control_init(ps, &ps->ps_csock) == -1)
- fatalx(p->p_title);
+ fatalx(__func__);
TAILQ_FOREACH(rcs, &ps->ps_rcsocks, cs_entry)
if (control_init(ps, rcs) == -1)
- fatalx(p->p_title);
+ fatalx(__func__);
}
/* Change root directory */
if (p->p_id == PROC_CONTROL && ps->ps_instance == 0) {
TAILQ_INIT(&ctl_conns);
if (control_listen(&ps->ps_csock) == -1)
- fatalx(p->p_title);
+ fatalx(__func__);
TAILQ_FOREACH(rcs, &ps->ps_rcsocks, cs_entry)
if (control_listen(rcs) == -1)
- fatalx(p->p_title);
+ fatalx(__func__);
}
if (init != NULL)
if (event & EV_READ) {
if ((n = imsg_read(ibuf)) == -1)
- fatal(title);
+ fatal(__func__);
if (n == 0) {
/* this pipe is dead, so remove the event handler */
event_del(&iev->ev);
if (event & EV_WRITE) {
if (msgbuf_write(&ibuf->w) <= 0 && errno != EAGAIN)
- fatal(title);
+ fatal(__func__);
}
for (;;) {
if ((n = imsg_get(ibuf, &imsg)) == -1)
- fatal(title);
+ fatal(__func__);
if (n == 0)
break;
log_warnx("%s: %s %d got invalid imsg %d from %s %d",
__func__, title, ps->ps_instance + 1,
imsg.hdr.type, p->p_title, p->p_instance);
- fatalx(title);
+ fatalx(__func__);
}
imsg_free(&imsg);
}
blob - e1881b4010faf35bc731ea3780454fee07f8366e
blob + b190faf1a5a3419e9fdce298367383ec67f0edc5
--- relayd.c
+++ relayd.c
-/* $OpenBSD: relayd.c,v 1.145 2015/11/19 21:32:53 mmcc Exp $ */
+/* $OpenBSD: relayd.c,v 1.146 2015/11/22 13:27:13 reyk Exp $ */
/*
* Copyright (c) 2007 - 2014 Reyk Floeter <reyk@openbsd.org>
#include <fcntl.h>
#include <getopt.h>
#include <fnmatch.h>
+#include <syslog.h>
#include <err.h>
#include <errno.h>
#include <event.h>
}
}
- log_init(debug ? debug : 1); /* log to stderr until daemonized */
+ /* log to stderr until daemonized */
+ log_init(debug ? debug : 1, LOG_DAEMON);
argc -= optind;
if (argc > 0)
/* Configure the control socket */
ps->ps_csock.cs_name = RELAYD_SOCKET;
- log_init(debug);
+ log_init(debug, LOG_DAEMON);
log_verbose(verbose);
if (!debug && daemon(1, 0) == -1)
proc_init(ps, procs, nitems(procs));
setproctitle("parent");
+ log_procinit("parent");
event_init();
blob - e0f7cb248005d3a6484f5942de8d2d298de5db9c
blob + 0492e24d2eb15bffa411c9c95762884d464650b5
--- relayd.h
+++ relayd.h
-/* $OpenBSD: relayd.h,v 1.216 2015/11/21 12:37:42 reyk Exp $ */
+/* $OpenBSD: relayd.h,v 1.217 2015/11/22 13:27:13 reyk Exp $ */
/*
* Copyright (c) 2006 - 2015 Reyk Floeter <reyk@openbsd.org>
u_int16_t shuffle_generate16(struct shuffle *);
/* log.c */
-void log_init(int);
+void log_init(int, int);
+void log_procinit(const char *);
void log_verbose(int);
void log_warn(const char *, ...)
__attribute__((__format__ (printf, 1, 2)));
__attribute__((__format__ (printf, 2, 3)));
void vlog(int, const char *, va_list)
__attribute__((__format__ (printf, 2, 0)));
-__dead void fatal(const char *);
-__dead void fatalx(const char *);
+__dead void fatal(const char *, ...)
+ __attribute__((__format__ (printf, 1, 2)));
+__dead void fatalx(const char *, ...)
+ __attribute__((__format__ (printf, 1, 2)));
/* proc.c */
void proc_init(struct privsep *, struct privsep_proc *, u_int);