diff options
| -rw-r--r-- | imap/imaplogin.c | 2 | ||||
| -rw-r--r-- | sqwebmail/images/logo.png | bin | 4059 -> 4053 bytes | |||
| -rw-r--r-- | tcpd/tcpd.c | 19 |
3 files changed, 17 insertions, 4 deletions
diff --git a/imap/imaplogin.c b/imap/imaplogin.c index 4056dd4..0f0b0bf 100644 --- a/imap/imaplogin.c +++ b/imap/imaplogin.c @@ -469,7 +469,7 @@ int main(int argc, char **argv) writes("* OK [CAPABILITY "); imapcapability(); writes("] Courier-IMAP ready. " - "Copyright 1998-2016 Double Precision, Inc. " + "Copyright 1998-2017 Double Precision, Inc. " "See COPYING for distribution information.\r\n"); fprintf(stderr, "DEBUG: Connection, ip=[%s]\n", ip); writeflush(); diff --git a/sqwebmail/images/logo.png b/sqwebmail/images/logo.png Binary files differindex 28efca9..69c70d3 100644 --- a/sqwebmail/images/logo.png +++ b/sqwebmail/images/logo.png diff --git a/tcpd/tcpd.c b/tcpd/tcpd.c index 819dc51..093a23a 100644 --- a/tcpd/tcpd.c +++ b/tcpd/tcpd.c @@ -1624,11 +1624,11 @@ static void docheckblocklist(struct blocklist_s *p, const char *nameptr) if (p->allow) wanttxt = p->msg != 0; else - wanttxt = (p->msg == 0 || *p->msg == 0); + wanttxt = p->msg && strcmp(p->msg, "*") == 0; (void)rfc1035_resolve_cname(&res, hostname, - wanttxt ? RFC1035_TYPE_ANY:RFC1035_TYPE_A, + wanttxt ? RFC1035_TYPE_TXT:RFC1035_TYPE_A, RFC1035_CLASS_IN, &replyp, 0); if (!replyp) @@ -1673,12 +1673,25 @@ static void docheckblocklist(struct blocklist_s *p, const char *nameptr) if (!search_txt_records(&res, p->allow, varname, replyp, hostname) && !p->allow) { + size_t l=strlen(p->zone)+40; + char *buf=malloc(l+1); + + if (!buf) + { + perror("malloc"); + _exit(1); + } + + buf[snprintf(buf, l, "Sender @ blacklisted by %s", + p->zone)]=0; + /* ** Even though we did not find a TXT record, we're here ** because of an A record, so for -blocks, we must ** set varname to something. */ - mysetenv(varname, "Access denied."); + mkmymsg(varname, buf); + free(buf); } found=1; |
