chiark
/
gitweb
/
~ian
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Makefile.in: Improve push rune in release checklist
[secnet.git]
/
log.c
diff --git
a/log.c
b/log.c
index 4f1b651d13735af9d899ff9988979fd87209fdb5..d330113f0c1b8fe0255eab9ea60f87c37827686c 100644
(file)
--- a/
log.c
+++ b/
log.c
@@
-14,6
+14,8
@@
bool_t secnet_is_daemon=False;
uint32_t message_level=M_WARNING|M_ERR|M_SECURITY|M_FATAL;
struct log_if *system_log=NULL;
uint32_t message_level=M_WARNING|M_ERR|M_SECURITY|M_FATAL;
struct log_if *system_log=NULL;
+static void vMessageFallback(uint32_t class, const char *message, va_list args)
+ FORMAT(printf,2,0);
static void vMessageFallback(uint32_t class, const char *message, va_list args)
{
FILE *dest=stdout;
static void vMessageFallback(uint32_t class, const char *message, va_list args)
{
FILE *dest=stdout;
@@
-38,6
+40,8
@@
static void vMessage(uint32_t class, const char *message, va_list args)
bp=strlen(buff);
assert(bp < MESSAGE_BUFLEN);
vsnprintf(buff+bp,MESSAGE_BUFLEN-bp,message,args);
bp=strlen(buff);
assert(bp < MESSAGE_BUFLEN);
vsnprintf(buff+bp,MESSAGE_BUFLEN-bp,message,args);
+ buff[sizeof(buff)-2] = '\n';
+ buff[sizeof(buff)-1] = '\0';
/* Each line is sent separately */
while ((nlp=strchr(buff,'\n'))) {
*nlp=0;
/* Each line is sent separately */
while ((nlp=strchr(buff,'\n'))) {
*nlp=0;
@@
-58,6
+62,8
@@
void Message(uint32_t class, const char *message, ...)
va_end(ap);
}
va_end(ap);
}
+static void MessageFallback(uint32_t class, const char *message, ...)
+ FORMAT(printf,2,3);
static void MessageFallback(uint32_t class, const char *message, ...)
{
va_list ap;
static void MessageFallback(uint32_t class, const char *message, ...)
{
va_list ap;
@@
-168,11
+174,11
@@
void cfgfile_postreadcheck(struct cloc loc, FILE *f)
{
assert(loc.file);
if (ferror(f)) {
{
assert(loc.file);
if (ferror(f)) {
- Message(M_FATAL, "error reading config file (%s): %s",
+ Message(M_FATAL, "error reading config file (%s): %s
\n
",
loc.file, strerror(errno));
exit(current_phase);
} else if (feof(f)) {
loc.file, strerror(errno));
exit(current_phase);
} else if (feof(f)) {
- Message(M_FATAL, "unexpected end of config file (%s)", loc.file);
+ Message(M_FATAL, "unexpected end of config file (%s)
\n
", loc.file);
exit(current_phase);
}
}
exit(current_phase);
}
}
@@
-189,7
+195,7
@@
static void log_vmulti(void *sst, int class, const char *message, va_list args)
if (secnet_is_daemon) {
for (i=st; i; i=i->next) {
if (secnet_is_daemon) {
for (i=st; i; i=i->next) {
-
i->l->vlog(i->l->st
,class,message,args);
+
vslilog(i->l
,class,message,args);
}
} else {
vMessage(class,message,args);
}
} else {
vMessage(class,message,args);
@@
-197,6
+203,8
@@
static void log_vmulti(void *sst, int class, const char *message, va_list args)
}
}
}
}
+static void log_multi(void *st, int priority, const char *message, ...)
+ FORMAT(printf,3,4);
static void log_multi(void *st, int priority, const char *message, ...)
{
va_list ap;
static void log_multi(void *st, int priority, const char *message, ...)
{
va_list ap;
@@
-240,8
+248,8
@@
struct log_if *init_log(list_t *ll)
}
r=safe_malloc(sizeof(*r), "init_log");
r->st=l;
}
r=safe_malloc(sizeof(*r), "init_log");
r->st=l;
- r->log=log_multi;
- r->vlog=log_vmulti;
+ r->log
fn
=log_multi;
+ r->vlog
fn
=log_vmulti;
return r;
}
return r;
}
@@
-281,6
+289,8
@@
static void logfile_vlog(void *sst, int class, const char *message,
}
}
}
}
+static void logfile_log(void *state, int class, const char *message, ...)
+ FORMAT(printf,3,4);
static void logfile_log(void *state, int class, const char *message, ...)
{
va_list ap;
static void logfile_log(void *state, int class, const char *message, ...)
{
va_list ap;
@@
-353,8
+363,8
@@
static list_t *logfile_apply(closure_t *self, struct cloc loc, dict_t *context,
st->cl.apply=NULL;
st->cl.interface=&st->ops;
st->ops.st=st;
st->cl.apply=NULL;
st->cl.interface=&st->ops;
st->ops.st=st;
- st->ops.log=logfile_log;
- st->ops.vlog=logfile_vlog;
+ st->ops.log
fn
=logfile_log;
+ st->ops.vlog
fn
=logfile_vlog;
st->loc=loc;
st->f=NULL;
st->loc=loc;
st->f=NULL;
@@
-397,6
+407,9
@@
static int msgclass_to_syslogpriority(uint32_t m)
}
}
}
}
+static void syslog_vlog(void *sst, int class, const char *message,
+ va_list args)
+ FORMAT(printf,3,0);
static void syslog_vlog(void *sst, int class, const char *message,
va_list args)
{
static void syslog_vlog(void *sst, int class, const char *message,
va_list args)
{
@@
-410,6
+423,8
@@
static void syslog_vlog(void *sst, int class, const char *message,
}
}
}
}
+static void syslog_log(void *sst, int priority, const char *message, ...)
+ FORMAT(printf,3,4);
static void syslog_log(void *sst, int priority, const char *message, ...)
{
va_list ap;
static void syslog_log(void *sst, int priority, const char *message, ...)
{
va_list ap;
@@
-470,8
+485,8
@@
static list_t *syslog_apply(closure_t *self, struct cloc loc, dict_t *context,
st->cl.apply=NULL;
st->cl.interface=&st->ops;
st->ops.st=st;
st->cl.apply=NULL;
st->cl.interface=&st->ops;
st->ops.st=st;
- st->ops.log=syslog_log;
- st->ops.vlog=syslog_vlog;
+ st->ops.log
fn
=syslog_log;
+ st->ops.vlog
fn
=syslog_vlog;
item=list_elem(args,0);
if (!item || item->type!=t_dict)
item=list_elem(args,0);
if (!item || item->type!=t_dict)
@@
-526,7
+541,7
@@
static void log_from_fd_afterpoll(void *sst, struct pollfd *fds, int nfds)
remain=FDLOG_BUFSIZE-st->i-1;
if (remain<=0) {
st->buffer[FDLOG_BUFSIZE-1]=0;
remain=FDLOG_BUFSIZE-st->i-1;
if (remain<=0) {
st->buffer[FDLOG_BUFSIZE-1]=0;
- s
t->log->
log(st->log,M_WARNING,"%s: overlong line: %s",
+ s
li
log(st->log,M_WARNING,"%s: overlong line: %s",
st->prefix,st->buffer);
st->i=0;
remain=FDLOG_BUFSIZE-1;
st->prefix,st->buffer);
st->i=0;
remain=FDLOG_BUFSIZE-1;
@@
-537,7
+552,7
@@
static void log_from_fd_afterpoll(void *sst, struct pollfd *fds, int nfds)
for (i=0; i<st->i; i++) {
if (st->buffer[i]=='\n') {
st->buffer[i]=0;
for (i=0; i<st->i; i++) {
if (st->buffer[i]=='\n') {
st->buffer[i]=0;
- s
t->log->log(st->log->st
,M_INFO,"%s: %s",
+ s
lilog(st->log
,M_INFO,"%s: %s",
st->prefix,st->buffer);
i++;
memmove(st->buffer,st->buffer+i,st->i-i);
st->prefix,st->buffer);
i++;
memmove(st->buffer,st->buffer+i,st->i-i);