1 CHANGES File for IPTraf 3.0.0
3 Changes to IPTraf 2.7.0 and new features in IPTraf 3.0.0
5 New filter behavior. Except for TCP traffic in the IP traffic
6 monitor, filters now do not automatically match reverse packets
7 for TCP and UDP IPTraf-wide. Rather, each filter entry has
8 a field which tells IPTraf whether to match packets flowing
9 in the direction opposite that specified.
11 The filters for non-TCP, non-UDP IP traffic (ICMP, IGRP, OSPF,
12 etc.) which never automatically matched packets flowing in the
13 opposite direction, now have that same option field. This way
14 related packets (like ICMP echo request/echo reply) can be
15 matched with a single entry.
17 Because reverse-matching is no longer the default IPTraf-wide,
18 the labels are now changed to read Source and Destination.
20 Default value for blank address filter fields is now 0.0.0.0,
21 rather than 255.255.255.255. Fields are therefore no longer
22 pre-filled with 0.0.0.0.
24 Miscellaneous IP filter entries feature a field for other IP
25 protocols not specifically indicated in the dialog. The user
26 must enter a comma-separated list of individual protocols or a
27 range. IP protocols are defined in the /etc/protocols file.
29 The IP traffic monitor consults the /etc/protocols file for
30 miscellaneous IP packets for the protocol names. Previously
31 recognized protocols (ICMP, UDP, OSPF, etc) are still looked up
32 internally for performance reasons.
34 The filter rule selection now indicates the mask in CIDR format
35 (e.g. 10.1.0.0/16) for clarity and to save screen space.
37 Filter selection list box is now alphabetically sorted.
39 Likewise, the CIDR notation can be used when entering IP address
40 data. However the CIDR notation is translated into a mask and
41 discarded. Subsequent editing of the filter will show the
44 Changed color coding for unknown IP packets (those looked up
45 from /etc/services to bright white on blue (instead of yellow on
46 red, which looked like "errors").
48 Added internal recognition for L2TP, IPSec AH, and IPSec ESP
51 Changed size of the IP traffic monitor's TCP hash table to 1033
52 buckets. Prime number used to improve hash efficiency.
54 A new function tx_box() has been added to the screen support
55 library as a solution to the ncurses box() function not accepting
56 the color set by wattrset(), at least on Red Hat 7.3. All calls
57 to box() have been replaced with this tx_box() instead. It takes
58 exactly the same parameters.
60 Added support for tun and brg (tunneling and bridging) interfaces.
61 Thanks to Marcio Gomes <tecnica_at_microlink.com.br>.
63 Modified logging options. The -L parameter now works with any
64 command-line invocation of a facility, even in foreground mode.
66 Added -I command-line parameter to override logging interval
69 (Thanks to the contributors of the -I and -L patches. I lost your
70 emails when SEUL reinstalled. Please acknowledge. Thanks.
72 Corrected promiscuous mode control code. It ignored Token Ring
75 Changes to IPTraf 2.6.1 and new features in IPTraf 2.7.0
77 Corrected bug wherein the detailed interface statistics
78 did not filter out the packets based on the selected
79 interface. Thanks to the members of the mailing list for
82 Corrected minor interface name comparison bugs in the
83 general interface statistics and TCP/UDP service statistics.
85 Corrected stale locks when IPTraf did not start due to an
86 improper terminal size.
88 Added support for additional DVB interfaces sm2*, sm3*, penta*.
90 Added support for wireless LAN interfaces (wlan*, wvlan*).
92 Fixed segfault that occurs when /proc/net/dev is empty or
93 contains no active interfaces. Thanks to Chris Armstrong
94 <wolfwings_at_zana.changa.nu> for actually trying it out.
96 Added error box to handle the /proc/net/dev error condition
99 Added error box when tx_operate_listbox is invoked on an empty
102 Changes to IPTraf 2.6.0
104 Corrected a segfault in the IP traffic monitor and TCP/UDP service
105 breakdown when a sort is attempted on an empty screen. Thanks
106 to <lord_at_elreyforce.org> for the report.
108 Corrected segfaults in the TCP/UDP service monitor when
109 scrolling using PgUp and PgDn (or space and '-'). Thanks
110 to Ross Gibson <windows_at_prefixservice.com>.
112 Corrected post-sorting PgUp problem in TCP/UDP monitor.
114 Corrected inaccuracies in the IP traffic monitor's TCP byte
115 counts and flow rates. *** THE BUG ADDRESSED BY THIS CORRECTION
116 DEFERS IPTRAF 2.6.0. ***
118 Adjusted black-and-white color scheme.
120 Minor adjustments to the printlargenumber() function.
122 Minor cosmetic adjustments.
124 New features in IPTraf 2.6.0 and changes to IPTraf 2.5.0
126 Added support for Token Ring interfaces. Thanks to many people
127 for help with patches and testing, including J. Kahn Koontz
128 <csjmk_at_eiu.edu>, Dan Seto <mail_at_seto.org>, and Tomas Dvorak
129 <avatar_at_kanal.ucw.cz>.
131 Added support for sbni long-range modem interfaces (Dmitry
132 Sergienko <trooper_at_dolphin.unity.net>).
134 Added support for Free s/WAN IPSec logical interfaces (Doug Nazar
135 <nazard_at_dragoninc.on.ca>).
137 Code cleanup. Got rid of an ugly goto in itrafmon.c. I hate
140 Moved write_timeout_log.c to tcptable.c.
142 Recoded the PgUp/PgDn routines in the IP traffic monitor,
143 TCP/UDP service monitor, and LAN station monitor. These
144 routines now directly manipulate the table pointers instead
145 of merely calling the single-line scrolling routines repeatedly.
146 Faster. More efficient.
148 Added a highlight bar to the IP traffic monitor, allowing better
149 readability, especially on long-line screens (> 80 characters),
150 and individual flow rate computation.
152 Added flow rates for the highlighted TCP flows (IP traffic
153 monitor) and TCP/UDP ports (TCP/UDP statistical breakdown) I
154 believe this is the best way to allow viewing of data rates
155 without excessively sacrificing CPU time for packet capture.
157 Filters now apply to all facilities except the packet size
158 breakdown and LAN station monitor. You can now view the loads
159 and protocol breakdowns on selected packets only using the
162 No more byte counters in the IP traffic monitor. This line now
163 just contains a simple packet counter at one end, and the TCP
164 flow rate information at the other.
166 Moved menu, selection listbox, and dialog box functions to a
167 separate support/ directory. These routines are first compiled
168 into a library and later on linked into iptraf.
170 Added a confirmation box to the main menu's Exit command. This
171 is as much for me as it is for a lot of people. I accidentaly
174 Added broadcast packet and byte counts to the detailed interface
177 Some cosmetic adjustment.
179 Added 5-minute timeout for rvnamed child processes.
181 New features in IPTraf 2.5.0 and changes to IPTraf 2.4.0
183 Now includes a more specific dialog for non-TCP and non-UDP
184 filters. Allows specification of packets by source and
185 destination IP addresses.
187 Better organized the filter management and manipulation
188 functions in fltedit.c, fltselect.c, othipflt.c, and utfilter.c.
190 othfilter.c renamed to fltselect.c, same thing with the .h.
192 All filters are now unified in a single data structure allowing
193 handling of TCP, UDP, misc IP, and non-IP toggles with one set
196 Separate TCP and non-TCP filter menus abolished, everything
197 is now grouped under a Filters... submenu under the main menu.
199 Corrected wrong placement of timer in the packet size breakdown.
201 Corrected scanning code for timed out entries in the IP traffic
202 monitor sort function. Wrong computation for elapsed time
203 resulted in active connections being placed in the list of
204 closed entries. Thanks to Gal Laszlo <slowTCP_at_hotmail.com> for
205 pointing out the symptom.
207 Added support for Frame Relay FRAD/DLCI interfaces. Thanks to
208 Raffaele Gariboldi <lele_at_italynetwork.it> for the information
211 Sorting is now done with the Quicksort algorithm.
213 IP Traffic Monitor now adds connection entries to the TCP window
214 upon the receipt of header-only packets. There are cases in which
215 we have to check for possible TCP scans which are implemented with
218 The reverse DNS lookup function revname() now times out after
219 five seconds, and stops reverse lookups for that session in case
222 Added some notes to the packet size breakdown window.
224 Moved rvnamed cache index update code such that updating of the
225 cache indexes will only be performed once fork() succeeds,
226 otherwise, the allocated slot will just be reallocated for
227 the next queries. This is so that should the fork() fail,
228 future invocations for that IP address won't have the rvnamed
229 parent thinking its resolving when there actually wasn't a child
230 performing the resolution. If the fork() problem condition was
231 temporary, the next invocation can still have rvnamed fork() off
232 to resolve the address. This of course assumes the IP address
233 hasn't expired from the cache.
235 Some cosmetic updates (as always).
237 The manual features a new format for the sidebars. Corrected
238 typos and spelling errors.
240 iptraf-x.y.z.tar.gz no longer comes with precompiled
241 binaries. However a separate iptraf-x.y.z.i386.bin.tar.gz will
242 come only with the precompiled x86 executable programs
243 (i386/glibc-2.1/ncurses-5.0).
245 New features in IPTraf 2.4.0 and changes to IPTraf 2.3.1
247 This version now allows multiple instances of the same facility
248 in different processes, but only one instance can monitor an
249 interface. Please see the RELEASE-NOTES file.
251 As a consequence of the above changes, the default names of the
252 logfiles then reflect the instance or interface being
253 monitored. See the RELEASE-NOTES file.
255 Implemented a dialog box allowing the user to log to a custom
258 Implemented -L command-line parameter to allow specification of
259 the log file name when IPTraf is started with the -B parameter.
261 Removed hardcoded UNIX-domain socket name bound by IPTraf, instead
262 a socket name is generated from the current time and pid. Also
263 removed hardcoded socket name in rvnamed, to which it directs
264 replies to IPTraf. rvnamed still binds to hardcoded socket names
267 IP Traffic Monitor can optionally display the source MAC addresses
268 for LAN-based packets. Added appropriate configuration item.
270 IPTraf now reads /etc/ethers in addition to its own database of
271 MAC addresses. Thanks to Frederic Peters <fpeters_at_debian.org> for
274 Moved time-related configuration items to a Timers... submenu to
275 save on screen space.
277 The version.h file no longer exists, rather, a plain version file
278 is in place containing merely the version number. The Makefile
279 reads this file, determines the target machine information
280 and passes this data to the compiler with -D parameters.
282 Imposed an upper limit of 200 on rvnamed child processes.
283 rvnamed should really not go runaway with a normally-functioning
284 DNS server, but I had the good fortune of experiencing a dead DNS
285 server while monitoring. Took my machine down real fast.
287 Precompiled executables now require glibc-2.1 dynamic libaries.
289 Included a Setup installation script to ease somewhat the
290 installation process (installation can still be done the old way
293 Cosmetic/color changes.
295 Reflected changes to manual.
297 Changes to IPTraf 2.3.0
299 Fixed segfault bug when sorting is attempted on an empty TCP
300 window. Thanks to Ramon van Elten <mainwave_at_datura.cx> for the
301 report and for the assistance in diagnosis.
303 Fixed cosmetic error (sort progress window doesn't disappear)
304 when attempt is made to sort a TCP window with only 1 entry.
305 Thanks again to Ramon for the report.
307 Updated some comments.
309 New features in IPTraf 2.3.0 and changes to IPTraf 2.2.2
311 Implemented sorting in the IP traffic monitor, TCP/UDP statistical
312 breakdown, and LAN station monitor. Great thanks go to Gal Laszlo
313 <slowTCP_at_hotmail.com> for the patch. (Note to Gal: I had to do a
314 heck of a lot of overhaul, and had to implement a clearer screen
315 design, but your patch provided the basis :) Thanks a lot.)
317 Implemented better bounds checking in the text input routine.
319 Added information boxes to TCP/UDP delete and detach filter
322 Added recognition of GRE packets. Modified non-TCP display filters
325 Fixed bug in unrecognized IP display and filter code.
327 Added filter item for unrecognized IP packets.
329 Removed leftover code from the old warning on IP masquerading.
331 Reflected changes and corrected typos in manual.
333 Changes to IPTraf 2.2.1
335 Fixed recognition problem with DVB interfaces.
337 Fixed small buffer overrun in TCP timeout log routine, which can
338 cause a segmentation fault under certain conditions.
340 Minor cosmetic adjustment in TCP connection window.
342 Changes to IPTraf 2.2.0
344 Fixed segfault in IP Traffic Monitor due to packets from an
345 unsupported link type.
347 Fixed segfault in promiscuous mode management module in the (rare)
348 case of a failure to save or load the interface flags from the
349 temporary storage files. Normally due to a bad installation.
350 Thanks to Udo A. Steinberg <sorisor_at_Hell.WH8.TU-Dresden.De> for
353 Added support for Ethernet-emulated FDDI interfaces. Thanks to Udo
354 A. Steinberg <sorisor_at_Hell.WH8.TU-Dresden.De> for the report and
355 help with the testing.
357 Added support for DVB interfaces, thanks to Alex
358 <vasile_at_keeper.meganet.ro> for the notification and the help.
360 Replaced inet_addr() references on filter address entries with
361 inet_aton(). This fixes failure of filters on packets with
362 255.255.255.255 in their source or destination address fields.
363 Thanks for Peter Magnusson for the report and the test
366 Overhauled TCP/UDP editing facility. Fixed bug wherein garbage
367 entries remain in the filter's parameter list even if an insert/
368 add dialog is aborted.
370 Fixed detailed interface statistics logging bug (activity and
371 packets-per-second figures were the same).
373 Apologies to Dustin Trammell for my failure to credit him for his
374 report on the behavior of IPTraf on bridges.
376 Changes to IPTraf 2.1.1 and new features in IPTraf 2.2.0
378 Immediate flushing of disk buffers after a log file write to
379 better accomodate separate logfile parsing scripts.
381 Addition of a manual and automatic clearing of closed and idle
382 TCP entries in the IP Traffic Monitor
384 Added a TCP closed/idle persistence configuration option to
385 control the TCP closed/idle clearing interval.
387 Clarified TCP timeout logfile entries.
389 Saves the state of the interface flags at startup of a facility,
390 and restores them on exit, allowing interfaces previously set to
391 promiscuous mode to retain that state. Important on bridges.
392 Thanks to Dustin D. Trammell <dtrammell_at_cautech.com> and Holger Friese
393 <evildead_at_bs-pc5.et-inf.fho-emden.de> for the patch. However, I had
394 to modify it a little more than a bit and had to overhaul quite a
395 good deal of the rest of the software to better accomodate
398 Promiscuous mode is set only when a facility is started, and
399 restored when it exits. Promiscuous mode is no longer forced at
400 menus. Restoration is not performed though if there is still
401 another facility running, but the interface state remains saved.
403 Fixed a minor bug in the LAN station monitor. The raw socket is
404 now closed when the facility exits. duh.
406 Fixed rare bug in the packet size distribution. The lock file didn't
407 get deleted if the raw socket open failed.
409 Changed the promiscuous mode option to "Force promiscuous".
412 Added PID's (a la syslog) to daemon log entries.
414 Minor cosmetic adjustments.
416 Changes to IPTraf 2.1.0
418 Fixed bug in the packet size statistical breakdown. The facility
419 didn't filter packets based on interface name, thus causing
420 inaccurate counts on systems with multiple network interfaces.
422 Fixed a few minor cosmetic errors.
424 Corrected some typographical errors in the manual.
426 Added a FAQ (or the beginnings thereof).
428 Added a spec file for RPM generation. Thanks to Dag Wieers
429 <dag_at_life.be>. I'm not a really good RPM'er beyond RPM
430 installation and removal. :)
432 Changes to IPTraf 2.0.2 and new features in IPTraf 2.1.0
434 Added non-IP to the display/logging filter selections
436 Added interface selection to the IP Traffic Monitor and LAN
437 Station Monitor (with an "All Interfaces" option).
439 Related to the above: now requires an interface name as an
440 argument to the -i and -l command-line parameters. 'all' may be
441 specified for monitoring all interfaces.
443 Added -B command-line parameter to fork program into the
444 background solely for logging purposes. Several people had
447 Corrected TCP/UDP filter file placement error. Included cfconv
448 program to move files to the proper place.
450 Added program-wide Ctrl+L sequence to redraw the screen if
451 corrupted by outside factors (write, talk, syslog).
453 Added TCP/UDP filter editing facility.
455 Corrected several possible buffer overruns in TCP/UDP filter
458 Corrected errors and reflected changes to manual and man pages.
460 Changes to IPTraf 2.0.1
462 Fixed a rarely-occuring but nevertheless severe segmentation fault
463 bug when long hostnames are coupled with long service names.
464 Great thanks go to Ronald Wahl <rwahl_at_gmx.net> for the advice and
465 the help. Ron, I'm really gonna find the time to do the code the
468 Changes to IPTraf 2.0.0
470 Fixed minor non-IP byte count bug in detailed interface statistics.
472 Fixed minor cosmetic bug causing elapsed time indicator to appear
473 in the wrong line on screens not containing 25 lines. Thanks to
474 Uwe Storbeck <uwe_at_datacomm.ch> for the patch.
476 New features/changes in IPTraf 2.0 from 1.4.2
478 Now uses the new PF_PACKET socket family as its packet capture
479 mechanism. Requires Linux 2.2.
481 Added target/source IP addresses in ARP packet
482 request/reply packet entries in the IP traffic monitor. Also
483 added target/source MAC addresses to RARP request/reply entries.
485 Reorganized menu structure, see the README file for details.
487 Moved packet counts by size to a facility of its own. Added
488 corresponding -z command-line option.
490 New incoming/outgoing packet and byte counts and activity rates in
491 the detailed interface statistics facility.
493 Corrected a bug in the FDDI packet parsing code (wrong link type).
495 Added a check for the IFF_UP flag when generating interface
496 lists, to omit inactive interfaces (but still in /proc/net/dev).
497 This covers the General Interface Statistics and all interface
500 Now uses the maximum number of columns on the screen. High thanks
501 to Michael "M." Brown <m2brown_at_waterloo.ca> for the patch. Saved
502 me a lot of tedious work. :)
504 Reformatted TCP screen to show only one hostname:port per line,
505 with connections indicated by the green "brackets". I think
508 Added ARP/RARP opcode and target addresses in the ARP/RARP
511 Added vertical scrolling to the lower (non-TCP) window in the
512 IP traffic monitor to allow for long lines (ICMP, OSPF, some UDP).
514 Allowed for slightly longer host names in the lower IP traffic
517 Still increased the rvnamed cache size to 2048 entries.
519 Miscellaneous cosmetic changes.
521 Manual now includes screen shots and comes in HTML format only.
523 Changes to IPTraf 1.4.1
525 Fixed SEGV condition when attempts are made to load a filter list
526 application or deletion with a zero-length filter list file, which
527 could be caused by deleting the last filter. Thanks to Daniel
528 Savard <daniel.savard_at_gespro.com> for the report.
530 Makefile comes with the -m486 option commented out
532 Changes to IPTraf 1.4.0
534 Moved configuration status window to unobscure a long menu option.
536 Changes to IPTraf 1.3.0 and new features in 1.4.0
538 Support for PLIP interfaces.
540 Support for other ISDN encapsulations (specifically raw IP and
541 Cisco HDLC) high thanks to Gerald Richter <richter_at_ecos.de> for
542 the information and testing.
544 Added -q parameter to suppress the 1.3.0 masquerading warning for
545 users who wish to automate the various facilities from their
546 inittab and similar non-interactive fashions. Incorporated into
547 the Debian version of 1.3.0 by Debian maintainer Frederic Peters
548 (<fpeters_at_debian.org>, carried over to general release 1.4.0.
550 Added an option to change activity indications between kbits/s and
551 kbytes/s. On a suggestion by Paul G. Fitzgerald
552 <pgfitzgerald_at_buckman.com>.
554 Incorporated more flexible compile-time control of directories for
555 configuration, log, and other files. Thanks to Stefan Luethje
556 <luethje_at_sl-gw.lake.de> for the patch.
558 Corrected minor flaws in the default screen update delay code
559 (visually insignificant), that led to occasional skips of the
560 delays. (Call it nitpicking if you will. :))
562 Moved signal() calls to after terminal checks in iptraf.c,
563 allowing standard behavior of signals when error/warning messages
564 may still be sent to stderr. Allows the user to break out of it
565 with Ctrl+C at the terminal warning if so desired.
567 Reformatted IP traffic monitor log entries on Gerald Richter's
568 <richter_at_ecos.de> suggestions for easier processing with Perl
571 Included logfile rotation with the USR1 signal. Again on Gerald
572 Richter's <richter_at_ecos.de> suggestion.
574 Moved first-instance tag sequence to after the initscr() call.
576 Indicated IP fragments with no additional information in the lower
577 traffic monitor window. Datagram size, addresses, and interface
580 Changed Non-IP count in IP traffic monitor to byte count
581 (including data-link header lengths) from packet counts.
582 Consistency purposes.
584 Added some extra information for certain non-IP packets. These
585 may eventually grow, but not in too much detail, since this is an
586 IP-oriented utility. Thanks to David Harbaugh
587 <dlh_at_linux.cayuga-cc.edu> for the patch.
589 Removed bind() operation on raw socket to address a condition in
590 which the detailed interface statistics and TCP/UDP statistics
591 stop counting if an interface goes down then up again. This will
592 be studied further. Symptom report sent in by Roeland Jansen
593 <bengel_at_xs4all.nl>.
595 Changed Ethernet/FDDI/PLIP description file formats from binary to
596 plain text, allowing database appends. Other files (configuration
597 and filters) are still binary. On a suggestion by David Harbaugh
598 <dlh_at_linux.cayuga-cc.edu>.
600 Copied IP and upper-layer headers and some data from Ethernet,
601 PLIP, FDDI, and loopback frames into an aligned buffer. Avoids
602 SIGBUS on picky systems (like SPARCs) and general alignment
603 problems. I don't know yet which is worse, the overhead of
604 a 96-byte transfer or the performance hit with misaligned reads.
605 Thanks to Jonas Majauskas <jmajau_at_soften.ktu.lt> for reports and
608 Replaced __-type references with u_int-type references.
610 Increased cache array size in rvnamed to 1024 entries from the
611 previous 512, to better handle combinations of busy networks and
614 Cleared up a few instructions in the Makefile, thanks to Arjan
615 Opmeer <a.d.opmeer_at_student.utwente.nl>
617 New features in IPTraf 1.3.0 and changes to IPTraf 1.2.0
619 Experimental FDDI support. High thanks to Paonia Ezrine
620 <paonia_at_massart.edu> for the initial tests on the FDDI code. More
621 feedback is requested on the FDDI functionality. Bugs may still
624 Reestablished ippp interfaces (synchronous PPP over ISDN) after
625 reports that the ISDN problem was fixed with Linux 2.0.34.
627 Fixed fragmentation oversight in TCP/UDP service monitor.
629 Applied the bind() system call to the raw socket to have the
630 kernel filter out packets from interfaces we're not interested in.
631 Makes for better capture times on multiple-interfaced machines.
632 However, a strncmp() is still performed on the returned interface
633 name to counter the race condition between the socket() and bind()
636 Fixed interface statistics print routines to print unsigned
637 rather than signed numbers.
639 Added additional option to adjust screen updates. Useful for
640 IPTraf sessions run on remote terminals (thanks to Lutz Vieweg
641 <lkv_at_isg.de> for the suggestion and Dean Gaudet
642 <dgaudet_at_arctic.org> for the base patch. I modified it a bit,
645 Discovered terrible performance penalty due to screen refresh with
646 heavily loaded LAN segments. Therefore, with the new screen
647 update interval option set to 0, all facilities have a 50 ms delay
648 between refreshes (exception: the LAN station monitor has a delay
649 of 100 ms). This is still visually fast (although updates
650 look kinda slower), but this gives more time to packet capture,
651 therefore increasing accuracy and capture performance. Thanks to
652 everyone who responded to my request for advice on this matter and
653 to Ronald Wahl <rwahl_at_gmx.net> for giving me the symptom report.
655 Modified IP traffic monitor to mark TCP connection entries for reuse
656 once one side is fully closed and acknowledged ("CLOSED" on the
657 screen) and the other closed but even if not acknowledged ("DONE"
658 on the screen. This is because many times, the last ACK gets lost.
660 Included an additional parameter used together with the other
661 command-line arguments to specify an amount of time for which the
662 selected facility would run before automatically terminating (on a
663 suggestion by Linux HOWTO coordinator Tim Bynum
664 <tjbynum_at_wallybox.cei.net)>.
666 Supplemented the main data structure for the IP traffic monitor
667 with an open hash table for increased search efficiency,
668 especially after the facility has been running for quite some
669 time (the other facilities, which don't grow as much still use
670 linearly-searched linked lists. I'll probably hash them depending
673 Fixed rare bugs in various facilities that caused IPTraf to
674 attempt to proceed even in the event of a raw socket open failure.
676 Fixed SEGV condition when IPTraf is invoked with a command-line
677 parameter that cannot be parsed with getopt().
679 Added labels to LAN address description selection box.
681 Fixed unsightly LAN address description dialog scrolling.
683 Added a separator feature to the menurt.c module, allowing
684 separation lines within menus.
686 Added separator lines between related groups of menu items in both
687 main and configuration menus.
689 Changed the Options main menu item to Configure.
691 Added the space bar and the '-' key as "unofficial" alternates to
692 the PgUp and PgDn keys (it's not in the manual).
694 Transferred Ethernet description facility option to the Configure
695 submenu, and added a related facility for FDDI addresses.
697 Removed Ethernet-specific references where FDDI and (potentially)
698 other LAN technologies also fit. We'll just use "LAN" as a
701 Adjusted detailed statistics screen to automatically generate the
702 appropriate packet size distribution brackets based on interface
703 MTU. This means the brackets may no longer end on numbers
704 divisible by 10, but rather on boundaries based on the MTU divided
705 by 16 (the number of brackets). But at least 1500 is not
706 hardcoded anymore as the maximum.
708 Related to the immediately preceeding change: packet size
709 distribution updates are done one at a time now, no longer as a
710 whole bunch. In other words, as a frame arrives, only the
711 appropriate bracket is updated.
713 Also related to previous two: changed basis for packet size
714 distribution to the Ethernet frame length from the IP datagram
715 length (which really doesn't matter except for a few frames).
717 Fixed bug which causes the existing log interval to multiply by 60
718 when the dialog is aborted (instead of retaining the current
719 setting). Thanks to Chris Higgins <chiggins_at_pobox.com> for the
720 bug report and the patch. (I had to modify it a bit to fit in
721 with the screen update interval patch sent in by Dean Gaudet.)
723 Potentially large counts have been changed to type "unsigned long
724 long" to significantly increase running time on heavily loaded
725 networks, plus automatic switching of denominations (from exact
726 counts to K(ilo) to M(ega) to G(iga) to T(era)) to prevent screen
727 disruption (on a suggestion by Lutz Vieweg <lkv_at_isg.de>).
729 Separated log file into different logs for each facility.
731 Moved log files to /var/log/iptraf to avoid mixing them with the
732 mess in the /var/local/iptraf directory. At least that way,
733 we humans don't have to look in /var/local/iptraf anymore.
735 Relaxed multiple-instance restriction from a
736 no-multiple-instances-of-IPTraf requirement to a
737 no-multiple-instance-of-the-same-facility. In other words,
738 several copies of IPTraf can run, but only one instance of each
739 facility can run at any one time. The -f parameter removes the
740 tags, overriding the restrictions on that IPTraf instance. This
741 modification was done to address needs indicated by Chris Panayis
742 <chris_at_freedom2surf.net>).
744 Added a startup warning box if IPTraf detects IP Masquerading
745 enabled on the computer. IPTraf will continue to work, but its
746 results may be quite confusing. The detection is done by
747 opening /proc/net/ip_masquerade.
749 Modified additional port facility to accept ranges of ports rather
750 than several single port numbers (on a suggestion by Lutz Vieweg
753 Reduced minimum number of lines from 25 to 24 for better VT100
756 Miscellaneous cosmetic retouches. (I consider user interface an
757 important factor too, ya know! :)
759 Distribution binary now comes statically linked with ncurses 4.2.
760 You may recompile to suit your system.
762 Included manual pages derived from the Debian GNU/Linux 2.0
763 distribution. Man pages written by Frederic Peters
764 <fpeters_at_debian.org> who is now maintaining the Debian IPTraf
767 Reversed version order (newest first) in the CHANGES file.
769 New features in IPTraf 1.2.0 and changes to IPTraf 1.1.0
771 Increased buffer size in ifstats.c for /proc/net/dev lines to 161
772 to better accomodate the longer lines in the new 2.1.x kernels
773 (which will be carried over to the new stable kernel series).
774 Based on bug reports by Dop Ganger <DopG_at_sprint.ca> and Christoph
775 Lameter <christoph_at_lameter.com> et al.
777 Fixed rarely occuring high CPU utilization bug occuring whenever
778 a terminal connection is lost, resulting in a SIGHUP which is
779 ignored. (This is an example of a software author's temporary
780 insanity. I mean, what sane programmer would set SIGHUP to
781 SIG_IGN for a terminal-based program huh? Thought so :) Thanks
782 to Dop Ganger <DopG_at_sprint.ca> for the symptom report.
784 Refined Ethernet station monitor rate updates and scrolling code.
786 Fixed autosave bug for non-TCP filters (this was working before
787 1.1.0. All of a sudden, the function call disappeared
788 mysteriously. Must have been sleepy that time :)
790 Fixed bug in UDP filter default settings.
792 Added option to display TCP and UDP ports in either name form or
793 numeric form (on a suggestion by Felix von Leitner
794 <leitner_at_math.fu-berlin.de> and others).
796 Added facility to describe Ethernet addresses for the Ethernet
797 station monitor (to address needs as presented by Erlend Middtun
798 <erlendbm_at_funcom.com> via James Ullman <james_at_irc.ingok.hitos.no>)
800 Added an additional field to the TCP/UDP filter dialogs to allow
801 the user to "exclude" certain addresses from the display allowing
802 all others. Details on the new behavior are in the manual (on a
803 suggestion by Sean Hough <seh_at_javanet.com>)
805 Relaxed screen management code to better adjust to the number of
806 lines on the screen. As of this release, columns are still based
807 on a maximum number of 80 though. Also under study is a
808 SIGWINCH handler, but this will have to come later (on comments and
809 suggestions by a *lot* of users...thanks guys :-) ).
811 Fixed a subtle bug in the rvnamed interface IPC code, resulting in
812 an accurate transfer of data but causing recvfrom() to return an
813 EINVAL at unpredictable intervals. Bug was an uninitialized address
814 structure length parameter. Code in both iptraf and rvnamed was
817 Eliminated unsupported interfaces from interface selection lists.
819 Included enforced restriction disallowng multiple instances of
820 IPTraf and an overriding command-line parameter. (This may
821 just be temporary, in lieu of a more elegant solution).
823 Included autosave for TCP and UDP filters. Filters now survive
824 IPTraf exits and restarts without requiring manual reapplication
825 (on a suggestion by Chad Clark <cclark_at_comstar.net>).
827 Included upgrade program and makefile rule to convert IPTraf 1.1.0
828 configuration and filter files to 1.2.0 format.
830 Clarified TCP/UDP and non-TCP/UDP filter error messages.
832 Color-coded the TCP and UDP protocol/port indicators in the
833 TCP/UDP service monitor for better identification.
835 Revised IP traffic monitor to query rvnamed only once per
836 invocation of the facility. Less overhead.
838 Revised IP traffic monitor to open and close the rvnamed
839 communication socket only once per invocation of the facility.
842 Added a 2-second delay after the rvnamed invocation to give
843 the daemon more than enough time to open its sockets.
845 Fixed SEGV condition which occurs when an attempt is made to
846 destroy an interface list never loaded (which could only occur
847 if the /proc system is unreadable, something which shouldn't
848 happen on any decent Linux system).
850 Moved filter list load routine to fltmgr.c, for better linking with
853 Makefile now installs rvnamed together with the iptraf executable
854 in /usr/local/bin by default.
856 Added table of contents (hyperlinked in the HTML version) to the
859 Cleaned up the Makefile.
861 New features in IPTraf 1.1.0 and changes to IPTraf 1.0.3
863 Added command-line options for direct facility access from the
864 shell, and an appropriate help screen for IPTraf invocation (on a
865 suggestion by BJ Goodwin <latency_at_radiolink.net>).
867 Added separate DNS reverse name lookup program (rvnamed) for
868 quicker response time on reverse DNS lookups. Subsequently
869 modified the revname function to use the new functionality.
870 This also required additions of address resolution state fields
871 to struct tcptableent in tcptable.h.
873 Added checkrvnamed() and killrvnamed() to revname.c, used by
874 itrafmon.c to query and stop the rvnamed daemon.
876 Added scrolling capability to the general interface statistics.
877 Interface list will now grow as packets from newly created
878 interfaces are received (e.g. PPP interfaces). This now makes
879 IPTraf better suited to monitor Linux machines configured as
882 Interface selection lists can now be scrolled.
884 Increased maximum number of entries in for the non-TCP window
885 in the IP traffic monitor from 256 to 512.
887 Fixed SEGV condition in itrafmon.c that happens whenever the
888 Down cursor key is pressed with the lower window active, but
891 Added elapsed time indicators to each facility, showing the
892 hours and minutes that have passed since the start of the
893 monitor (on a suggestion by James Ullman
894 <james_at_irc.Ingok.Hitos.No>)
896 Changed ncurses include file references from <ncurses.h>
899 Cleaned up preprocessor code for glibc2 support. Thanks for
900 help and suggestions from John Labovitz <johnl_at_meer.net>. Thanks
901 also for a test account on debs.fuller.edu opened by Christoph
902 Lameter <christoph_at_lameter.com>.
904 Fixed SEGV condition which may occur when trying to close the
905 log file which may never have opened (thanks to John Labovitz
906 <johnl_at_meer.net> for the patch).
908 Adjusted cosmetic code to better indicate the closed status in
911 TCP and UDP filters now accept host names in in place of IP
912 addresses. Host names will be resolved and can still be used
913 with wildcard masks (may be useful for names that resolve to
914 several IP addresses)
916 Distribution now includes an HTML-formatted manual.
918 Changes to IPTraf 1.0.2
920 Fixed SEGV condition when scrolling commands are applied to
921 an empty Ethernet station monitor
923 Distribution executable now comes compiled with -m486 by default.
924 Binary will still execute on a 386, but a 486 or higher is still
927 Changes to IPTraf 1.0.1
929 Fixed conflicting hotkey for non-TCP filter menu items RARP and
930 IGRP (the "R" key). Changed the shortcut key for RARP to "P".
932 Modified layer-2 header stripping code to cleanly ignore packets
933 from unrecognized interfaces (see README).
935 Fixed "duplicate port" misbehavior for the "Additional port"
936 dialog's Cancel command
938 Added error-checking for the port list file open sequence.
940 Added PgUp/PgDn capability to the facilities that can be scrolled
941 (IP traffic monitor, TCP/UDP services, and Ethernet station
944 Cleaned up scrolling code a bit.
946 Fixed bug in the non-TCP logging facility that caused extraneous
947 log entries whenever the window is scrolled.
949 Sent non-fancy messages to standard error rather than standard
952 Changed a few messages
954 Changes to IPTraf 1.0.0
956 Fixed X/Ctrl-X keystroke bug in the General Interface Statistics
957 module (thanks to BJ Goodwin <latency_at_radiolink.net>). This was
958 kinda an emergency, so I fixed this and released 1.0.1