diff options
Diffstat (limited to 'zwgc/main.c')
-rw-r--r-- | zwgc/main.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/zwgc/main.c b/zwgc/main.c index 83413da..c4d1e42 100644 --- a/zwgc/main.c +++ b/zwgc/main.c @@ -325,8 +325,21 @@ void notice_handler(notice) ZNotice_t *notice; { struct hostent *fromhost = NULL; + char *resolved_addresses; + int bool_result; + + resolved_addresses = ZGetVariable("resolved_addresses"); + if (!resolved_addresses) + bool_result = 0; + else if (!strcmp(resolved_addresses, "all")) + bool_result = 1; + else if (!strcmp(resolved_addresses, "none")) + bool_result = 0; + else + bool_result = ed_regexp_match_p(inet_ntoa(notice->z_sender_addr), + resolved_addresses); - if (notice->z_sender_addr.s_addr) { + if (notice->z_sender_addr.s_addr && bool_result) { #ifdef HAVE_ARES ares_gethostbyaddr(achannel, &(notice->z_sender_addr), sizeof(notice->z_sender_addr), AF_INET, |