mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-10-31 16:31:40 +01:00 
			
		
		
		
	Easy-to-use command-line tools for building TCP client-server applications. http://cr.yp.to/ucspi-tcp.html
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff -ruN --exclude conf-* ucspi-tcp-0.88/rblsmtpd.c ucspi-tcp-0.88.fix/rblsmtpd.c
 | |
| --- ucspi-tcp-0.88/rblsmtpd.c	Sat Mar 18 10:18:42 2000
 | |
| +++ ucspi-tcp-0.88.fix/rblsmtpd.c	Wed Aug  9 16:42:33 2000
 | |
| @@ -60,16 +60,54 @@
 | |
|  
 | |
|  void rbl(char *base)
 | |
|  {
 | |
| +  int i;
 | |
| +  char *altreply = 0;
 | |
|    if (decision) return;
 | |
|    if (!stralloc_copy(&tmp,&ip_reverse)) nomem();
 | |
| +  i = str_chr(base, ':');
 | |
| +  if (base[i]) {
 | |
| +    base[i] = 0;
 | |
| +    altreply = base+i+1;
 | |
| +  }
 | |
|    if (!stralloc_cats(&tmp,base)) nomem();
 | |
| -  if (dns_txt(&text,&tmp) == -1) {
 | |
| -    flagmustnotbounce = 1;
 | |
| -    if (flagfailclosed) {
 | |
| -      if (!stralloc_copys(&text,"temporary RBL lookup error")) nomem();
 | |
| -      decision = 2;
 | |
| +  if (altreply) {
 | |
| +    if (dns_ip4(&text,&tmp) == -1) {
 | |
| +      flagmustnotbounce = 1;
 | |
| +      if (flagfailclosed) {
 | |
| +        if (!stralloc_copys(&text,"temporary RBL lookup error")) nomem();
 | |
| +        decision = 2;
 | |
| +      }
 | |
| +      return;
 | |
| +    }
 | |
| +    if (text.len) {
 | |
| +      if(!stralloc_copys(&text, "")) nomem();
 | |
| +      while(*altreply) {
 | |
| +        char *x;
 | |
| +        i = str_chr(altreply, '%');
 | |
| +        if(!stralloc_catb(&text, altreply, i)) nomem();
 | |
| +        if(altreply[i] &&
 | |
| +           altreply[i+1]=='I' &&
 | |
| +           altreply[i+2]=='P' &&
 | |
| +           altreply[i+3]=='%') {
 | |
| +          if(!stralloc_catb(&text, ip_env, str_len(ip_env))) nomem();
 | |
| +          altreply+=i+4;
 | |
| +        } else if(altreply[i]) {
 | |
| +          if(!stralloc_cats(&text, "%")) nomem();
 | |
| +          altreply+=i+1;
 | |
| +        } else {
 | |
| +          altreply+=i;
 | |
| +        }
 | |
| +      }
 | |
| +    }
 | |
| +  } else {
 | |
| +    if (dns_txt(&text,&tmp) == -1) {
 | |
| +      flagmustnotbounce = 1;
 | |
| +      if (flagfailclosed) {
 | |
| +        if (!stralloc_copys(&text,"temporary RBL lookup error")) nomem();
 | |
| +        decision = 2;
 | |
| +      }
 | |
| +      return;
 | |
|      }
 | |
| -    return;
 | |
|    }
 | |
|    if (text.len)
 | |
|      if (flagrblbounce)
 |