diff -cr ip_fil3.3.14/HISTORY ip_fil3.3.15/HISTORY
*** ip_fil3.3.14/HISTORY	Wed May 10 08:41:02 2000
--- ip_fil3.3.15/HISTORY	Sat May 20 02:02:58 2000
***************
*** 20,25 ****
--- 20,31 ----
  # and especially those who have found the time to port IP Filter to new
  # platforms.
  #
+ 3.3.15	20/05/2000 - Released
+ 
+ fix destination being 0/32 in NAT map rules
+ 
+ fix ipmon -F
+ 
  3.3.14	10/05/2000 - Released
  
  Fix bug in dealing with "hlen == 1 and opt > 1" - Itojun
diff -cr ip_fil3.3.14/SunOS5/pkginfo ip_fil3.3.15/SunOS5/pkginfo
*** ip_fil3.3.14/SunOS5/pkginfo	Wed May 10 08:40:25 2000
--- ip_fil3.3.15/SunOS5/pkginfo	Sat May 20 02:03:02 2000
***************
*** 5,11 ****
  PKG=ipf
  NAME=IP Filter
  ARCH=sparc,i386
! VERSION=3.3.14
  CATEGORY=system
  DESC=This package contains tools for building a firewall
  VENDOR=Darren Reed
--- 5,11 ----
  PKG=ipf
  NAME=IP Filter
  ARCH=sparc,i386
! VERSION=3.3.15
  CATEGORY=system
  DESC=This package contains tools for building a firewall
  VENDOR=Darren Reed
diff -cr ip_fil3.3.14/ip_nat.c ip_fil3.3.15/ip_nat.c
*** ip_fil3.3.14/ip_nat.c	Sun May  7 11:54:54 2000
--- ip_fil3.3.15/ip_nat.c	Sat May 20 01:52:29 2000
***************
*** 9,15 ****
   */
  #if !defined(lint)
  static const char sccsid[] = "@(#)ip_nat.c	1.11 6/5/96 (C) 1995 Darren Reed";
! static const char rcsid[] = "@(#)$Id: ip_nat.c,v 2.2.2.16 2000/05/07 01:54:54 darrenr Exp $";
  #endif
  
  #if defined(__FreeBSD__) && defined(KERNEL) && !defined(_KERNEL)
--- 9,15 ----
   */
  #if !defined(lint)
  static const char sccsid[] = "@(#)ip_nat.c	1.11 6/5/96 (C) 1995 Darren Reed";
! static const char rcsid[] = "@(#)$Id: ip_nat.c,v 2.2.2.18 2000/05/19 15:52:29 darrenr Exp $";
  #endif
  
  #if defined(__FreeBSD__) && defined(KERNEL) && !defined(_KERNEL)
***************
*** 328,338 ****
  	{
  #ifdef  IPFILTER_LOG
  	case SIOCIPFFB :
  		if (!(mode & FWRITE))
  			error = EPERM;
! 		else
! 			*(int *)data = ipflog_clear(IPL_LOGNAT);
  		break;
  #endif
  	case SIOCADNAT :
  		if (!(mode & FWRITE)) {
--- 328,344 ----
  	{
  #ifdef  IPFILTER_LOG
  	case SIOCIPFFB :
+ 	{
+ 		int tmp;
+ 
  		if (!(mode & FWRITE))
  			error = EPERM;
! 		else {
! 			tmp = ipflog_clear(IPL_LOGNAT);
! 			IWCOPY((char *)&tmp, (char *)data, sizeof(tmp));
! 		}
  		break;
+ 	}
  #endif
  	case SIOCADNAT :
  		if (!(mode & FWRITE)) {
***************
*** 781,787 ****
  					port += MAPBLK_MINPORT;
  					port = htons(port);
  				}
! 			} else if (!np->in_nip &&
  				   (np->in_outmsk == 0xffffffff)) {
  				/*
  				 * 0/32 - use the interface's IP address.
--- 787,793 ----
  					port += MAPBLK_MINPORT;
  					port = htons(port);
  				}
! 			} else if (!np->in_outip &&
  				   (np->in_outmsk == 0xffffffff)) {
  				/*
  				 * 0/32 - use the interface's IP address.
***************
*** 792,798 ****
  					return NULL;
  				}
  				in.s_addr = ntohl(in.s_addr);
! 			} else if (!np->in_nip && !np->in_outmsk) {
  				/*
  				 * 0/0 - use the original source address/port.
  				 */
--- 798,804 ----
  					return NULL;
  				}
  				in.s_addr = ntohl(in.s_addr);
! 			} else if (!np->in_outip && !np->in_outmsk) {
  				/*
  				 * 0/0 - use the original source address/port.
  				 */
diff -cr ip_fil3.3.14/ip_state.c ip_fil3.3.15/ip_state.c
*** ip_fil3.3.14/ip_state.c	Wed Apr 26 02:21:16 2000
--- ip_fil3.3.15/ip_state.c	Sat May 20 01:53:45 2000
***************
*** 7,13 ****
   */
  #if !defined(lint)
  static const char sccsid[] = "@(#)ip_state.c	1.8 6/5/96 (C) 1993-1995 Darren Reed";
! static const char rcsid[] = "@(#)$Id: ip_state.c,v 2.3.2.23 2000/04/25 16:21:16 darrenr Exp $";
  #endif
  
  #include <sys/errno.h>
--- 7,13 ----
   */
  #if !defined(lint)
  static const char sccsid[] = "@(#)ip_state.c	1.8 6/5/96 (C) 1993-1995 Darren Reed";
! static const char rcsid[] = "@(#)$Id: ip_state.c,v 2.3.2.24 2000/05/19 15:53:45 darrenr Exp $";
  #endif
  
  #include <sys/errno.h>
***************
*** 230,237 ****
  	case SIOCIPFFB :
  		if (!(mode & FWRITE))
  			error = EPERM;
! 		else
! 			*(int *)data = ipflog_clear(IPL_LOGSTATE);
  		break;
  #endif
  	case SIOCGIPST :
--- 230,241 ----
  	case SIOCIPFFB :
  		if (!(mode & FWRITE))
  			error = EPERM;
! 		else {
! 			int tmp;
! 
! 			tmp = ipflog_clear(IPL_LOGSTATE);
! 			IWCOPY((char *)&tmp, data, sizeof(tmp));
! 		}
  		break;
  #endif
  	case SIOCGIPST :
diff -cr ip_fil3.3.14/ipl.h ip_fil3.3.15/ipl.h
*** ip_fil3.3.14/ipl.h	Wed May 10 08:40:25 2000
--- ip_fil3.3.15/ipl.h	Sat May 20 02:03:00 2000
***************
*** 11,16 ****
  #ifndef	__IPL_H__
  #define	__IPL_H__
  
! #define	IPL_VERSION	"IP Filter: v3.3.14"
  
  #endif
--- 11,16 ----
  #ifndef	__IPL_H__
  #define	__IPL_H__
  
! #define	IPL_VERSION	"IP Filter: v3.3.15"
  
  #endif