You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
	
	
							82 lines
						
					
					
						
							3.4 KiB
						
					
					
				| # --- SDE-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| # | |
| # Filename: package/.../tcp_wrappers/0011-tcp_wrappers-7.6-cidr-support.patch | |
| # Copyright (C) 2011 The OpenSDE Project | |
| # | |
| # More information can be found in the files COPYING and README. | |
| # | |
| # This patch file is dual-licensed. It is available under the license the | |
| # patched project is licensed under, as long as it is an OpenSource license | |
| # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | |
| # of the GNU General Public License as published by the Free Software | |
| # Foundation; either version 2 of the License, or (at your option) any later | |
| # version. | |
| # --- SDE-COPYRIGHT-NOTE-END --- | |
|  | |
| diff -ruN tcp_wrappers_7.6.orig/hosts_access.5 tcp_wrappers_7.6/hosts_access.5 | |
| --- tcp_wrappers_7.6.orig/hosts_access.5	2003-08-21 03:15:36.000000000 +0200 | |
| +++ tcp_wrappers_7.6/hosts_access.5	2003-08-21 03:15:31.000000000 +0200 | |
| @@ -90,6 +90,10 @@ | |
|  pattern `131.155.72.0/255.255.254.0\' matches every address in the | |
|  range `131.155.72.0\' through `131.155.73.255\'. | |
|  .IP \(bu | |
| +An expression of the form `n.n.n.n/mm' is interpreted as a | |
| +`net/masklength' pair, where `mm' is the number of consecutive `1' | |
| +bits in the netmask applied to the `n.n.n.n' address. | |
| +.IP \(bu | |
|  An expression of the form `[n:n:n:n:n:n:n:n]/m\' is interpreted as a | |
|  `[net]/prefixlen\' pair. An IPv6 host address is matched if | |
|  `prefixlen\' bits of `net\' is equal to the `prefixlen\' bits of the | |
| diff -ruN tcp_wrappers_7.6.orig/hosts_access.c tcp_wrappers_7.6/hosts_access.c | |
| --- tcp_wrappers_7.6.orig/hosts_access.c	2003-08-21 03:15:36.000000000 +0200 | |
| +++ tcp_wrappers_7.6/hosts_access.c	2003-08-21 03:09:30.000000000 +0200 | |
| @@ -417,7 +417,8 @@ | |
|      if ((addr = dot_quad_addr(string)) == INADDR_NONE) | |
|  	return (NO); | |
|      if ((net = dot_quad_addr(net_tok)) == INADDR_NONE | |
| -	|| (mask = dot_quad_addr(mask_tok)) == INADDR_NONE) { | |
| +	|| ((mask = dot_quad_addr(mask_tok)) == INADDR_NONE | |
| +	    && (mask = cidr_mask_addr(mask_tok)) == 0)) { | |
|  #ifndef INET6 | |
|  	tcpd_warn("bad net/mask expression: %s/%s", net_tok, mask_tok); | |
|  #endif | |
| diff -ruN tcp_wrappers_7.6.orig/misc.c tcp_wrappers_7.6/misc.c | |
| --- tcp_wrappers_7.6.orig/misc.c	2003-08-21 03:15:36.000000000 +0200 | |
| +++ tcp_wrappers_7.6/misc.c	2003-08-21 03:09:30.000000000 +0200 | |
| @@ -107,3 +107,17 @@ | |
|      } | |
|      return (runs == 4 ? inet_addr(str) : INADDR_NONE); | |
|  } | |
| + | |
| +/* cidr_mask_addr - convert cidr netmask length to internal form */ | |
| + | |
| +unsigned long cidr_mask_addr(str) | |
| +char   *str; | |
| +{ | |
| +    int     maskbits; | |
| + | |
| +    maskbits = atoi(str); | |
| +    if (maskbits < 1 || maskbits > 32) | |
| +	return (0); | |
| +    return htonl(0xFFFFFFFF << (32 - maskbits)); | |
| +} | |
| + | |
| diff -ruN tcp_wrappers_7.6.orig/tcpdchk.c tcp_wrappers_7.6/tcpdchk.c | |
| --- tcp_wrappers_7.6.orig/tcpdchk.c	2003-08-21 03:15:36.000000000 +0200 | |
| +++ tcp_wrappers_7.6/tcpdchk.c	2003-08-21 03:09:30.000000000 +0200 | |
| @@ -497,12 +497,12 @@ | |
|  	int mask_len; | |
|   | |
|  	if ((dot_quad_addr(pat) == INADDR_NONE | |
| -	    || dot_quad_addr(mask) == INADDR_NONE) | |
| +	    || dot_quad_addr(mask) == INADDR_NONE && cidr_mask_addr(mask) == 0) | |
|  	    && (!is_inet6_addr(pat) | |
|  		|| ((mask_len = atoi(mask)) < 0 || mask_len > 128))) | |
|  #else | |
|  	if (dot_quad_addr(pat) == INADDR_NONE | |
| -	    || dot_quad_addr(mask) == INADDR_NONE) | |
| +	    || dot_quad_addr(mask) == INADDR_NONE && cidr_mask_addr(mask) == 0) | |
|  #endif | |
|  	    tcpd_warn("%s/%s: bad net/mask pattern", pat, mask); | |
|      } else if (STR_EQ(pat, "FAIL")) {		/* obsolete */
 | |
| 
 |