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.pngBinary files differ index 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; | 
