X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=site.c;h=37968896ccb50f1d07370a7ff582d1697a158327;hb=4a6ee8b677fd7addc97fc0d245f95ddde3b5f8e4;hp=b9ebc4bab77eebfe8a4fb56b2b6fc0f775995f43;hpb=4b5e68bee879ba7436de397eee4923da8bac6361;p=secnet.git diff --git a/site.c b/site.c index b9ebc4b..3796889 100644 --- a/site.c +++ b/site.c @@ -1829,14 +1829,23 @@ static bool_t named_for_us(struct site *st, const struct buffer_if *buf_in, struct buffer_if buf[1]; buffer_readonly_clone(buf,buf_in); -#define NAME_MATCHES(lr) \ - name_matches(&m->lr, st->lr##name) - - return unpick_msg(st,type,buf,m) - && NAME_MATCHES(remote) - && NAME_MATCHES(local ); - + if (!unpick_msg(st,type,buf,m)) { + priomsg_update_fixed(whynot, comm_notify_whynot_unpick, "malformed"); + return False; + } +#define NAME_MATCHES(lr) \ + if (!name_matches(&m->lr, st->lr##name)) { \ + if (priomsg_update_fixed(whynot, comm_notify_whynot_name_##lr, \ + "unknown " #lr " name: ")) { \ + truncmsg_add_packet_string(&whynot->m, m->lr.len, m->lr.name); \ + } \ + return False; \ + } + NAME_MATCHES(remote); + NAME_MATCHES(local ); #undef NAME_MATCHES + + return True; } static bool_t we_have_priority(struct site *st, const struct msg *m) { @@ -2080,6 +2089,8 @@ static bool_t site_incoming(void *sst, struct buffer_if *buf, return True; } + priomsg_update_fixed(whynot, comm_notify_whynot_general, + "not MSG1 or PROD; unknown dest index"); return False; }