Home | History | Annotate | Line # | Download | only in dist
      1      1.1  christos #
      2      1.1  christos # NOTE: Quite a few patches and suggestions come from other sources, to whom
      3      1.1  christos #       I'm greatly indebted, even if no names are mentioned.
      4      1.1  christos #
      5      1.1  christos # Thanks to the Coombs Computing Unit at the ANU for their continued support
      6      1.1  christos # in providing a very available location for the IP Filter home page and
      7      1.1  christos # distribution center.
      8      1.1  christos #
      9      1.1  christos # Thanks also to all those who have contributed patches and other code,
     10      1.1  christos # and especially those who have found the time to port IP Filter to new
     11      1.1  christos # platforms.
     12      1.1  christos #
     13  1.1.1.2   darrenr 5.1.2 - RELEASED - 22 Jul 2012
     14  1.1.1.2   darrenr 
     15  1.1.1.2   darrenr 3546266 macro letters could be more consistent
     16  1.1.1.2   darrenr 3546265 not all of the state statistics are displayed
     17  1.1.1.2   darrenr 3546261 scripts for updating BSD environment out of date
     18  1.1.1.2   darrenr 3546260 compiler warnings about non-integer array subscript
     19  1.1.1.2   darrenr 3546259 asserting numdereflists == 0 is not correct
     20  1.1.1.2   darrenr 3546258 expression matching does not see IPF_EXP_END
     21  1.1.1.2   darrenr 3544317 ipnat/ipfstat are not using ipfexp_t
     22  1.1.1.2   darrenr 3545324 proxy checksum calculation is not hardware aware
     23  1.1.1.2   darrenr 3545321 FTP sequence number adjustment incorrectly applied
     24  1.1.1.2   darrenr 3545320 EPSV is not recognised
     25  1.1.1.2   darrenr 3545319 move nat rule creation to ip_proxy.c
     26  1.1.1.2   darrenr 3545317 better feedback of checksum requirements for proxies
     27  1.1.1.2   darrenr 3545314 ftp proxy levels do not make sense
     28  1.1.1.2   darrenr 3545312 EPRT is not supported by ftp proxy
     29  1.1.1.2   darrenr 3544318 ipnat.conf parsing ignores LHS address family
     30  1.1.1.2   darrenr 3545309 non-ipv6 safe proxies do not fail with ipv6
     31  1.1.1.2   darrenr 3545323 NAT updates the source port twice
     32  1.1.1.2   darrenr 3545322 ipv6 nat rules cannot start proxies
     33  1.1.1.2   darrenr 3544314 bucket copyout tries to copy too much data
     34  1.1.1.2   darrenr 3544313 remove nat encap feature
     35  1.1.1.2   darrenr 3546248 compat rule pointer type mismatch
     36  1.1.1.2   darrenr 3546247 UDP hardware checksum offload not recognised
     37  1.1.1.2   darrenr 3545311 ifp_ifaddr does not find the first set address
     38  1.1.1.2   darrenr 3545310 ipmon needs ipl_sec on 64bit boundary
     39  1.1.1.2   darrenr 3545326 reference count changes made without lock
     40  1.1.1.2   darrenr 3544315 stateful matching does not use ipfexp_t
     41  1.1.1.2   darrenr 3543493 tokens are not flushed when disabled
     42  1.1.1.2   darrenr 3543487 NAT rules do not always release lookup objects
     43  1.1.1.2   darrenr 3543491 function comments in ip_state.c are old
     44  1.1.1.2   darrenr 3543404 ipnat.conf parsing uses family/ip version badly
     45  1.1.1.2   darrenr 3543403 incorrect line number printed in ipnat parsing errors
     46  1.1.1.2   darrenr 3543402 Not all NAT statistics are printed
     47  1.1.1.2   darrenr 3542979 NAT session list management is too simple
     48  1.1.1.2   darrenr 3542978 ipv4 and ipv6 nat insert have common hash insertion
     49  1.1.1.2   darrenr 3542977 ipnat_t refence tracking incomplete
     50  1.1.1.2   darrenr 3542975 proxies must use ipnat_t separately
     51  1.1.1.2   darrenr 3542980 printing ipv6 expressions is wrong
     52  1.1.1.2   darrenr 3542983 ippool cannot handle more than one ipv6 address
     53  1.1.1.2   darrenr 3543018 mask array shifted incorrectly.
     54  1.1.1.2   darrenr 3542974 reason for dropping packet is lost
     55  1.1.1.2   darrenr 3542982 line numbers not recorded/displayed correctly by ipf
     56  1.1.1.2   darrenr 3542981 exclamation mark cuases trouble with pools
     57  1.1.1.2   darrenr 3541655 test suite checksums incorrect
     58  1.1.1.2   darrenr 3541653 display proxy fail status correctly
     59  1.1.1.2   darrenr 3540993 IP header offset excluded in pullup calculations
     60  1.1.1.2   darrenr 3540994 pullupmsg does not work as required
     61  1.1.1.2   darrenr 3540992 pointer to ipv6 frag header not updated on pullup
     62  1.1.1.2   darrenr 3541645 netmask management adds /32 for /0
     63  1.1.1.2   darrenr 3541637 ipnat parser does not zero port fields for non-port protocol
     64  1.1.1.2   darrenr 3541635 pool names cannot by numbers
     65  1.1.1.2   darrenr 3540995 IPv6 fragment tracking does not always work
     66  1.1.1.2   darrenr 3540996 printing of nextip for ipv6 nat rules is wrong
     67  1.1.1.2   darrenr 3540999 ipnat.conf parsing has trouble with icmpidmap for ipv6
     68  1.1.1.2   darrenr 3540825 whois output parsing error for ipv6
     69  1.1.1.2   darrenr 3540814 ipfd_lock serves no purpose
     70  1.1.1.2   darrenr 3540810 lookup objects need tail pointers
     71  1.1.1.2   darrenr 3540809 refactor hash table lookups for nat
     72  1.1.1.2   darrenr 3540819 radix tree does not work with ipv6
     73  1.1.1.2   darrenr 3540820 mutex emulation should be logged
     74  1.1.1.2   darrenr 3540828 ipfstat filtering with -m fails tests
     75  1.1.1.2   darrenr 3536480 ippool could be more like the others
     76  1.1.1.2   darrenr 3536477 pool printing not uniform
     77  1.1.1.2   darrenr 3536483 flushing empty destination lists causes panic
     78  1.1.1.2   darrenr 3536481 more use of bzero after KMALLOC required
     79  1.1.1.2   darrenr 3536479 ipnat.conf line numbers not stored
     80  1.1.1.2   darrenr 3536484 Makefile missing dependency for ippool
     81  1.1.1.2   darrenr 3536199 TFTP proxy requires something extra
     82  1.1.1.2   darrenr 3536198 ICMP checksum out by one
     83  1.1.1.2   darrenr 3536203 ipnat does not return an error
     84  1.1.1.2   darrenr 3536201 ipf.conf parsing too address friendly
     85  1.1.1.2   darrenr 3536200 printing of bytes/packets not indented
     86  1.1.1.2   darrenr 3497941 ipv4 multicast detection incorrect on little endian
     87  1.1.1.2   darrenr 3535361 to interfaces printed out of order
     88  1.1.1.2   darrenr 3535363 ipf parser is inconsistent
     89  1.1.1.2   darrenr 3532306 deleting ipnat rules does not work
     90  1.1.1.2   darrenr 3532054 new error required for ipf_rx_create
     91  1.1.1.2   darrenr 3532053 icmp6 checksums wrong
     92  1.1.1.2   darrenr 3532052 icmpv6 state check with incorrect length
     93  1.1.1.2   darrenr 3531871 checksum verification wants too many icmp6 bytes
     94  1.1.1.2   darrenr 3531870 ipnat.conf parsing needs to support inet6
     95  1.1.1.2   darrenr 3532048 error in ipf group parsing
     96  1.1.1.2   darrenr 3531868 ICMPV6 checksum not validated
     97  1.1.1.2   darrenr 3531893 ipftest exits without error for bad input
     98  1.1.1.2   darrenr 3531890 whois pool parsing builds bad structures
     99  1.1.1.2   darrenr 3531891 icmpv6 text parsing ignorant of icmp types
    100  1.1.1.2   darrenr 3531653 rewrite with icmp does not work
    101  1.1.1.2   darrenr 3530563 NAT operations fail with EPERM
    102  1.1.1.2   darrenr 3530544 first pass at gcc -Wextra cleanup
    103  1.1.1.2   darrenr 3530540 lookup create functions do not set error properly
    104  1.1.1.2   darrenr 3530539 ipf_main_soft_destroy doesn't need 2nd arg
    105  1.1.1.2   darrenr 3530541 reorder structure for better packing
    106  1.1.1.2   darrenr 3530543 ipnat purge needs documentation
    107  1.1.1.2   darrenr 3530515 BSD upgrade script required
    108  1.1.1.2   darrenr 3528029 ipmon bad-mutex panic
    109  1.1.1.2   darrenr 3530247 loading address pools light on input validation
    110  1.1.1.2   darrenr 3530255 radix tree delete uses wrong lookup
    111  1.1.1.2   darrenr 3530254 radix tree allocation support wrong
    112  1.1.1.2   darrenr 3530264 ipmon prints qd for some 64bit numbers
    113  1.1.1.2   darrenr 3530260 decapsulate rules not printed correctly.
    114  1.1.1.2   darrenr 3530266 ipfstat -v/-d flags confused
    115  1.1.1.2   darrenr 2939220 why a packet is blocked is not discernable
    116  1.1.1.2   darrenr 2939218 output interface not recorded
    117  1.1.1.2   darrenr 2941850 use of destination lists with to/dup-to beneficial
    118  1.1.1.2   darrenr 3457747 build errors introduced with radix change
    119  1.1.1.2   darrenr 3535360 timeout groups leak
    120  1.1.1.2   darrenr 3535359 memory leak with tokens
    121  1.1.1.2   darrenr 3535358 listing rules in groups requires tracking groups
    122  1.1.1.2   darrenr 3535357 rule head removal is problematic
    123  1.1.1.2   darrenr 3530259 not all ioctl error checked wth SIOCIPFINTERROR
    124  1.1.1.2   darrenr 3530258 error routine that uses fd required
    125  1.1.1.2   darrenr 3530253 inadequate function comment blocks
    126  1.1.1.2   darrenr 3530249 walking lookup tables leaks memory
    127  1.1.1.2   darrenr 3530241 extra lock padding required for freebsd
    128  1.1.1.2   darrenr 3529901 ipf returns 0 when rules fail to load
    129  1.1.1.2   darrenr 3529491 checksum validation could be better
    130  1.1.1.2   darrenr 3529486 tcp checksum wrong for ipv6
    131  1.1.1.2   darrenr 3533779 ipv6 nat rules missing inet6 keyword
    132  1.1.1.2   darrenr 3532693 ipnat.conf rejects some ipv6 addresses
    133  1.1.1.2   darrenr 3532691 ipv4 should not be forced for icmp
    134  1.1.1.2   darrenr 3532689 ipv6 nat rules do not print inet6
    135  1.1.1.2   darrenr 3532688 ipv6 address always printed with "to <if>"
    136  1.1.1.2   darrenr 3532687 with v6hdrs not supported like with ipopts
    137  1.1.1.2   darrenr 3532686 ipf expressions do not work with ipv6
    138  1.1.1.2   darrenr 3540825 whois output parsing error for ipv6
    139  1.1.1.2   darrenr 3540818 NAT for certain IPv6 ICMP packets should not be allowed
    140  1.1.1.2   darrenr 3540815 memory leak with destination lists
    141  1.1.1.2   darrenr 3540814 ipfd_lock serves no purpose
    142  1.1.1.2   darrenr 3540810 lookup objects need tail pointers
    143  1.1.1.2   darrenr 3540809 refactor hash table lookups for nat
    144  1.1.1.2   darrenr 3540808 completed tokens do not stop iteration
    145  1.1.1.2   darrenr 3530492 address hash table name not used
    146  1.1.1.2   darrenr 3528029 ipmon bad-mutex panic
    147  1.1.1.2   darrenr 3530256 hook memory leaked
    148  1.1.1.2   darrenr 3530271 pools parsing produces badly formed address structures
    149  1.1.1.2   darrenr 3488061 cleanup for illumos build
    150  1.1.1.2   darrenr 3484434 SIOCIPFINTERROR must work for all devices
    151  1.1.1.2   darrenr 3484067 mandoc -Tlint warnings to be fixed
    152  1.1.1.2   darrenr 3483343 compile warning in ipfcomp.c
    153  1.1.1.2   darrenr 3482893 building without IPFILTER_LOG fails
    154  1.1.1.2   darrenr 3482765 building netbsd kernel without inet6 fails
    155  1.1.1.2   darrenr 3482116 ipf_check frees packet from ipftest
    156  1.1.1.2   darrenr 3481663 does not compile on solaris 11
    157  1.1.1.2   darrenr 
    158  1.1.1.2   darrenr 5.1.1 - RELEASED - 9 May 2012
    159  1.1.1.2   darrenr 
    160  1.1.1.2   darrenr 3481322 ip_fil_compat.c needs a cleanup
    161  1.1.1.2   darrenr 3481211 add user errors to dtrace
    162  1.1.1.2   darrenr 3481152 compatibility for 4.1 needs more work
    163  1.1.1.2   darrenr 3481153 PRIu64 problems on FreeBSD
    164  1.1.1.2   darrenr 3481155 ipnat listing incorrect
    165  1.1.1.2   darrenr 3480543 change leads to compat problems
    166  1.1.1.2   darrenr 3480538 compiler errors from earlier patch
    167  1.1.1.2   darrenr 3480537 ipf_instance_destroy is incomplete
    168  1.1.1.2   darrenr 3480536 _fini order leads to panic
    169  1.1.1.2   darrenr 3479991 compiler warnings about size mismatches
    170  1.1.1.2   darrenr 3479974 copyright dates are wrong (fix)
    171  1.1.1.2   darrenr 3479464 add support for leaks testing
    172  1.1.1.2   darrenr 3479457 %qu is not the prefered way
    173  1.1.1.2   darrenr 3479451 iterators leak memory
    174  1.1.1.2   darrenr 3479453 nat rules with pools leak
    175  1.1.1.2   darrenr 3479454 memory leak in hostmap table
    176  1.1.1.2   darrenr 3479461 load_hash uses memory after free
    177  1.1.1.2   darrenr 3479462 printpool leaks memory
    178  1.1.1.2   darrenr 3479452 missing FREE_MB_T to freembt leaks
    179  1.1.1.2   darrenr 3479450 ipfdetach is called when detached
    180  1.1.1.2   darrenr 3479448 group mapping rules memory leak
    181  1.1.1.2   darrenr 3479455 memory leak from tuning
    182  1.1.1.2   darrenr 3479458 ipf must be running in global zone
    183  1.1.1.2   darrenr 3479460 driver replace is wrong
    184  1.1.1.2   darrenr 3479459 radix tree tries to free null pointer
    185  1.1.1.2   darrenr 3479463 rwlock emulation does not free memory
    186  1.1.1.2   darrenr 3479465 parser leaks memory
    187  1.1.1.2   darrenr 3475959 hardware checksum not correctly used
    188  1.1.1.2   darrenr 3475426 ip pseudo checksum wrong
    189  1.1.1.2   darrenr 3473566 radix tree does not delete dups right
    190  1.1.1.2   darrenr 3472987 compile is not clean
    191  1.1.1.2   darrenr 3472337 not everything is zero'd
    192  1.1.1.2   darrenr 3472344 interface setup needs to be after insert
    193  1.1.1.2   darrenr 3472340 wildcard counter drops twice
    194  1.1.1.2   darrenr 3472338 change fastroute interface
    195  1.1.1.2   darrenr 3472335 kernel lock defines not placed correctly
    196  1.1.1.2   darrenr 3472324 ICMP INFOREQ/REPLY not handled
    197  1.1.1.2   darrenr 3472330 multicast packets tagged by address
    198  1.1.1.2   darrenr 3472333 ipf_deliverlocal called incorrectly
    199  1.1.1.2   darrenr 3472345 mutex debug could be more granular
    200  1.1.1.2   darrenr 3472761 building i19 regression is flawed
    201  1.1.1.2   darrenr 3456457 use of bsd tree.h needs to be removed
    202  1.1.1.2   darrenr 3460522 code cleanup required for building on freebsd
    203  1.1.1.2   darrenr 3459734 trade some cpu for memory
    204  1.1.1.2   darrenr 3457747 build errors introduced with radix change
    205  1.1.1.2   darrenr 3457804 build errors from removal of pcap-int,h
    206  1.1.1.2   darrenr 3440163 rewrite radix tree
    207  1.1.1.2   darrenr 3428004 snoop, tcpdump, etherfind readers are unused
    208  1.1.1.2   darrenr 3439495 ipf_rand_push never called (fix brackets)
    209  1.1.1.2   darrenr 3437732 getnattype does not need to use ipnat_t (fix variable name)
    210  1.1.1.2   darrenr 3437696 fr_cksum is a nightmare
    211  1.1.1.2   darrenr 3439061 ipf_send_ip doesn't need 3rd arg
    212  1.1.1.2   darrenr 3439059 ipid needs to be file local
    213  1.1.1.2   darrenr 3437740 complete buildout of fnew
    214  1.1.1.2   darrenr 3438575 add dtrace probes to block events
    215  1.1.1.2   darrenr 3438347 comment blocks missing softc
    216  1.1.1.2   darrenr 3437687 description of ipf_makefrip wrong
    217  1.1.1.2   darrenr 3438340 more stats as dtrace probes
    218  1.1.1.2   darrenr 3438316 free on nat structure uses fixed size
    219  1.1.1.2   darrenr 3437745 nat iterator using the wrong size
    220  1.1.1.2   darrenr 3437710 fail checksum verification if packet is short
    221  1.1.1.2   darrenr 3437696 fr_cksum is a nightmare
    222  1.1.1.2   darrenr 3437732 getnattype does not need to use ipnat_t
    223  1.1.1.2   darrenr 3437735 rename ipf_allocmbt to allocmbt
    224  1.1.1.2   darrenr 3437697 fr_family to version assignment is wrong
    225  1.1.1.2   darrenr 3437746 ap_session_t has unused fields
    226  1.1.1.2   darrenr 3437747 move softc structure to .h file (ip_state.c)
    227  1.1.1.2   darrenr 3437704 there is no DTRACE_PROBE5
    228  1.1.1.2   darrenr 3437748 wrong interface in qpktinfo_t
    229  1.1.1.2   darrenr 3437729 create function to hexdump mb_t
    230  1.1.1.2   darrenr 3438273 msgdsize should be easier to read
    231  1.1.1.2   darrenr 3437683 object direction not set for 32bit
    232  1.1.1.2   darrenr 3433767 calling ip_cksum could be easier
    233  1.1.1.2   darrenr 3433764 left over locking
    234  1.1.1.2   darrenr 3428015 printing proxy data size is useless
    235  1.1.1.2   darrenr 3428013 add M_ADJ to hide adjmsg/m_adj
    236  1.1.1.2   darrenr 3428012 interface name is not always returned correctly
    237  1.1.1.2   darrenr 3428002 ip_ttl is too low
    238  1.1.1.2   darrenr 3427997 ipft readers do not set buffer length
    239  1.1.1.2   darrenr 3426558 resistence is futile
    240  1.1.1.2   darrenr 3424495 various copy-paste errors
    241  1.1.1.2   darrenr 1826936 shall we allow ipf to be as dumb as its admin
    242  1.1.1.2   darrenr 3424477 specfuncs needs to go
    243  1.1.1.2   darrenr 3424484 missing fr_checkv6sum
    244  1.1.1.2   darrenr 3424478 one entry at a time
    245  1.1.1.2   darrenr 2998760 auth rules do not mix well with to/dup-to/fastroute
    246  1.1.1.2   darrenr 3424195 add ctfmerge to sunos5 makefile
    247  1.1.1.2   darrenr 3424132 some dtrace probes to start with
    248  1.1.1.2   darrenr 3423812 makefile needs ip_frag.h for some files
    249  1.1.1.2   darrenr 3423817 reference count useful in verbose output
    250  1.1.1.2   darrenr 3423800 walking lists does not drop reference
    251  1.1.1.2   darrenr 3423805 fragmentation stats not reported correclty
    252  1.1.1.2   darrenr 3423808 ip addresses reportied incorrectly with ipfstat -f
    253  1.1.1.2   darrenr 3423821 track packets and bytes for fragmentation
    254  1.1.1.2   darrenr 3423803 attempt to double free rule
    255  1.1.1.2   darrenr 3423805 fragmentation stats not reported correctly
    256  1.1.1.2   darrenr 3422712 system panic with ipfstat -f
    257  1.1.1.2   darrenr 3422619 pullup counter bumped for every packet
    258  1.1.1.2   darrenr 3422608 dummy rtentry required to build
    259  1.1.1.2   darrenr 3422018 frflush next to ipf_fini_all is redundant
    260  1.1.1.2   darrenr 3422012 instance cleanup is not clean
    261  1.1.1.2   darrenr 3421845 instance name not set
    262  1.1.1.2   darrenr 3005622 ip_fil5.1.0 does not load on Solaris 10 U8
    263  1.1.1.2   darrenr 2976332 stateful filtering is incompatible with ipv4 options
    264  1.1.1.2   darrenr 3387509 ipftest needs help construction ip packets with options
    265  1.1.1.2   darrenr 2998746 passp can never be null
    266  1.1.1.2   darrenr 3064034 mbuf clobbering problem with ipv6
    267  1.1.1.2   darrenr 3105725 ipnat divide by zero panic
    268  1.1.1.2   darrenr 2998750 ipf_htent_insert can leak memory
    269  1.1.1.2   darrenr 3064034 mbuf clobbering problem with ipv6
    270  1.1.1.2   darrenr 3105725 ipnat divie by zero panic
    271  1.1.1.2   darrenr 
    272      1.1  christos 5.1 - RELEASED - 9 May 2010
    273      1.1  christos 
    274      1.1  christos * See WhatsNew50.txt
    275      1.1  christos 
    276      1.1  christos 4.1 - RELEASED - 12 February 2004
    277      1.1  christos 
    278      1.1  christos 4.0-BETA1 20 August 2003
    279      1.1  christos 
    280      1.1  christos support 0/32 and 0/0 on the RHS in redirect rules
    281      1.1  christos 
    282      1.1  christos where LHS and RHS netmasks are the same size for redirect, do 1:1 mapping
    283      1.1  christos for bimap rules.
    284      1.1  christos 
    285      1.1  christos allow NAT rule to match 'all' interfaces with * as interface name
    286      1.1  christos 
    287      1.1  christos do mapping of ICMP sequence id#'s in pings
    288      1.1  christos 
    289      1.1  christos allow default age for NAT entries to be set per NAT rule
    290      1.1  christos 
    291      1.1  christos provide round robin selection of destination addresses for redirect
    292      1.1  christos 
    293      1.1  christos ipmon can load a configuration file with instructions on actions
    294      1.1  christos to take when a matching log entry is received
    295      1.1  christos 
    296      1.1  christos now requires pfil to work on Solaris & HP-UX
    297      1.1  christos 
    298      1.1  christos supports mapping outbound connections to a specific address/port
    299      1.1  christos 
    300      1.1  christos support toggling of logging per ipfilter 'device'
    301      1.1  christos 
    302      1.1  christos use queues to expire data rather than lists
    303      1.1  christos 
    304      1.1  christos add MSN RPC proxy
    305      1.1  christos 
    306      1.1  christos add IRC proxy
    307      1.1  christos 
    308      1.1  christos support rules with dynamic ip addresses
    309      1.1  christos 
    310      1.1  christos add ability to define a pool of addresses & networks which can then
    311      1.1  christos be placed in a single rule
    312      1.1  christos 
    313      1.1  christos support passing entire packet back to user program for authentication
    314      1.1  christos 
    315      1.1  christos support master/slave for state information sharing
    316      1.1  christos 
    317      1.1  christos reorganise generic code into a lib directory and make libipf.a
    318      1.1  christos 
    319      1.1  christos user programs enforce version matching with the kernel
    320      1.1  christos 
    321      1.1  christos supports window scaling if seen at TCP session setup
    322      1.1  christos 
    323      1.1  christos generates C code from filter rules to compile in or load as native
    324      1.1  christos machine code.
    325      1.1  christos 
    326      1.1  christos supports loading rules comprised of BPF bytecode statements
    327      1.1  christos 
    328      1.1  christos HP-UX 11 port completed
    329      1.1  christos 
    330      1.1  christos and packets-per-second filtering
    331      1.1  christos 
    332      1.1  christos add numerical tags to rules for filtering and display in ipmon output
    333      1.1  christos 
    334      1.1  christos 3.4.4 23/05/2000 - Released
    335      1.1  christos 
    336      1.1  christos don't add TCP state if it is an RST packet and (attempt) to send out
    337      1.1  christos RST/ICMP packets in a manner that bypasses IP Filter.
    338      1.1  christos 
    339      1.1  christos add patch to work with 4.0_STABLE delayed checksums
    340      1.1  christos 
    341      1.1  christos 3.4.3 20/05/2000 - Released
    342      1.1  christos 
    343      1.1  christos fix ipmon -F
    344      1.1  christos 
    345      1.1  christos don't truncate IPv6 packets on Solaris
    346      1.1  christos 
    347      1.1  christos fix keep state for ICMP ECHO
    348      1.1  christos 
    349      1.1  christos add some NAT stats and use def_nat_age rather than DEF_NAT_AGE
    350      1.1  christos 
    351      1.1  christos don't make ftp proxy drop packets
    352      1.1  christos 
    353      1.1  christos use MCLISREFERENCED() in tandem with M_EXT to check if IP fields need to be
    354      1.1  christos swapped back.
    355      1.1  christos 
    356      1.1  christos fix up RST generation for non-Solaris
    357      1.1  christos 
    358      1.1  christos get "short" flag right for IPv6
    359      1.1  christos 
    360      1.1  christos 3.4.2 - 10/5/2000 - Released
    361      1.1  christos 
    362      1.1  christos Fix bug in dealing with "hlen == 1 and opt > 1" - Itojun
    363      1.1  christos 
    364      1.1  christos ignore previous NAT mappings for 0/0 and 0/32 rules
    365      1.1  christos 
    366      1.1  christos bring in a completely new ftp proxy
    367      1.1  christos 
    368      1.1  christos allow NAT to cause packets to be dropped.
    369      1.1  christos 
    370      1.1  christos add NetBSD callout support for 1.4-current
    371      1.1  christos 
    372      1.1  christos 3.4.1 - 30/4/2000 - Released
    373      1.1  christos 
    374      1.1  christos add ratoui() and fix parsing of group numbers to allow 0 - UINT_MAX
    375      1.1  christos 
    376      1.1  christos don't include opt_inet6.h for FreeBSD if KLD_MODULE is defined
    377      1.1  christos 
    378      1.1  christos Solaris must use copyin() for all types of ioctl() args
    379      1.1  christos 
    380      1.1  christos fix up screen/tty when leaving "top mode" of ipfstat
    381      1.1  christos 
    382      1.1  christos linked list for maptable not setup correctly in nat_hostmap()
    383      1.1  christos 
    384      1.1  christos check for maptable rather than nat_table[1] to see if malloc for maptable
    385      1.1  christos succeeded in nat_init
    386      1.1  christos 
    387      1.1  christos fix handling of map NAT rules with "from/to" host specs
    388      1.1  christos 
    389      1.1  christos fix printout out of source address when using "from/to" with map rules
    390      1.1  christos 
    391      1.1  christos convert ip_len back to network byte order, not plen, for solaris as ip_len
    392      1.1  christos may have been changed by NAT and plen won't reflect this
    393      1.1  christos 
    394      1.1  christos 3.4 - 27/4/2000 - Released
    395      1.1  christos 
    396      1.1  christos source address spoofing can be turned on (fr_chksrc) without using
    397      1.1  christos filter rules
    398      1.1  christos 
    399      1.1  christos group numbers are now 32bits in size, up from 16bits
    400      1.1  christos 
    401      1.1  christos IPv6 filtering available
    402      1.1  christos 
    403      1.1  christos add frank volf's state-top patches
    404      1.1  christos 
    405      1.1  christos add load splitting and round-robin attribute to redirect rules
    406      1.1  christos 
    407      1.1  christos FreeBSD-4.0 support (including KLD)
    408      1.1  christos 
    409      1.1  christos add top-style operation mode for ipfstat (-t)
    410      1.1  christos 
    411      1.1  christos add save/restore of IP Filter state/NAT information (ipfs)
    412      1.1  christos 
    413      1.1  christos further ftp proxy security checks
    414      1.1  christos 
    415      1.1  christos support for adding and removing proxies at runtime
    416      1.1  christos 
    417      1.1  christos 3.3.13  26/04/2000 - Released
    418      1.1  christos 
    419      1.1  christos Fix parsing of "range" with "portmap"
    420      1.1  christos 
    421      1.1  christos Relax checking of ftp replies, slightly.
    422      1.1  christos 
    423      1.1  christos Fix NAT timeouts for ICMP packets
    424      1.1  christos 
    425      1.1  christos SunOS4 patches for ICMP redirects from Jurgen Keil (jk@tools.de)
    426      1.1  christos 
    427      1.1  christos 3.3.12  16/03/2000 - Released
    428      1.1  christos 
    429      1.1  christos tighten up ftp proxy behaviour.  sigh.  yuck.  hate.
    430      1.1  christos 
    431      1.1  christos fix bug in range check for NAT where the last IP# was not used.
    432      1.1  christos 
    433      1.1  christos fix problem with icmp codes > 127 in filter rules caused bad things to
    434      1.1  christos happen and in particular, where #18 caused the rule to be printed
    435      1.1  christos erroneously.
    436      1.1  christos 
    437      1.1  christos fix bug with the spl level not being reset when returning EIO from
    438      1.1  christos iplioctl due to ipfilter not being initialized yet.
    439      1.1  christos 
    440      1.1  christos 3.3.11  04/03/2000 - Released
    441      1.1  christos 
    442      1.1  christos make "or-block" work with lines that start with "log"
    443      1.1  christos 
    444      1.1  christos fix up parsing and printing of rules with syslog levels in them
    445      1.1  christos 
    446      1.1  christos fix from Cy Schubert for calling of apr_fini only if non-null
    447      1.1  christos 
    448      1.1  christos 
    449      1.1  christos 3.3.10	24/02/2000 - Released
    450      1.1  christos 
    451      1.1  christos * fix back from guido for state tracking interfaces
    452      1.1  christos 
    453      1.1  christos * update for NetBSD pfil interface changes
    454      1.1  christos 
    455      1.1  christos * if attaching fails and we can abort, then cleanup when doing so.
    456      1.1  christos 
    457      1.1  christos julian@computer.org:
    458      1.1  christos * solaris.c (fr_precheck): After calling freemsg on mt, set it point to *mp.
    459      1.1  christos * ipf.c (packetlogon): use flag to store the return value from get_flags.
    460      1.1  christos * ipmon.c (init_tabs): General cleanup so we do not have to cast
    461      1.1  christos   an int s->s_port to u_int port and try to check if the u_int port
    462      1.1  christos   is less than zero.
    463      1.1  christos 
    464      1.1  christos 3.3.9	15/02/2000 - Released
    465      1.1  christos 
    466      1.1  christos fix scheduling of bad locking in fr_addstate() used when we attach onto
    467      1.1  christos a filter rule.
    468      1.1  christos 
    469      1.1  christos fix up ip_statesync() with storing interface names in ipstate_t
    470      1.1  christos 
    471      1.1  christos fix fr_running for LKM's - Eugene Polovnikov
    472      1.1  christos 
    473      1.1  christos junk using pullupmsg() for solaris - it's next to useless for what we
    474      1.1  christos need to do here anyway - and implement what we require.
    475      1.1  christos 
    476      1.1  christos don't call fr_delstate() in fr_checkstate(), when compiled for a user
    477      1.1  christos program, early but when we're finished with it (got fr & pass)
    478      1.1  christos 
    479      1.1  christos ipnat(5) fix from Guido
    480      1.1  christos 
    481      1.1  christos on solaris2, copy message and use that with filter if there is another
    482      1.1  christos copy if it being used (db_ref > 1).  bad for performance, but better
    483      1.1  christos than causing a crash.
    484      1.1  christos 
    485      1.1  christos patch for solaris8-fcs compile from Casper Dik
    486      1.1  christos 
    487      1.1  christos 3.3.8	01/02/2000 - Released
    488      1.1  christos 
    489      1.1  christos fix state handling of SYN packets.
    490      1.1  christos 
    491      1.1  christos add parsing recognition of extra icmp types/codes and fix handling of
    492      1.1  christos icmp time stamps and mask requests - Frank volf
    493      1.1  christos 
    494      1.1  christos 3.3.7	25/01/2000 - Released
    495      1.1  christos 
    496      1.1  christos sync on state information as well as NAT information when required
    497      1.1  christos 
    498      1.1  christos record nat protocol in all nat log records
    499      1.1  christos 
    500      1.1  christos don't reuse the IP# from an active NAT session if the IP# in the rule
    501      1.1  christos has changed dynamically.
    502      1.1  christos 
    503      1.1  christos lookup the protocol for NAT log information in ipmon and pass that to
    504      1.1  christos portname.
    505      1.1  christos 
    506      1.1  christos fix the bug with changing the outbound interface of a packet where it
    507      1.1  christos would lead to a panic.
    508      1.1  christos 
    509      1.1  christos use fr_running instead of ipl_inited. (sysctl name change on freebsd)
    510      1.1  christos 
    511      1.1  christos return EIO if someone attempts an ioctl on state/nat if ipfilter is not
    512      1.1  christos enabled.
    513      1.1  christos 
    514      1.1  christos fix rule insertion bug
    515      1.1  christos 
    516      1.1  christos make state flushing clean anything that's not fully established (4/4)
    517      1.1  christos 
    518      1.1  christos call fr_state_flush() after we've released ipf_state so we don't generate
    519      1.1  christos a recursive mutex acquisition panic
    520      1.1  christos 
    521      1.1  christos fix parsing of icmp code after return-icmp/return-icmp-as-dest and add
    522      1.1  christos some patches to enhance parsing strength
    523      1.1  christos 
    524      1.1  christos 3.3.6	28/12/1999 - Released
    525      1.1  christos 
    526      1.1  christos add in missing rwlock release in fr_checkicmpmatchingstate() and fix check
    527      1.1  christos for ICMP_ECHO to only be for packet, not state entry which we don't have yet.
    528      1.1  christos 
    529      1.1  christos handle SIOCIPFFB in nat_ioctl() and fr_state_ioctl()
    530      1.1  christos 
    531      1.1  christos fix size of friostat for SunOS4
    532      1.1  christos 
    533      1.1  christos fix bug in running off the end of a buffer in real audio proxy
    534      1.1  christos 
    535      1.1  christos 3.3.5	11/12/1999 - Released
    536      1.1  christos 
    537      1.1  christos fix parsing of "log level" and printing it back out too
    538      1.1  christos 
    539      1.1  christos <net/if_types.h> is only present on Solaris2.6/7/8
    540      1.1  christos 
    541      1.1  christos use send_icmp_err rather than icmp_error to send back a frag-needed error
    542      1.1  christos when doing PMTU
    543      1.1  christos 
    544      1.1  christos do not use -b with add_drv on Solaris unless $BASEDIR is set.
    545      1.1  christos 
    546      1.1  christos fix problem where source address in icmp replies is reversed
    547      1.1  christos 
    548      1.1  christos fix yet another problem with real audio.
    549      1.1  christos 
    550      1.1  christos 3.3.4	4/12/1999 - Released
    551      1.1  christos 
    552      1.1  christos fix up the real audio proxy to properly setup state information and NAT
    553      1.1  christos entries, thanks to Laine Stump for testing/advice/fixes.
    554      1.1  christos 
    555      1.1  christos fix ipfr_fastroute to set dst->sin_addr (Sean Farley - appears to prevent
    556      1.1  christos FreeBSD 3.3 from panic'ing) as this had been removed in prior hacks to this
    557      1.1  christos routine.
    558      1.1  christos 
    559      1.1  christos fix kinstall for BSDI
    560      1.1  christos 
    561      1.1  christos support ICMP errors being allowed through for ICMP packets going out with
    562      1.1  christos keep state enabled
    563      1.1  christos 
    564      1.1  christos support hardware checksumming (gigabit ethernet cards) on Solaris thanks to
    565      1.1  christos Tel.Net Media for providing hardware for testing.
    566      1.1  christos 
    567      1.1  christos patched from Frank Volf for ipmon (ICMP & fragmented packets) and allowing
    568      1.1  christos ICMP responses to ICMP packets in the keep state table.
    569      1.1  christos 
    570      1.1  christos add in patches for hardware checksumming under solaris
    571      1.1  christos 
    572      1.1  christos Solaris install scripts now use $BASEDIR as appropriate.
    573      1.1  christos 
    574      1.1  christos add Solaris8 support
    575      1.1  christos 
    576      1.1  christos fix "ipf -y" on solaris so that it rescans rules also for changes in
    577      1.1  christos interface pointers
    578      1.1  christos 
    579      1.1  christos let ipmon become a daemon with -D if it is using syslog
    580      1.1  christos 
    581      1.1  christos fix parsing of return-icmp-as-dest(foo)
    582      1.1  christos 
    583      1.1  christos add reference to ipfstat -g to ipfstat.8
    584      1.1  christos 
    585      1.1  christos ipf_mutex needs to be declared for irix in ip_fil.c
    586      1.1  christos 
    587      1.1  christos 3.3.3	22/10/1999 - Released
    588      1.1  christos 
    589      1.1  christos add -g command line option to ipfstat to show groups still define.
    590      1.1  christos 
    591      1.1  christos fix problem with fragment table not recording rule pointer when called
    592      1.1  christos from state functions (fin_fr not set).
    593      1.1  christos 
    594      1.1  christos fixup fastroute problems with keep state rules.
    595      1.1  christos 
    596      1.1  christos load rules into inactive set first, so we don't disable things like NIS
    597      1.1  christos lookups half way through processing - found by Kevin Littlejohn
    598      1.1  christos 
    599      1.1  christos fix handling of unaligned ip pointer for solaris
    600      1.1  christos 
    601      1.1  christos patch for fr_newauth from Rudi Sluijtman
    602      1.1  christos 
    603      1.1  christos fixed htons() bug in fr_tcpsum() where ip_p wasn't cast to u_short
    604      1.1  christos 
    605      1.1  christos 3.3.2	23/09/1999 - Released
    606      1.1  christos 
    607      1.1  christos patches from Scott Presnell to fix rcmd proxy
    608      1.1  christos 
    609      1.1  christos patches from Greg to fix Solaris detachment of interfaces
    610      1.1  christos 
    611      1.1  christos add openbsd compatibility fixes
    612      1.1  christos 
    613      1.1  christos fix free'ing already freed memory in ipfr_slowtimer()
    614      1.1  christos 
    615      1.1  christos fix for deferencing invalid memory in cleaning up after a device disappears
    616      1.1  christos 
    617      1.1  christos 3.3.1	14/8/1999 - Released
    618      1.1  christos 
    619      1.1  christos remove include file sys/user.h for irix
    620      1.1  christos 
    621      1.1  christos prevent people from running buildsunos directly
    622      1.1  christos 
    623      1.1  christos fix up some problems with the saving of rule pointers so that NAT saves
    624      1.1  christos that information in case it should need to call fr_addstate() from a proxy.
    625      1.1  christos 
    626      1.1  christos fix up scanning for the end of FTP messages
    627      1.1  christos 
    628      1.1  christos don't remove /etc/opt/ipf in postremove
    629      1.1  christos 
    630      1.1  christos attempt to prevent people running buildsolaris script without doing a
    631      1.1  christos "make solaris"
    632      1.1  christos 
    633      1.1  christos fix timeout losing on freebsd3
    634      1.1  christos 
    635      1.1  christos 3.3	7/8/1999 - Released
    636      1.1  christos 
    637      1.1  christos NAT: information (rules, mappings) are stored in hash tables; setup some
    638      1.1  christos basic NAT regression testing.
    639      1.1  christos 
    640      1.1  christos display version name of installed kernel code when initializing.
    641      1.1  christos 
    642      1.1  christos add -V command line option to ipf, showing version (program and kernel
    643      1.1  christos module) as well as the run-status of the kernel code.
    644      1.1  christos 
    645      1.1  christos fix problem with "log" rules actually affecting result of filtering.
    646      1.1  christos 
    647      1.1  christos automatically use SUNWspro if available and on a 64bit Solaris system for
    648      1.1  christos compiling.
    649      1.1  christos 
    650      1.1  christos add kernel proxies for rcmd(3) and RealAudio (PNA)
    651      1.1  christos 
    652      1.1  christos use timeout/untimeout on SunOS4/BSD platforms too rather than hijacking
    653      1.1  christos ip_slowtimo
    654      1.1  christos 
    655      1.1  christos fix IP headers generated through parsing of text information
    656      1.1  christos 
    657      1.1  christos fix NAT rules to be in the correct order again.
    658      1.1  christos 
    659      1.1  christos make keep-state work with to/fastroute keywords and enforce usage of those
    660      1.1  christos interfaces.
    661      1.1  christos 
    662      1.1  christos update keep-state code with new algorithm from Guido
    663      1.1  christos 
    664      1.1  christos add FreeBSD-3 support
    665      1.1  christos 
    666      1.1  christos add return-icmp-as-dest option to retrun an ICMP packet using the original
    667      1.1  christos destination as the source rather than a local IP address
    668      1.1  christos 
    669      1.1  christos add "level [facility.]<priority>" option to filter language
    670      1.1  christos 
    671      1.1  christos add changes from Guido to state code.
    672      1.1  christos 
    673      1.1  christos add code to return EPERM if the device is opened for writing and we're
    674      1.1  christos in securelevel 2 or greater.
    675      1.1  christos 
    676      1.1  christos authentication code patches from Guido
    677      1.1  christos 
    678      1.1  christos fix real audio proxy
    679      1.1  christos 
    680      1.1  christos fix ipmon rule printing of interfaces and add IN/OUT to the end of ipmon
    681      1.1  christos log output.
    682      1.1  christos 
    683      1.1  christos fix bimap rules with hash tables
    684      1.1  christos 
    685      1.1  christos update addresses used in NAT mappings for 0/32 rules for any protocol but TCP
    686      1.1  christos if it changes on the interface - check every ip_natexpire()
    687      1.1  christos 
    688      1.1  christos add redirect regression test
    689      1.1  christos 
    690      1.1  christos count buckets used in the state hash table.
    691      1.1  christos 
    692      1.1  christos fix sending of RST's with return-rst to use the ack number provided in
    693      1.1  christos the packet being replied to in addition to the sequence number.
    694      1.1  christos 
    695      1.1  christos fix to compile as a 64bit application on solaris7-64bit
    696      1.1  christos 
    697      1.1  christos add NAT IP mapping to ranges of IP addresses that aren't CIDR specified
    698      1.1  christos 
    699      1.1  christos fix calculation of in_space parameter for NAT
    700      1.1  christos 
    701      1.1  christos fix `wrapping' when incrementing the next ip address for use in NAT
    702      1.1  christos 
    703      1.1  christos fix free'ing of kernel memory in ip_natunload on solaris
    704      1.1  christos 
    705      1.1  christos fix -l/-U command line options from interfering with each other
    706      1.1  christos 
    707      1.1  christos fix fastroute under solaris2 and cleanup compilation for solaris7
    708      1.1  christos 
    709      1.1  christos add install scripts and compile cleanly on BSD/OS 4.0
    710      1.1  christos 
    711      1.1  christos safely open files in /tmp for writing device output when testing.
    712      1.1  christos 
    713      1.1  christos fix uninitialized pointer bug in NAT
    714      1.1  christos 
    715      1.1  christos fix SIOCZRLST (zero list rule stats) bug with groups
    716      1.1  christos 
    717      1.1  christos change some usage of u_short to u_int in function calling
    718      1.1  christos 
    719      1.1  christos fix compilation for Solaris7 (SUNWspro)
    720      1.1  christos 
    721      1.1  christos change solaris makefiles to build for either sparc or i386 rather than
    722      1.1  christos per-cpu (sun4u, etc).
    723      1.1  christos 
    724      1.1  christos fixed bug in ipllog
    725      1.1  christos 
    726      1.1  christos add patches from George Michaelson for FreeBSD 3.0
    727      1.1  christos 
    728      1.1  christos add patch from Guido to provide ICMP checking for known state in the same
    729      1.1  christos manner as is done for NAT.
    730      1.1  christos 
    731      1.1  christos enable FTP PASV proxying and enable wildcarding in NAT/state code for ports
    732      1.1  christos for better PORT/PASV support with FTP.
    733      1.1  christos 
    734      1.1  christos bring into main tree static nat features: map-block and "auto" portmapping.
    735      1.1  christos 
    736      1.1  christos add in source host filtering for redirects (alan jones)
    737      1.1  christos 
    738      1.1  christos 3.2.10		22/11/98 - Released
    739      1.1  christos 
    740      1.1  christos 3.2.10beta9	17/11/98 - Released
    741      1.1  christos 
    742      1.1  christos fix fr_tcpsum problems in handling mbufs with an odd number of bytes
    743      1.1  christos and/or split across an mbuf boundary
    744      1.1  christos 
    745      1.1  christos fix NAT list entry comparisons and allow multiple entries for the same
    746      1.1  christos proxy (but on different ports).
    747      1.1  christos 
    748      1.1  christos don't create duplicate NAT entries for repeated PORT commands.
    749      1.1  christos 
    750      1.1  christos 3.2.10beta8	14/11/98 - Released
    751      1.1  christos 
    752      1.1  christos always exit an rwlock before expecting to enter it again on solaris
    753      1.1  christos 
    754      1.1  christos fix loop in nat_new for pre-existing nat
    755      1.1  christos 
    756      1.1  christos don't setup state for an ftp connection if creating nat fails.
    757      1.1  christos 
    758      1.1  christos 3.2.10beta7	05/11/98 - Released
    759      1.1  christos 
    760      1.1  christos set fake window in ipft_tx.c to ensure code passes tests.
    761      1.1  christos 
    762      1.1  christos cleaned up/enhanced ipnat -l/ipnat -lv output
    763      1.1  christos 
    764      1.1  christos fixed NAT handling of non-TCP/UDP packets, esp. for ICMP errors returned.
    765      1.1  christos 
    766      1.1  christos Solaris recusive mutex on icmp-error/tcp-reset - requires rwlock's rather
    767      1.1  christos than mutexes.
    768      1.1  christos 
    769      1.1  christos 3.2.10beta6	03/11/98 - Released
    770      1.1  christos 
    771      1.1  christos fix mixed use of krwlock_t and kmutex_t on Solaris2
    772      1.1  christos 
    773      1.1  christos fix FTP proxy back up, splitting pasv code out of port code.
    774      1.1  christos 
    775      1.1  christos 3.2.10beta5	02/11/98 - Released
    776      1.1  christos 
    777      1.1  christos fixed port translation in ICMP reply handling
    778      1.1  christos 
    779      1.1  christos 3.2.10beta4	01/11/98 - Released
    780      1.1  christos 
    781      1.1  christos increase useful statistic collection on solaris
    782      1.1  christos 
    783      1.1  christos filter DL_UNITDATA_REQ as well as DL_UNITDATA_IND on solaris
    784      1.1  christos 
    785      1.1  christos disable PASV reply translation for now
    786      1.1  christos 
    787      1.1  christos fail with an error if we try to load a NAT rule with a non-existant
    788      1.1  christos    proxy name - Guido
    789      1.1  christos 
    790      1.1  christos fix portmap usage with 0/0 and 0/32 map rules
    791      1.1  christos 
    792      1.1  christos remove ap_unload/ap_expire - automatically done when NAT is cleaned up
    793      1.1  christos 
    794      1.1  christos print "STATE:CLOSED" from ipmon if the connection progresses past established
    795      1.1  christos    rather than "STATE:EXPIRED"
    796      1.1  christos 
    797      1.1  christos 3.2.10beta3	26/10/98 - Released
    798      1.1  christos 
    799      1.1  christos fixed traceroute/nat problem
    800      1.1  christos 
    801      1.1  christos rewrote nat/proxy interface
    802      1.1  christos 
    803      1.1  christos ipnat now lists associated proxy sessions for each NAT where applicable
    804      1.1  christos 
    805      1.1  christos 3.2.10beta2	13/10/98 - Released
    806      1.1  christos 
    807      1.1  christos use KRWLOCK_T in place of krwlock_t for solaris as well as irix
    808      1.1  christos 
    809      1.1  christos disable use of read-write lock acquisition by default
    810      1.1  christos 
    811      1.1  christos add in mb_t for linux, non-kernel
    812      1.1  christos 
    813      1.1  christos some changes to progress compilation on linux with glibc
    814      1.1  christos 
    815      1.1  christos change PASV as well as PORT when passed through kernel ftp proxy.
    816      1.1  christos 
    817      1.1  christos don't allow window to become 0 in tcp state code
    818      1.1  christos 
    819      1.1  christos make ipmon compile cleaner
    820      1.1  christos 
    821      1.1  christos irix patches
    822      1.1  christos 
    823      1.1  christos 3.2.10beta	11/09/98 - Released
    824      1.1  christos 
    825      1.1  christos stop fr_tcpsum() thinking it has run out of data when it hasn't.
    826      1.1  christos 
    827      1.1  christos stop solaris panics due to fin_dp being something wild.
    828      1.1  christos 
    829      1.1  christos revisit usage of ATOMIC_*()
    830      1.1  christos 
    831      1.1  christos log closing state of TCP connection in "keep state"
    832      1.1  christos 
    833      1.1  christos fix fake-arp table code for ipsend.
    834      1.1  christos 
    835      1.1  christos ipmon now writes pid to a file.
    836      1.1  christos 
    837      1.1  christos fix "ipmon -a" to actually activate all logging devices.
    838      1.1  christos 
    839      1.1  christos add patches for BSDOS4.
    840      1.1  christos 
    841      1.1  christos perl scripts for log analysis donated.
    842      1.1  christos 
    843      1.1  christos 3.2.9	22/06/98 - Released
    844      1.1  christos 
    845      1.1  christos fix byte order for ICMP packets generated on Solaris
    846      1.1  christos 
    847      1.1  christos fix some locking problems.
    848      1.1  christos 
    849      1.1  christos fix malloc bug in NAT (introduced in 3.2.8).
    850      1.1  christos 
    851      1.1  christos patch from guido for state connections that get fragmented
    852      1.1  christos 
    853      1.1  christos 3.2.8	08/06/98 - Released
    854      1.1  christos 
    855      1.1  christos use readers/writers locks in Solaris2 in place of some mutexes.
    856      1.1  christos 
    857      1.1  christos Solaris2 installation enhancements - Martin Forssen (maf@carlstedt.se)
    858      1.1  christos 
    859      1.1  christos 3.2.7	24/05/98 - Released
    860      1.1  christos 
    861      1.1  christos u_long -> u_32_t conversions
    862      1.1  christos 
    863      1.1  christos patches from Bernd Ernesti for NetBSD
    864      1.1  christos 
    865      1.1  christos fixup ipmon to actually handle HUP's.
    866      1.1  christos 
    867      1.1  christos Linux fixes from Michael H. Warfield (mhw (at] wittsend.com)
    868      1.1  christos 
    869      1.1  christos update for keep state patch (not security related) - Guido
    870      1.1  christos 
    871      1.1  christos dumphex() uses stdout rather than log
    872      1.1  christos 
    873      1.1  christos 3.2.6	18/05/98 - Released
    874      1.1  christos 
    875      1.1  christos fix potential security loop hole in keep state code.
    876      1.1  christos 
    877      1.1  christos update examples.
    878      1.1  christos 
    879      1.1  christos 3.2.5	09/05/98 - Released
    880      1.1  christos 
    881      1.1  christos BSD/OS 3.1 .o files added for the kernel.
    882      1.1  christos 
    883      1.1  christos fix sequence # skew vs window size check.
    884      1.1  christos 
    885      1.1  christos fix minimum ICMP header size check.
    886      1.1  christos 
    887      1.1  christos remove references to Cybersource.
    888      1.1  christos 
    889      1.1  christos fix my email address.
    890      1.1  christos 
    891      1.1  christos remove ntohl in ipnat - Thomas Tornblom
    892      1.1  christos 
    893      1.1  christos 3.2.4	09/04/98 - Released
    894      1.1  christos 
    895      1.1  christos add script to make devices for /dev on BSD boxes
    896      1.1  christos 
    897      1.1  christos fixup building into the kernel for FreeBSD 2.2.5
    898      1.1  christos 
    899      1.1  christos add -D command line option to ipmon to make it a daemon and SIGHUP causes
    900      1.1  christos it to close and reopen the logfile
    901      1.1  christos 
    902      1.1  christos fixup make clean and make package for SunOS5 - Marc Boucher
    903      1.1  christos 
    904      1.1  christos postinstall keeps adding "minor=ipf ipl" - George Ross <gdmr (at] dcs.ed.ac.uk>
    905      1.1  christos 
    906      1.1  christos protected by IP Filter gif - Sergey Solyanik <solik (at] atom.ru>
    907      1.1  christos 
    908      1.1  christos 3.2.3	10/11/97 - Released
    909      1.1  christos 
    910      1.1  christos fix some iplang bugs
    911      1.1  christos 
    912      1.1  christos fix tcp checksum data overrun, sgi #define changes,
    913      1.1  christos avoid infinite loop when nat'ing to single IP# - Marc Boucher
    914      1.1  christos 
    915      1.1  christos fixup DEVFS usage for FreeBSD
    916      1.1  christos 
    917      1.1  christos fix sunos5 "make clean" cleaning up too much
    918      1.1  christos 
    919      1.1  christos 3.2.2	28/11/97 - Released
    920      1.1  christos 
    921      1.1  christos change packet matching to return actual error, if bad packet, to facilitate
    922      1.1  christos ECONNRESET for TCP.
    923      1.1  christos 
    924      1.1  christos allow ip:netmask in grammar too now - Guido
    925      1.1  christos 
    926      1.1  christos assume IRIX has u_int32_t in sys/types.h (needed for R10000)
    927      1.1  christos 
    928      1.1  christos rewrite parts of command line options for ipmon
    929      1.1  christos 
    930      1.1  christos fix TCP urgent packet & offset testing and add LAND attack test for iptest
    931      1.1  christos 
    932      1.1  christos fix grammar error in yacc grammar for iplang
    933      1.1  christos 
    934      1.1  christos redirect (rdr) destination port bytes-wapped when it shouldn't be.
    935      1.1  christos 
    936      1.1  christos general: fr_check now returns error code, such as EHOSTUNREACH or
    937      1.1  christos ECONNRESET (attempt to make ECONNRESET work for locally outbound
    938      1.1  christos packets).
    939      1.1  christos 
    940      1.1  christos linux: enable return-rst, need to filter tcp retransmits which are sent
    941      1.1  christos        separately from normal packets
    942      1.1  christos 
    943      1.1  christos memory leak plugged in ip_proxy.c
    944      1.1  christos 
    945      1.1  christos BSDI compatibility patches from Guido
    946      1.1  christos 
    947      1.1  christos tcp checksum fix - Marc Boucher
    948      1.1  christos 
    949      1.1  christos recursive mutex and ioctl param fix - Marc Boucher
    950      1.1  christos 
    951      1.1  christos 3.2.1	12/11/97 - Released
    952      1.1  christos 
    953      1.1  christos port to BSD/OS 3.0
    954      1.1  christos 
    955      1.1  christos port to Linux 2.0.31
    956      1.1  christos 
    957      1.1  christos patches to make "map a/m -> 0/0" work with ftp proxying properly - Marc Boucher
    958      1.1  christos 
    959      1.1  christos add "ipf -F s" and "ipf -F S" to flush state table entries.
    960      1.1  christos 
    961      1.1  christos announce if logging is on or off when ip filter initializes.
    962      1.1  christos 
    963      1.1  christos "ipf -F a" doesn't flush groups properly for Solaris.
    964      1.1  christos 
    965      1.1  christos 3.2		30/10/97 - Released
    966      1.1  christos 
    967      1.1  christos ipnat doesn't successfully remove proxy mappings with "-rf" -
    968      1.1  christos Alexander Romanyu
    969      1.1  christos 
    970      1.1  christos use K&R C function style for solaris kernel code
    971      1.1  christos 
    972      1.1  christos use m_adj() to decrease packet size in ftp proxy
    973      1.1  christos 
    974      1.1  christos use mbufchainlen rather than msgdsize,
    975      1.1  christos IRIX update - Marc Boucher
    976      1.1  christos 
    977      1.1  christos fix NetBSD modunload bug (pfil_add_hook done twice)
    978      1.1  christos 
    979      1.1  christos patches for OpenBSD 2.1 - Craig Bevins <craigb (at] bitcom.net.au>
    980      1.1  christos 
    981      1.1  christos 3.2beta10	24/10/97 - Released
    982      1.1  christos 
    983      1.1  christos fix fragment table entries allocated for NAT.
    984      1.1  christos 
    985      1.1  christos fix tcp checksum calculations over mbuf/mblk boundaries
    986      1.1  christos 
    987      1.1  christos fix panic for blen < 0 in ftp kernel proxy - marc boucher
    988      1.1  christos 
    989      1.1  christos fix flushing of rules which have been grouped.
    990      1.1  christos 
    991      1.1  christos 3.2beta9	20/10/97 - Released
    992      1.1  christos 
    993      1.1  christos some nit picking on solaris2 with SUNWspro - Michael Lyle <mrl (at] rpnet.net>
    994      1.1  christos 
    995      1.1  christos ftp kernel proxy patches from Marc Boucher
    996      1.1  christos 
    997      1.1  christos 3.2beta8	13/10/97 - Released
    998      1.1  christos 
    999      1.1  christos add support for passing ICMP errors back through NAT.
   1000      1.1  christos 
   1001      1.1  christos IRIX port update - Marc Boucher
   1002      1.1  christos 
   1003      1.1  christos calculate correct MIN size of packet to log for UDP - Marc Boucher
   1004      1.1  christos 
   1005      1.1  christos need htons(ETHERTYPE_x) on little endian BSD boxes - Dave Huang
   1006      1.1  christos 
   1007      1.1  christos copyright header fixups
   1008      1.1  christos 
   1009      1.1  christos 3.2beta7	23/09/97 - Released
   1010      1.1  christos 
   1011      1.1  christos fickup problems introduced by prior merges & changes.
   1012      1.1  christos 
   1013      1.1  christos 3.2beta6	23/09/97 - Released
   1014      1.1  christos 
   1015      1.1  christos patch for spin-reading race condition - Marc Boucher.
   1016      1.1  christos 
   1017      1.1  christos IRIX port by Marc Boucher.
   1018      1.1  christos 
   1019      1.1  christos compatibility updates for Linux to ipsend
   1020      1.1  christos 
   1021      1.1  christos 3.2beta5	13/09/97 - Released
   1022      1.1  christos 
   1023      1.1  christos patches from Bernd Ernesti for NetBSD integration (mostly prototyping and
   1024      1.1  christos compiler warning things)
   1025      1.1  christos 
   1026      1.1  christos ipf -y will resync IP#'s allocated with 0/32 in NAT to match interface if it
   1027      1.1  christos changes.
   1028      1.1  christos 
   1029      1.1  christos update manual pages and other documentation updates.
   1030      1.1  christos 
   1031      1.1  christos 3.2beta4	27/8/97 - Released
   1032      1.1  christos 
   1033      1.1  christos enable setting IP and TCP options for iplang/
   1034      1.1  christos 
   1035      1.1  christos Solaris2 patches from Marc Boucher.
   1036      1.1  christos 
   1037      1.1  christos add groups for filter rules.
   1038      1.1  christos 
   1039      1.1  christos 3.2beta3	21/8/97 - Released
   1040      1.1  christos 
   1041      1.1  christos patches for Solaris2 (interface panic solution ?): fix FIONREAD and
   1042      1.1  christos replacing q_qinfo points - Marc Boucher <marc@CAM.ORG>
   1043      1.1  christos 
   1044      1.1  christos change ipsend/* and ipsd/* copyright notices to be the same as ip filter's
   1045      1.1  christos 
   1046      1.1  christos patch for SYN-ACK skew testing fix from Eric V. Smith <EricSmith (at] windsor.com>
   1047      1.1  christos 
   1048      1.1  christos 3.2beta2	6/8/97 - Released
   1049      1.1  christos 
   1050      1.1  christos make it load on Solaris 2.3
   1051      1.1  christos 
   1052      1.1  christos rewrote logging to remove solaris errors, introduced checking to see if the
   1053      1.1  christos same packet is logged successively.
   1054      1.1  christos 
   1055      1.1  christos fix filter cache to work when there are no rules loaded.
   1056      1.1  christos 
   1057      1.1  christos add "raw" option to ipresend to send entire ethernet frames.
   1058      1.1  christos 
   1059      1.1  christos nat list corruption bug - NetBSD - Klaus Klein
   1060      1.1  christos 
   1061      1.1  christos 3.2beta1	5/7/97 - Released
   1062      1.1  christos 
   1063      1.1  christos patches from Jason Thorpe fixing: UNSIGNED_CHAR lossage, off_t being 64bits
   1064      1.1  christos lossage, and other NetBSD bits.
   1065      1.1  christos 
   1066      1.1  christos NetBSD 1.2G update.
   1067      1.1  christos 
   1068      1.1  christos fixup fwtk patches and add protocol field for SIOCGNATL.
   1069      1.1  christos 
   1070      1.1  christos rdr bugs reported by Alexander Romanyu (alexr (at] aix.krid.crimea.ua), with
   1071      1.1  christos fixes:
   1072      1.1  christos * rdr matched all packets of a given protocol (ignored ports).
   1073      1.1  christos * severe bug in nat_delete which caused system crash/freeze.
   1074      1.1  christos 
   1075      1.1  christos change Makefile so that CC isn't passed on for FreeBSD/NetBSD (will use
   1076      1.1  christos the default CC - cc, not gcc)
   1077      1.1  christos 
   1078      1.1  christos 3.2alpha9	16/6/97 - Released
   1079      1.1  christos 
   1080      1.1  christos added "skip" keyword.
   1081      1.1  christos 
   1082      1.1  christos implement preauthentication of packets, as outlined by Guido.
   1083      1.1  christos 
   1084      1.1  christos Make it compile as cleanly as possible with -Wall & general code cleanup
   1085      1.1  christos 
   1086      1.1  christos getopt returns int, not char. Bernd Ernesti
   1087      1.1  christos 
   1088      1.1  christos 3.2alpha8	13/6/97 - Released
   1089      1.1  christos 
   1090      1.1  christos code added to support "auth" rules which require a user program to allow them
   1091      1.1  christos through.  First revision and much of the code came from Guido.
   1092      1.1  christos 
   1093      1.1  christos hex output from ipmon doesn't goto syslog when recovering from out of sync
   1094      1.1  christos error.  Luke Mewburn (lukem (at] connect.com.au)
   1095      1.1  christos 
   1096      1.1  christos fix solaris2.6 lookup of destination ire's.
   1097      1.1  christos 
   1098      1.1  christos ipnat doesn't throw away unused bits (after masking), causing it to
   1099      1.1  christos behave incorrectly. Carson Gaspar
   1100      1.1  christos 
   1101      1.1  christos NAT code doesn't include inteface name when matching - Alexey Mavrin
   1102      1.1  christos <lha@elco.spb.ru>
   1103      1.1  christos 
   1104      1.1  christos replace old SunOS tcpip.h with new tcpip.h (from 4.4BSD) - Jason Thorpe.
   1105      1.1  christos 
   1106      1.1  christos update install procedures to include ip_proxy.c
   1107      1.1  christos 
   1108      1.1  christos mask out unused bits in NAT/RDR rules.
   1109      1.1  christos 
   1110      1.1  christos use a generic type (u_32_t) for 32bit variables, rather than rely on
   1111      1.1  christos u_long being such - Jason Thorpe.
   1112      1.1  christos 
   1113      1.1  christos create a local "netinet" directory and include from ~netinet/*" rather than
   1114      1.1  christos just "*" to make keeping the code working on ports easier.
   1115      1.1  christos 
   1116      1.1  christos add an m_copydata and m_copyback for SunOS4 (based on 4.4BSD-Lite versions)
   1117      1.1  christos 
   1118      1.1  christos documentation updates.
   1119      1.1  christos 
   1120      1.1  christos NetBSD update from Jason Thorpe <thorpej (at] netbsd.org>
   1121      1.1  christos 
   1122      1.1  christos allow RST's through with a matching SEQ # and 0 ACK.  Guido Van Rooij
   1123      1.1  christos 
   1124      1.1  christos ipmon uses excessive amounts of CPU on Solaris2 - Reinhard Bertram
   1125      1.1  christos <Reinhard.Bertram (at] KOM.th-darmstadt.de>
   1126      1.1  christos 
   1127      1.1  christos 3.2alpha7	25/5/97 - Released
   1128      1.1  christos 
   1129      1.1  christos add strlen for pre-2.2 kernels - Doug Kite <dkite (at] websgi.icomnet.com>
   1130      1.1  christos 
   1131      1.1  christos setup bits and pieces for compiling into a FreeBSD-2.2 kernel.
   1132      1.1  christos 
   1133      1.1  christos split up "bsd" targets.  Now a separate netbsd/freebsd/bsd target.
   1134      1.1  christos mln_ipl.c has been split up into itself and mlf_ipl.c (for freebsd).
   1135      1.1  christos 
   1136      1.1  christos fix (negative) host matching in filtering.
   1137      1.1  christos 
   1138      1.1  christos add sysctl interface for some variables when compiled into FreeBSD-2.2 kernels
   1139      1.1  christos or later.
   1140      1.1  christos 
   1141      1.1  christos make all the candidates for kernel compiling include "netinet/..." and build
   1142      1.1  christos a subdirectory "netinet" when compiling and symlink all .h files into this.
   1143      1.1  christos 
   1144      1.1  christos add install make target to Makefile.ipsend
   1145      1.1  christos 
   1146      1.1  christos 3.2alpha6	8/5/97 - Released
   1147      1.1  christos 
   1148      1.1  christos Add "!" (not) to hostname/ip matching.
   1149      1.1  christos 
   1150      1.1  christos Automatically add packet info to the fragment cache if it is a fragment
   1151      1.1  christos and we're translating addreses for.
   1152      1.1  christos 
   1153      1.1  christos Automatically add packet info to the fragment cache if it is a fragment
   1154      1.1  christos and we're "keeping state" for the packet.
   1155      1.1  christos 
   1156      1.1  christos Solaris2 patches - Anthony Baxter (arb (at] connect.com.au)
   1157      1.1  christos 
   1158      1.1  christos change install procedure for FreeBSD 2.2 to allow building to a kernel
   1159      1.1  christos which is different to the running kernel.
   1160      1.1  christos 
   1161      1.1  christos add FIONREAD for Solaris2!
   1162      1.1  christos 
   1163      1.1  christos when expiring NAT table entries, if we would set a time to fr_tcpclosed
   1164      1.1  christos (which is 1), make it fr_tcplaskack(20) so that the state tables have a
   1165      1.1  christos chance to clear up.
   1166      1.1  christos 
   1167      1.1  christos 3.2alpha5
   1168      1.1  christos 
   1169      1.1  christos add proxying skeleton support and sample ftp transparent proxy code.
   1170      1.1  christos 
   1171      1.1  christos add printfs at startup to tell user what is happening.
   1172      1.1  christos 
   1173      1.1  christos add packets & bytes for EXPIRE NAT log records.
   1174      1.1  christos 
   1175      1.1  christos fix the "install-bsd" target in the root Makefile. Chris Williams
   1176      1.1  christos <psion (at] mv.mv.com>
   1177      1.1  christos 
   1178      1.1  christos Fixes for FreeBSD 2.2 (and later revs) to prevent panics.  Julian Assange.
   1179      1.1  christos 
   1180      1.1  christos 3.2alpha4	2/4/97 - Released
   1181      1.1  christos 
   1182      1.1  christos Some compiler warnings cleaned up.
   1183      1.1  christos 
   1184      1.1  christos FreeBSD-2.2 patches for LKM completed.
   1185      1.1  christos 
   1186      1.1  christos 3.2alpha3	31/3/97 - Released
   1187      1.1  christos 
   1188      1.1  christos ipmon changes: -N for reading NAT logfile, -S for reading state logfile.
   1189      1.1  christos -a for reading all.  -n now toggles hostname resolution.
   1190      1.1  christos 
   1191      1.1  christos Add logging of new state entries and expiration of old state entries.
   1192      1.1  christos count log successes and failures.
   1193      1.1  christos 
   1194      1.1  christos Add logging of new NAT entries and expiration of old NAT entries.
   1195      1.1  christos count log successes and failures.
   1196      1.1  christos 
   1197      1.1  christos Use u_quad_t for records of bytes & packets where kept
   1198      1.1  christos (IP Accounting: fr_hits, fr_bytes; IP state: is_pkts, is_bytes).
   1199      1.1  christos 
   1200      1.1  christos Fixup use of CPU and DCPU in Makefiles.
   1201      1.1  christos 
   1202      1.1  christos Fix broken 0/32 NAT mapping. Carl Makin <cmakin (at] nla.gov.au>
   1203      1.1  christos 
   1204      1.1  christos 3.2alpha2
   1205      1.1  christos 
   1206      1.1  christos Implement mapping to 0/32 as being an alias for automatically using the
   1207      1.1  christos interface's first IP address.
   1208      1.1  christos 
   1209      1.1  christos Implement separate minor devices for both NAT and IP state code.
   1210      1.1  christos 
   1211      1.1  christos Fully prototype all functions.
   1212      1.1  christos 
   1213      1.1  christos Fix Makefile problem due to attempt to fix Sun compiling problems.
   1214      1.1  christos 
   1215      1.1  christos 3.1.10		23/3/97 - Released
   1216      1.1  christos 
   1217      1.1  christos ipfstat -a requires a -i or -o command line option too.  Print an error
   1218      1.1  christos when not present rather than attempt to do something.
   1219      1.1  christos 
   1220      1.1  christos patch updates for SunOS4 for kernel compiling.
   1221      1.1  christos patch for ipmon -s (flush's syslog file which isn't good).  Andrew J. Schorr
   1222      1.1  christos <schorr (at] ead.dsa.com>
   1223      1.1  christos 
   1224      1.1  christos too many people hit their heads hard when compiling code into the kernel
   1225      1.1  christos that doesn't let any packets through. (fil.c - IPF_NOMATCH)
   1226      1.1  christos 
   1227      1.1  christos icmp-type parsing doesn't return any errors when it isn't constructed
   1228      1.1  christos correctly.  Neil Readwin
   1229      1.1  christos 
   1230      1.1  christos Using "-conf" with modload on SunOS4 doesn't work.
   1231      1.1  christos Timothy Demarest <demarest (at] arraycomm.com>
   1232      1.1  christos 
   1233      1.1  christos Need to define ARCH in makefile for SunOS4 building.  "make sunos4"
   1234      1.1  christos in INSTALL.SunOS is incorrect. James R Grinter <jrg (at] blodwen.demon.co.uk>
   1235      1.1  christos [all SunOS targets now run buildsunos]
   1236      1.1  christos 
   1237      1.1  christos NAT lookups are still incorrect, matching non-TCP/UDP with TCP/UDP
   1238      1.1  christos information. ArkanoiD <ark (at] paranoid.convey.ru>
   1239      1.1  christos 
   1240      1.1  christos Need to check for __FreeBSD_version being 199511 rather than 199607
   1241      1.1  christos in mln_ipl.c. Eric Feillant <Eric.Feillant (at] EUnet.fr>
   1242      1.1  christos 
   1243      1.1  christos 3.1.9		8/3/97 - Released
   1244      1.1  christos 
   1245      1.1  christos fixed incorrect lookup of active NAT entries.
   1246      1.1  christos 
   1247      1.1  christos patch for ip_deq() wrong for pre 2.1.6 FreeBSD.
   1248      1.1  christos fyeung (at] fyeung8.netific.com (Francis Yeung)
   1249      1.1  christos 
   1250      1.1  christos check for out with return-rst/return-icmp at wrong place - Erkki Ritoniemi
   1251      1.1  christos (erkki (at] vlsi.fi)
   1252      1.1  christos 
   1253      1.1  christos text_readip returns the interface pointer pointing to text on stack -
   1254      1.1  christos Neil Readwin
   1255      1.1  christos 
   1256      1.1  christos fix from Pradeep Krishnan for printout rules "with not opt sec".
   1257      1.1  christos 
   1258      1.1  christos 3.1.8		18/2/97 - Released
   1259      1.1  christos 
   1260      1.1  christos Diffs for ip_output.c and ip_input.c updated to fix bug with fastroute and
   1261      1.1  christos compiling warnings about reuse of m0.
   1262      1.1  christos 
   1263      1.1  christos prevent use of return-rst and return-icmp with rules blocking packets going
   1264      1.1  christos out, preventing panics in certain situations.
   1265      1.1  christos 
   1266      1.1  christos loop forms in frag cache table - Yury Pshenychny <yura (at] rd.zgik.zaporizhzhe.ua>
   1267      1.1  christos 
   1268      1.1  christos should use SPLNET/SPLX around expire routines in NAT/frag/state code.
   1269      1.1  christos 
   1270      1.1  christos redeclared malloc in 44arp.c -
   1271      1.1  christos 
   1272      1.1  christos 3.1.7		8/2/97 - Released
   1273      1.1  christos 
   1274      1.1  christos Macros used for ntohs/htons supplied with gcc don't always work very well
   1275      1.1  christos when the assignment is the same variable being converted.
   1276      1.1  christos 
   1277      1.1  christos Filter matching doesn't not match rule which checks tcp flags on packets
   1278      1.1  christos which are fragments - David Wilson
   1279      1.1  christos 
   1280      1.1  christos 3.1.7beta	30/1/97 - Released
   1281      1.1  christos 
   1282      1.1  christos Fix up NAT bugs introduced in last major change (now tested), including
   1283      1.1  christos nat_delete(), nat_lookupredir(), checksum changes, etc.
   1284      1.1  christos 
   1285      1.1  christos 3.1.7alpha	30/1/97 - Released
   1286      1.1  christos 
   1287      1.1  christos Many changes to NAT code, including contributions from Laurent Joncheray
   1288      1.1  christos <lpj (at] ans.net>
   1289      1.1  christos 
   1290      1.1  christos Use "NO_SLEEP" when allocating memory under SunOS.
   1291      1.1  christos 
   1292      1.1  christos Make kernel printf's nicer for BSD/SunOS4
   1293      1.1  christos 
   1294      1.1  christos Always do a checksum for packets being filtered going out and being
   1295      1.1  christos processed by fastroute.
   1296      1.1  christos 
   1297      1.1  christos Leave kernel to play with cdevsw on *BSD systems with LKM's.
   1298      1.1  christos 
   1299      1.1  christos ipnat.1 man page fixes.
   1300      1.1  christos 
   1301      1.1  christos 3.1.6		21/1/97 - Released
   1302      1.1  christos 
   1303      1.1  christos Allow NAT to work on BSD systems in conjunction with "pass .. to ifname"
   1304      1.1  christos 
   1305      1.1  christos Memory leak introduced in 3.1.3 in NAT lists, clearing of NAT table tried
   1306      1.1  christos to free memory twice.
   1307      1.1  christos 
   1308      1.1  christos NAT recalculates IP header checksum based on difference between IP#'s and
   1309      1.1  christos port numbers - should be just IP#'s (Solaris2 only)
   1310      1.1  christos 
   1311      1.1  christos 3.1.5		13/1/97 - Released
   1312      1.1  christos 
   1313      1.1  christos fixed setting of NAT timeouts and use different timeouts for concurrent
   1314      1.1  christos TCP sessions using the same IP# mapping (when port mapping isn't used)
   1315      1.1  christos 
   1316      1.1  christos multiple loading/unloading of LKM's doesn't clean up cdevsw properly for
   1317      1.1  christos *BSD systems.
   1318      1.1  christos 
   1319      1.1  christos 3.1.4		10/1/97	- Released
   1320      1.1  christos 
   1321      1.1  christos add command line options -C and -F to ipnat to flush NAT list and table
   1322      1.1  christos 
   1323      1.1  christos ipnat -l loops on output - Neil Readwin (nreadwin (at] nysales.micrognosis.com)
   1324      1.1  christos 
   1325      1.1  christos NetBSD/FreeBSD kernel malloc changes - Daniel Carosone
   1326      1.1  christos 
   1327      1.1  christos 3.1.3		10/1/97 - Released
   1328      1.1  christos 
   1329      1.1  christos NAT chains not constructed correctly in hash tables - Antony Y.R Lu
   1330      1.1  christos (antony (at] hawk.ee.ncku.edu.tw)
   1331      1.1  christos 
   1332      1.1  christos Updated INSTALL.NetBSD, INSTALL.FreeBSD and INSTALL.Sol2
   1333      1.1  christos 
   1334      1.1  christos man page update (ipf.5) from Daniel Carosone (dan (at] geek.com.au)
   1335      1.1  christos 
   1336      1.1  christos ICMP header checksum update now included in NAT.
   1337      1.1  christos 
   1338      1.1  christos Solaris2 needs to modify IP header checksums in ip_natin and ip_natout.
   1339      1.1  christos 
   1340      1.1  christos 3.1.2		4/12/96 - Released
   1341      1.1  christos 
   1342      1.1  christos ipmon doesn't use syslog all the time when given -s option
   1343      1.1  christos 
   1344      1.1  christos fixed mclput panic in ip_input.c and replace ntohs() with NTOHS() macro
   1345      1.1  christos 
   1346      1.1  christos check the results of hostname resolution in ipnat
   1347      1.1  christos 
   1348      1.1  christos "make *install" fixed for subdirectories.
   1349      1.1  christos 
   1350      1.1  christos problems with "ARCH:=" and gnu make resolved
   1351      1.1  christos 
   1352      1.1  christos parser reports an error for lines with whitespaces only rather than skipping
   1353      1.1  christos them. D.Carosone (at] abm.com.au (Daniel Carosone)
   1354      1.1  christos 
   1355      1.1  christos patches for integration into NetBSD-current (post 1.2).
   1356      1.1  christos 
   1357      1.1  christos add an option to allow non-IP packets going up/down the stream on Solaris2
   1358      1.1  christos to be dropped. John Bass.
   1359      1.1  christos 
   1360      1.1  christos 3.1.2beta	21/11/96 - Released
   1361      1.1  christos 
   1362      1.1  christos make ipsend compile on Linux 2.0.24
   1363      1.1  christos 
   1364      1.1  christos changes to TCP kept state algorithm, making it watch state on TCP
   1365      1.1  christos connections in both directions.  Also use the same algorithm for NAT TCP.
   1366      1.1  christos 
   1367      1.1  christos -Wall cleanup - Bernd Ernesti
   1368      1.1  christos 
   1369      1.1  christos added "or-block" for "pass .. log or-block" after a suggestion from
   1370      1.1  christos David Oppenheim (davido (at] optimation.com.au)
   1371      1.1  christos 
   1372      1.1  christos added subdirectories for building IP Filter in SunOS5/BSD for different
   1373      1.1  christos cpu architecures
   1374      1.1  christos 
   1375      1.1  christos Solaris2 fixes to logging and pre-filtering packet processing - 3.1.1p2
   1376      1.1  christos 
   1377      1.1  christos mbuf logging not using mtod(), remove iplbusy - 3.1.1p1		1/11/96
   1378      1.1  christos 
   1379      1.1  christos 3.1.1		28/10/96 - Released
   1380      1.1  christos 
   1381      1.1  christos Installation script fixes and deinstall scripts for IP Filter on:
   1382      1.1  christos SunOS4/FreeBSD/NetBSD
   1383      1.1  christos 
   1384      1.1  christos Man page fixes - Paul Dubois (dubois (at] primate.wisc.edu)
   1385      1.1  christos 
   1386      1.1  christos Fix use of SOLARIS macro in ipmon, rewrote ipllog() (again!)
   1387      1.1  christos 
   1388      1.1  christos parsing isn't completely case insensitive - David Wilson
   1389      1.1  christos (davidw (at] optimation.com.au)
   1390      1.1  christos 
   1391      1.1  christos Release ipl_mutex across uiomove() calls
   1392      1.1  christos 
   1393      1.1  christos print entire rule entries out for "ipf -z" when zero'ing per-rule stats.
   1394      1.1  christos 
   1395      1.1  christos ipfstat returns same output for "hits" in "ipfstat -aio" - Terletsky Slavik
   1396      1.1  christos (ts (at] polynet.lviv.ua)
   1397      1.1  christos 
   1398      1.1  christos New algorithm for setting timeouts for TCP connection (more closely follow
   1399      1.1  christos TCP FSM) - Pradeep Krishnan (pkrishna (at] netcom.com)
   1400      1.1  christos 
   1401      1.1  christos Track both window sizes for TCP connections through "keep state".
   1402      1.1  christos 
   1403      1.1  christos Solaris2 doesn't like _KERNEL defined in stdargs.h - Jos van Wezel
   1404      1.1  christos (wezel (at] bio.vu.nl)
   1405      1.1  christos 
   1406      1.1  christos 3.1.1-beta2	6/10/96 - Released
   1407      1.1  christos 
   1408      1.1  christos Solaris2 fastroute/dup-to/to now works
   1409      1.1  christos 
   1410      1.1  christos ipmon `record' reading rewritten
   1411      1.1  christos 
   1412      1.1  christos Added post-NetBSD1.2 packet filter patches - Mathew Green (mrg (at] eterna.com.au)
   1413      1.1  christos 
   1414      1.1  christos Attempt to use in_proto.c.diff, not "..diffs" for SunOS4 - David Wilson
   1415      1.1  christos (davidw (at] optimation.com.au)
   1416      1.1  christos 
   1417      1.1  christos Michael Ryan (mike (at] NetworX.ie) reports the following:
   1418      1.1  christos * The Trumpet WinSock under Windows always sends its SYN packet with an ACK
   1419      1.1  christos   value of 1, unlike any other implementation I've seen, which would set it
   1420      1.1  christos   to zero.  The "keep state" feature of IP Filter doesn't work when receiving
   1421      1.1  christos   non-zero ACK values on new connection requests.
   1422      1.1  christos * */Makefile install rule doesn't install all the binaries/man pages
   1423      1.1  christos * Make ipnat use "tcp/udp" instead of "tcpudp"
   1424      1.1  christos * Print out "tcp/udp" properly
   1425      1.1  christos * ipnat "portmap tcp" matches "portmap udp" when adding/removing
   1426      1.1  christos * NAT dest. ip# increased by one on mask of 0xffffffff when it shouldn't
   1427      1.1  christos 
   1428      1.1  christos 3.1.1-beta	1/9/96 - Released
   1429      1.1  christos 
   1430      1.1  christos add better detection of TCP connections closing to TCP state monitoring.
   1431      1.1  christos 
   1432      1.1  christos fr_addstate() not called correctly for fragments.  "keep state" and
   1433      1.1  christos "keep frag" code don't work together 100% - Songqing Cai
   1434      1.1  christos (songqing_cai (at] sterling.com)
   1435      1.1  christos 
   1436      1.1  christos call to fr_addstate() incorrect for adding state in combination with keeping
   1437      1.1  christos fragment information - Songqing Cai (songqing_cai (at] sterling.com)
   1438      1.1  christos 
   1439      1.1  christos KFREE() passed fp (incorrect) and not fr (correct) in ip_frag.c - John Hood
   1440      1.1  christos (cgull (at] smoke.marlboro.vt.us)
   1441      1.1  christos 
   1442      1.1  christos make ipf parser recognise '\\' as a `continued line' marker - Dima Ruban
   1443      1.1  christos (dima@best.net)
   1444      1.1  christos 
   1445      1.1  christos 3.1.1-alpha	23/8/96 - Released
   1446      1.1  christos 
   1447      1.1  christos kernel panic's when ICMP packets go through NAT code
   1448      1.1  christos 
   1449      1.1  christos stats aren't zero'd properly with ipf -Z
   1450      1.1  christos 
   1451      1.1  christos ipnat doesn't show port numbers correctly all the time and also add the
   1452      1.1  christos protocol (tcp/udp/tcpudp) to rdr output - Carson Gaspar (carson@lehman.com)
   1453      1.1  christos 
   1454      1.1  christos fast checksum fixing not 100% - backout patch - Bill Dorsey (dorsey@lila.com)
   1455      1.1  christos 
   1456      1.1  christos NetBSD-1.2 patches from - VaX#n8 <vax (at] linkdead.paranoia.com>
   1457      1.1  christos 
   1458      1.1  christos Usage() call error in fils.c - Ajay Shekhawat (ajay@cedar.buffalo.edu)
   1459      1.1  christos 
   1460      1.1  christos ip_optcopy() staticly defined in ip_output.c in SunOS4 - Nick Hall
   1461      1.1  christos (nrh@tardis.ed.ac.uk)
   1462      1.1  christos 
   1463      1.1  christos 3.1.0		7/7/96 - Released
   1464      1.1  christos 
   1465      1.1  christos Reformatted ipnat output to be compatible with it's input, so that
   1466      1.1  christos "ipnat -l | ipnat -rf -" is possible.
   1467      1.1  christos 
   1468      1.1  christos 3.1.0beta	30/6/96 - Released
   1469      1.1  christos 
   1470      1.1  christos NetBSD-1.2 patches from Greg Woods (woods (at] most.weird.com)
   1471      1.1  christos 
   1472      1.1  christos kernel module must not be installed stripped (Solaris2), as created by
   1473      1.1  christos "make package" for Solaris2 - Peter Heimann
   1474      1.1  christos (peter (at] i3.informatik.rwth-aachen.de)
   1475      1.1  christos 
   1476      1.1  christos 3.1.0alpha	5/6/96 - Released
   1477      1.1  christos 
   1478      1.1  christos include examples in package for solaris2
   1479      1.1  christos 
   1480      1.1  christos patches for removing an extra ip header checksum (FreeBSD/NetBSD/SunOS)
   1481      1.1  christos 
   1482      1.1  christos removed trailing space from printouts of rules in ipf.
   1483      1.1  christos 
   1484      1.1  christos ipresend supports the same range of inputs that ipftest does.
   1485      1.1  christos 
   1486      1.1  christos sending a duplicate copy of a packet to another network devices is now
   1487      1.1  christos supported. ("dup-to")
   1488      1.1  christos 
   1489      1.1  christos sending a packet to an arbitary interface is now supported, irrespective
   1490      1.1  christos of its actual route, with no ttl decrement.  Can also be routed without
   1491      1.1  christos the ttl being decremented. ("to" and "fastroute").
   1492      1.1  christos 
   1493      1.1  christos "call" option added to support calling a generic function if a packet is
   1494      1.1  christos matched.
   1495      1.1  christos 
   1496      1.1  christos show all (upto 4) recorded bytes from the interface name in logging from
   1497      1.1  christos ipmon.
   1498      1.1  christos 
   1499      1.1  christos support for using unix file permissions for read/write access on the device
   1500      1.1  christos is now in place.
   1501      1.1  christos 
   1502      1.1  christos recursive mutex in nat_new() for Solaris 2.x - Per L. Hagen <per (at] stibo.dk>
   1503      1.1  christos 
   1504      1.1  christos ipftest doesn't call initparse() for THISHOST - Catherine Allen
   1505      1.1  christos (cla@connect.com.au)
   1506      1.1  christos 
   1507      1.1  christos Man page corrections from Rex Bona (rex@pengo.comsmiths.com.au)
   1508      1.1  christos 
   1509      1.1  christos 3.0.4		10/4/96 - Released
   1510      1.1  christos 
   1511      1.1  christos looop in `parsing' IP packets with optlen 0 for ip options.
   1512      1.1  christos 
   1513      1.1  christos rule number not initialized and resulted in unexpected results for state
   1514      1.1  christos maching.
   1515      1.1  christos 
   1516      1.1  christos option parsing and printing bugs - Pradeep Krishnan
   1517      1.1  christos 
   1518      1.1  christos 3.0.4beta	25/3/96	- Released
   1519      1.1  christos 
   1520      1.1  christos wouldn't parse "keep flags keep state" correctly.
   1521      1.1  christos 
   1522      1.1  christos SunOS4.1.x ip_input.c doesn't recognise all 1s broadcast address - Nigel Verdon
   1523      1.1  christos 
   1524      1.1  christos patches for BSDI's BSD/OS 2.1 and libpcap reader on little endian systems
   1525      1.1  christos from Thorsten Lockert <tholo (at] tetherless.com>
   1526      1.1  christos 
   1527      1.1  christos b* functions in fil.c on Solaris 2.4
   1528      1.1  christos 
   1529      1.1  christos 3.0.3	17/3/96 - Released
   1530      1.1  christos 
   1531      1.1  christos added patches to support IP Filter initialisation when compiled into the
   1532      1.1  christos kernel.
   1533      1.1  christos 
   1534      1.1  christos added -x option to ipmon to display hex dumps of logged packets.
   1535      1.1  christos 
   1536      1.1  christos added -H option to ipftest to allow ascii-hex formatted input to specify
   1537      1.1  christos arbitary IP packets.
   1538      1.1  christos 
   1539      1.1  christos Sending TCP RSTs as a response now work for Solaris2 x86
   1540      1.1  christos 
   1541      1.1  christos add patches to make IP Filter compile into NetBSD kernels properly.
   1542      1.1  christos 
   1543      1.1  christos patch to stop SunOS 4.1.x kernels panicing with "data traps".
   1544      1.1  christos 
   1545      1.1  christos ipfboot script unloads and reloads ipf module on Solaris2 if it is already
   1546      1.1  christos loaded into the kernel.
   1547      1.1  christos 
   1548      1.1  christos Installation of IP Filter as a Solaris2 package is now supported.
   1549      1.1  christos 
   1550      1.1  christos Man pages for ipnat.4, ipnat.5 added.
   1551      1.1  christos 
   1552      1.1  christos added some more regression tests and fixed up IP Filter to pass the new tests
   1553      1.1  christos (previous versions failed some of the tests in set 12).
   1554      1.1  christos 
   1555      1.1  christos IP option filter processing has changed so that saying "with opt lsrr" will
   1556      1.1  christos check only for that one, but not mask out other options, so a packet with
   1557      1.1  christos strict source routing, along with loose source routing will match all of
   1558      1.1  christos "with opt lsrr", "with opt ssrr" and "with opt lsrr,ssrr".
   1559      1.1  christos 
   1560      1.1  christos IPL_NAME needed in ipnat.c - Kelly (kelly (at] count04.mry.scruznet.com)
   1561      1.1  christos 
   1562      1.1  christos patches for clean NetBSD compilation from Bernd Ernesti (bernd (at] arresum.inka.de)
   1563      1.1  christos 
   1564      1.1  christos make install is incorrect - Julian Briggs (julian (at] lightwork.co.uk)
   1565      1.1  christos 
   1566      1.1  christos strtol() returns 0x7fffffff for all negative numbers,
   1567      1.1  christos printfr() generates incorrect output for "opt sec-class *",
   1568      1.1  christos handling of "not opt xxx opt yyy" incorrect.
   1569      1.1  christos - Minh Tonthat (minht (at] sbei.com)/Pradeep Krishnan (pradeepk (at] sbei.com)
   1570      1.1  christos 
   1571      1.1  christos m_pullup() called only for input and not output; caused problems
   1572      1.1  christos with filtering icmp - Nigel Verdon (verdenn (at] gb.swissbank.com)
   1573      1.1  christos 
   1574      1.1  christos parsing problem for "port 1" and NetBSD patches incorrect -
   1575      1.1  christos Andreas Gustafsson (gson (at] guava.araneus.fi)
   1576      1.1  christos 
   1577      1.1  christos 3.0.2	4/2/96 - Released
   1578      1.1  christos 
   1579      1.1  christos Corrected bug where NAT recalculates checksums for fragments.
   1580      1.1  christos 
   1581      1.1  christos make NAT recalculate UDP checksums (rather than setting them to 0),
   1582      1.1  christos if they're non-zero.
   1583      1.1  christos 
   1584      1.1  christos DNS patches - Real Page (Real.Page (at] Matrox.com)
   1585      1.1  christos 
   1586      1.1  christos alteration of checksum recalculations in NAT code and addition of
   1587      1.1  christos redirection with NAT - Mike Neuman
   1588      1.1  christos 
   1589      1.1  christos core dump, if tcp/udp is used with a port number and not service name,
   1590      1.1  christos in ipf - Mike Neuman (mcn (at] engarde.com)
   1591      1.1  christos 
   1592      1.1  christos initparse() call, missing to prime "<thishost>" hook - Craig Bishop
   1593      1.1  christos 
   1594      1.1  christos 3.0.1	14/1/96 - Released
   1595      1.1  christos 
   1596      1.1  christos miscellaneous patches for Solaris2
   1597      1.1  christos 
   1598      1.1  christos 3.0	14/1/96	- Released
   1599      1.1  christos 
   1600      1.1  christos Patch included for FDDI, from Richard Ohnemus
   1601      1.1  christos (Richard_Ohnemus (at] dallas.csd.sterling.com)
   1602      1.1  christos 
   1603      1.1  christos Code cleanup for release.
   1604      1.1  christos 
   1605      1.1  christos 3.0beta4 10/1/96
   1606      1.1  christos 
   1607      1.1  christos recursive mutex in ipfr_slowtimer fixed, reported by Craig Bishop
   1608      1.1  christos 
   1609      1.1  christos recursive mutex in sending TCP RSTs fixed, reported by Tony Becker
   1610      1.1  christos 
   1611      1.1  christos 3.0beta3 9/1/96
   1612      1.1  christos 
   1613      1.1  christos FIxup for Solaris2.5 install and interface name bug in ipftest from
   1614      1.1  christos Julian Briggs (julian (at] lightwork.co.uk)
   1615      1.1  christos 
   1616      1.1  christos Byte order patches for ipmon from Tony Becker (tony (at] mcrsys.com)
   1617      1.1  christos 
   1618      1.1  christos 3.0beta2 7/1/96
   1619      1.1  christos 
   1620      1.1  christos Added the (somewhat warped) IP accounting as it exists in ipfw on FreeBSD.
   1621      1.1  christos Note, this isn't really what one would call IP account, when compared to
   1622      1.1  christos process accounting, sigh.
   1623      1.1  christos 
   1624      1.1  christos Split up ipresend into iptest/ipresend/ipsend
   1625      1.1  christos 
   1626      1.1  christos Added another m_pullup() inside fr_check() for BSD style kernels and
   1627      1.1  christos added some checks to ipllog() to not log more than is present (for short
   1628      1.1  christos packets).
   1629      1.1  christos 
   1630      1.1  christos Fixed bug where failed hostname/netname resolution goes undetecte and
   1631      1.1  christos becomes 0.0.0.0 (any) (reported Guido van Rooij)
   1632      1.1  christos 
   1633      1.1  christos 3.0beta	11/11/95	- Released
   1634      1.1  christos 
   1635      1.1  christos Rewrote the way rule testing is done, reducing the number of files needed and
   1636      1.1  christos generated.
   1637      1.1  christos 
   1638      1.1  christos SIOCIPFFL was incorrectly affected by IPFILTER_LOG (Mathew Green)
   1639      1.1  christos 
   1640      1.1  christos Patches from Guido van Rooij to fix sending back TCP RSTs on Net-2/Net-3
   1641      1.1  christos BSD based Unixes (panic'd)
   1642      1.1  christos 
   1643      1.1  christos Patches for FreeBSD/i86 ipmon from Riku Kalinen <riku (at] tequila.nixu.fi>
   1644      1.1  christos (I think someone else already told me about these but they got lost :-/)
   1645      1.1  christos 
   1646      1.1  christos Changed Makefile structure to build object files for different operating
   1647      1.1  christos systems in separate directories by default.
   1648      1.1  christos 
   1649      1.1  christos BSDI has ef0 for first ethernet interface
   1650      1.1  christos 
   1651      1.1  christos Allow for a "not" operator before optional keywords.
   1652      1.1  christos 
   1653      1.1  christos The "rule number" was being incorrectly incremented every time it went through
   1654      1.1  christos the loop rather than when it matched a rule.
   1655      1.1  christos 
   1656      1.1  christos 2.8.2	24/10/95	- Released
   1657      1.1  christos 
   1658      1.1  christos Fixed up problems with "textip" for doing lots of testing.
   1659      1.1  christos 
   1660      1.1  christos Fixed bug in detection of "short" tcp/ip packets (all reported as being short).
   1661      1.1  christos 
   1662      1.1  christos Solaris 2.4 port now works 100%.
   1663      1.1  christos 
   1664      1.1  christos Man page errors reported and fixed.
   1665      1.1  christos 
   1666      1.1  christos Removed duplicate entry in etc/services for login on port 49 (Craig Bishop).
   1667      1.1  christos 
   1668      1.1  christos Fixed ipmon output to put a space after the log-letter.
   1669      1.1  christos 
   1670      1.1  christos Patch from Guido van Rooij to fix parsing problem.
   1671      1.1  christos 
   1672      1.1  christos 2.8.1	15/10/95	- Released
   1673      1.1  christos 
   1674      1.1  christos Added ttl and tos filtering.
   1675      1.1  christos 
   1676      1.1  christos Patches for fixing up compilation and port problems (little endian)
   1677      1.1  christos from Guido van Rooij <guido (at] IAEhv.nl>.
   1678      1.1  christos 
   1679      1.1  christos Man page problems reported and fixed by Carson Gaspar <carson (at] lehman.com>.
   1680      1.1  christos 
   1681      1.1  christos ipsend doesn't compile properly on Solaris2.4
   1682      1.1  christos 
   1683      1.1  christos Lots of work done for Solaris2.4 to make it MT/MP safe and work.
   1684      1.1  christos 
   1685      1.1  christos 2.8	15/9/95		- Released
   1686      1.1  christos 
   1687      1.1  christos ipmon can now send messages to syslogd (-s) and use names instead of
   1688      1.1  christos numbers (-N).
   1689      1.1  christos 
   1690      1.1  christos IP packets are now "compiled" into a structure only containing filterable
   1691      1.1  christos bits.
   1692      1.1  christos 
   1693      1.1  christos Added regression testing in the test/ subdirectory, using a new option
   1694      1.1  christos (-b) with the ipftest program.
   1695      1.1  christos 
   1696      1.1  christos Added "nomatch" return to filter results.  These are counted and show
   1697      1.1  christos up in reports from ipfstat.
   1698      1.1  christos 
   1699      1.1  christos Moved filter code out of ip_fil.c and into fil.c - there is now only one
   1700      1.1  christos instance of it in the package.
   1701      1.1  christos 
   1702      1.1  christos Added Solaris 2.4 support.
   1703      1.1  christos 
   1704      1.1  christos Added IPSO basic security option filtering.
   1705      1.1  christos 
   1706      1.1  christos Added name support for filtering on all 19 named IP options.
   1707      1.1  christos 
   1708      1.1  christos Patches from Ivan Brawley to log packet contents as well as packet headers.
   1709      1.1  christos 
   1710      1.1  christos Update for sun/conf.c.diff from Ivan Brawley <ibrawley (at] awadi.com.AU>
   1711      1.1  christos 
   1712      1.1  christos Added patches for FreeBSD 1, and added two new switches (-E, -D) to ipf,
   1713      1.1  christos along with a new ioctl, SIOCFRENB.
   1714      1.1  christos From: Dieter Dworkin Muller <dworkin (at] village.org>
   1715      1.1  christos 
   1716      1.1  christos 2.7.3	31/7.95		- Released
   1717      1.1  christos 
   1718      1.1  christos Didn't compile cleanly without IPFILTER_LOG defined (Mathew Green).
   1719      1.1  christos 
   1720      1.1  christos ipftest now deals with tcpdump3 binary output files (from libpcap) with -P.
   1721      1.1  christos 
   1722      1.1  christos Brought ipftest program upto date with actual filter code.
   1723      1.1  christos 
   1724      1.1  christos Filter would cause a match to occur when it wasn't meant to if the packet
   1725      1.1  christos had short headers and was missing portions that should have been there.
   1726      1.1  christos Err, it would rightly not match on them, but their absence caused a match
   1727      1.1  christos when it shouldn't have been.
   1728      1.1  christos 
   1729      1.1  christos 2.7.2	26/7/95		- Released
   1730      1.1  christos 
   1731      1.1  christos Problem with filtering just SYN flagged packets reported by
   1732      1.1  christos Dieter Dworkin Muller <dworkin (at] village.org>.  To solve this
   1733      1.1  christos problem, added support for masking TCP flags for comparison "flags X/Y".
   1734      1.1  christos 
   1735      1.1  christos 2.7.1	9/7/95		- Released
   1736      1.1  christos 
   1737      1.1  christos Added ip_dirbroadcast support for Sun ip_input.c
   1738      1.1  christos 
   1739      1.1  christos Fixed up the install scripts for FreeBSD/NetBSD to recognise where they are
   1740      1.1  christos better.
   1741      1.1  christos 
   1742      1.1  christos 2.7	7/7/95		- Released
   1743      1.1  christos 
   1744      1.1  christos Added "return-rst" to return TCP RST's to TCP packets.
   1745      1.1  christos 
   1746      1.1  christos Actually ported it to FreeBSD-i386 2.0.0, so it works there properly now.
   1747      1.1  christos 
   1748      1.1  christos Added insertion of filter rules.  Use "@<#>" at the beginning of a filter
   1749      1.1  christos to insert a rule at row #.
   1750      1.1  christos 
   1751      1.1  christos Filter keeps track of how many times each rule is matched.
   1752      1.1  christos 
   1753      1.1  christos Changed compile time things to match kernel option (IPFILTER_LKM &
   1754      1.1  christos IPFILTER_LOG).
   1755      1.1  christos 
   1756      1.1  christos Updated ip_input.c and ip_output.c with paches for 3.5 Multicast IP.
   1757      1.1  christos (No change required for 3.6)
   1758      1.1  christos 
   1759      1.1  christos Now includes TCP fragments which start inside the TCP header as being short.
   1760      1.1  christos Added counting the number of times each rule is matched.
   1761      1.1  christos 
   1762      1.1  christos 
   1763      1.1  christos 2.6	11/5/95		- Released
   1764      1.1  christos 
   1765      1.1  christos Added -n option to ipf: when supplied, no changes are made to the kernel.
   1766      1.1  christos 
   1767      1.1  christos Added installation scripts for SunOS 4.1.x and NetBSD/FreeBSD/BSDI.
   1768      1.1  christos 
   1769      1.1  christos Rewrote filtering to use a more generic mask & match procedure for
   1770      1.1  christos checking if a packet matches a rule.
   1771      1.1  christos 
   1772      1.1  christos 2.5.2	27/4/95		- Released
   1773      1.1  christos 
   1774      1.1  christos "tcp/udp" and a non-initialised pointer caused the "proto" to become
   1775      1.1  christos a `random' value; added "ip#/dotted.mask" notation to the BNF.
   1776      1.1  christos From Adam W. Feigin  <feigin (at] iis.ee.ethz.ch>
   1777      1.1  christos 
   1778      1.1  christos 2.5.1	22/3/95		- Released
   1779      1.1  christos 
   1780      1.1  christos "tcp/udp" had a strange effect (undesired) on getserv*() functions,
   1781      1.1  christos causing protocol/service lookups to fail.  Reported by Matthew Green.
   1782      1.1  christos 
   1783      1.1  christos 2.5	17/3/95		- Released
   1784      1.1  christos 
   1785      1.1  christos Added a new keyword "all" to BNF and parsing of tcpdump/etherfind/snoop
   1786      1.1  christos output through the ipftest program.  Suggestions from:
   1787      1.1  christos Michael Ciavarella (mikec (at] phyto.apana.org.au)
   1788      1.1  christos 
   1789      1.1  christos Conflicts occur when "general" filter rules are used for ports and the
   1790      1.1  christos lack of a "proto" when used with "port" matches other packets when only
   1791      1.1  christos TCP/UDP are implied.
   1792      1.1  christos Reported Matthew Green (mrg (at] fulcom.com.au);
   1793      1.1  christos reported & fixed 6-8/3/95
   1794      1.1  christos 
   1795      1.1  christos Added filtering of short TCP packets using "with short" 28/2/95
   1796      1.1  christos (These can possibly slip by checks for the various flags).  Short UDP
   1797      1.1  christos or ICMP are dropped to the floor and logged.
   1798      1.1  christos 
   1799      1.1  christos Added filtering of fragmented packets using "with frag" 24/2/95
   1800      1.1  christos 
   1801      1.1  christos Port to NetBSD-current completed 20/2/95, using LKM.
   1802      1.1  christos 
   1803      1.1  christos Added logging of the rule # which caused the logging to happen and the
   1804      1.1  christos interface on which the packet is currently as suggested by
   1805      1.1  christos Andreas Greulich (greulich (at] math-stat.unibe.ch) 10/2/95
   1806      1.1  christos 
   1807      1.1  christos 2.4	9/2/95		- Released
   1808      1.1  christos Fixed saving of IP headers in ICMP packets.
   1809      1.1  christos 
   1810      1.1  christos 2.3	29/1/95
   1811      1.1  christos Added ipf -F [in|out|all] to flush filter rule sets (SIOCIPFFL).
   1812      1.1  christos Fixed iplread() and iplsave() with help from Marc Huber.
   1813      1.1  christos 
   1814      1.1  christos 2.2	7/1/95		- Released
   1815      1.1  christos Added code from Marc Huber <huber (at] fzi.de> to allow it to allocate
   1816      1.1  christos its own major char number dynamically when modload'ing.  Fixed up
   1817      1.1  christos use of <, >, <=, >= and >< for ports.
   1818      1.1  christos 
   1819      1.1  christos 2.1	21/12/94	- Released
   1820      1.1  christos repackaged to include the correct ip_output.c and ip_input.c *goof*
   1821      1.1  christos 
   1822      1.1  christos 2.0	18/12/94	- Released
   1823      1.1  christos added code to check for port ranges - complete.
   1824      1.1  christos rewrote to work as a loadable kernel module - complete.
   1825      1.1  christos 
   1826      1.1  christos 1.1
   1827      1.1  christos added code for ouput filtering as well as input filtering and added support for logging to a simple character device of packet headers.
   1828      1.1  christos 
   1829      1.1  christos 1.0	22/04/93	- Released
   1830      1.1  christos First release cut.
   1831