X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=site.c;h=8223fb3f81d678e228cd606aeb5d65aa7c92a609;hp=989ad3ee28d925b36fd0ad9151631e962e321508;hb=8dea8d37a13fcc615daba3375809900f04a2e5a2;hpb=3454dce4c6909648b711a59b57c5a527036b2a8e diff --git a/site.c b/site.c index 989ad3e..8223fb3 100644 --- a/site.c +++ b/site.c @@ -7,6 +7,7 @@ #include #include "util.h" +#include "ipaddr.h" #include "unaligned.h" #define SETUP_BUFFER_LEN 2048 @@ -194,12 +195,27 @@ static void slog(struct site *st, uint32_t event, string_t msg, ...) { va_list ap; uint8_t buf[240]; + uint32_t class; va_start(ap,msg); if (event&st->log_events) { + switch(event) { + case LOG_UNEXPECTED: class=M_INFO; break; + case LOG_SETUP_INIT: class=M_INFO; break; + case LOG_SETUP_TIMEOUT: class=M_NOTICE; break; + case LOG_ACTIVATE_KEY: class=M_INFO; break; + case LOG_TIMEOUT_KEY: class=M_INFO; break; + case LOG_SEC: class=M_SECURITY; break; + case LOG_STATE: class=M_DEBUG; break; + case LOG_DROP: class=M_DEBUG; break; + case LOG_DUMP: class=M_DEBUG; break; + case LOG_ERROR: class=M_ERROR; break; + default: class=M_ERROR; break; + } + vsnprintf(buf,240,msg,ap); - st->log->log(st->log->st,0,"%s: %s",st->tunname,buf); + st->log->log(st->log->st,class,"%s: %s",st->tunname,buf); } va_end(ap); } @@ -613,7 +629,7 @@ static bool_t process_msg0(struct site *st, struct buffer_if *msg0, msg0,&transform_err)) { /* There's a problem */ slog(st,LOG_SEC,"transform: %s",transform_err); - return False; + return initiate_key_setup(st); } CHECK_AVAIL(msg0,4); type=buf_unprepend_uint32(msg0); @@ -638,7 +654,7 @@ static void dump_packet(struct site *st, struct buffer_if *buf, uint32_t msgtype=ntohl(*(uint32_t *)(buf->start+8)); if (st->log_events & LOG_DUMP) - log(st->log,0,"%s: %s: %08x<-%08x: %08x:", + log(st->log,M_DEBUG,"%s: %s: %08x<-%08x: %08x:", st->tunname,incoming?"incoming":"outgoing", dest,source,msgtype); } @@ -1150,7 +1166,7 @@ static list_t *site_apply(closure_t *self, struct cloc loc, dict_t *context, site() closures for all sites including our own): refuse to talk to ourselves */ if (strcmp(st->localname,st->remotename)==0) { - Message(M_INFO,"site %s: local-name==name -> ignoring this site\n", + Message(M_DEBUG,"site %s: local-name==name -> ignoring this site\n", st->localname); free(st); return NULL;