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