Laurent Constantin's network library (netwib) ---------------------------------------------- | NETWIB 's CHANGELOG | ---------------------------------------------- --------------------------------------------------------------------- Version 5.36.0 - 01-Nov-2008 ++ fixed bugs ++ - If a netwib_ips, netwib_eths or netwib_port contains too many values, a crash occurs. This crash is caused by the usage of a pointer which is not valid. - Installation directories were not created with mode 0755, so if root has a strict umask, users could not read the files in the directories. - The state of a netwib_io on a record was not initialized. --------------------------------------------------------------------- Version 5.35.0 - 05-Oct-2006 ++ fixed bugs ++ - Memory leak in netwib_dir_init() in cases where the dirname buffer could not be expanded. ++ major evolutions ++ - Following functions were renamed, to homogenize their names ("string" instead of "text" or "str"): netwib_buf_cmp_str() to netwib_buf_cmp_string() netwib_buf_casecmp_str() to netwib_buf_casecmp_string() netwib_buf_init_ext_text() to netwib_buf_init_ext_string() netwib_buf_append_text() to netwib_buf_append_string() - Function netwib_buf_ref_string() was renamed to netwib_constbuf_ref_string() because it has a constant parameter. The new netwib_buf_ref_string() function has a non constant parameter. The macro netwib__constbuf_ref_string() is now public to manage an intermediary storage for appending the needed '\0'. - Type NETWIB_DECODETYPE_QUOTED for netwib_buf_decode() function is replaced by netwib_buf_decode_quoted() function. - Creation of NETWIB_BUF_FLAGS_SENSITIVE flags to wipe memory of sensitive buffers. ++ minor evolutions ++ - Creation of netwib_io_init_shellserver() and shellclient() to provide a bash shell with a tty and readline. It is currently only implemented for Linux. - Add netwib_hash_ctl_get_count(). ++ internal evolutions (not seen by end users) ++ - Improvement in netwib_ring_index and netwib_hash_index to manage ring/hash changes during index looping. The supported functions, and their behavior, are commented in ringi.h and hashi.h. --------------------------------------------------------------------- Version 5.34.0 - 05-Apr-2006 ++ fixed bugs ++ - During compilation of libnetwib.so dynamic library, GCCLIB was missing. ++ major evolutions ++ - Support of Tru64 Unix. ++ minor evolutions ++ - New functions netwib_buf_casecmp(), netwib_buf_cmp_str() and netwib_buf_casecmp_str(). ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.33.0 - 20-December-2005 ++ fixed bugs ++ None in this version ++ major evolutions ++ - Rewrite of uint64 module to have common defines supporting 64 and 32 bit processors. ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ - Support of gcc 4.0 compiler. --------------------------------------------------------------------- Version 5.32.0 - 24-November-2005 ++ fixed bugs ++ - Under Linux without IPv6 support, arp cache contains 00:00:00:00:00:00 Ethernet addresses for unresolved entries. - In netwib_io_init_sniff_tcpreord(), only 8 of the 16 bits of TCP destination port were used to compare TCP sessions. This leads to a loss of packets. ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ - Improve netwib_io_init_sniff_tcpreord() function. --------------------------------------------------------------------- Version 5.31.0 - 12-October-2005 ++ netwib is back ++ After several months netwib, netwox and netwag projects are back. For those interested, the new version of my professional project is now online. It's a vulnerability survey named Vigil@nce (http://vigilance.aql.fr/) and conceived towards enterprises or agencies. As for netw*, please talk about it with your co-workers or friends in other enterprises. Supporting Vigil@nce is an indirect way to support netw*. ++ fixed bugs ++ - Security: netwib_dir module contained a low risk vulnerability exploitable if: * netwib is used in a suid/sgid program and * this program is run on a system with a special filesystem (notes: I've never seen a filesystem matching the requested criteria. None of netwib users have a such system, otherwise they would have experienced a crash and reported it. So I think this vulnerability is almost never exploitable) Netwox is not vulnerable because it is not installed suid/sgid. Thanks to Ben Hutchings for reporting the problem. He found a generic problem affecting a lot of programs, but netwib code is special, and thus not affected as other programs. Netwib_dir module was partially rewritten to correct this problem and to improve its performance. - Memory leak in netwib_dir_init() if directory does not exists. ++ major evolutions ++ - Function netwib_io_init_file() now supports reading and writing. ++ minor evolutions ++ - New macro netwib_sock_ctl_get_socktype() obtains socket type. - Output value for netwib_ABC_compare_pf functions has a default value of NETWIB_CMP_LT. - Output value for netwib_ABC_criteria_pf functions has a default value of NETWIB_FALSE. - Function netwib_io_init_filetemp() opens file for read and write, instead of write only. - New macro netwib_file_ctl_set_truncate() truncates a file. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.30.0 - 30-March-2005 ++ important ++ Netw project is still paused. ++ fixed bugs ++ - Macros netwib_c2_uint16_2, netwib_c2_uint32_4, netwib_c2_uint64_8 netwib_c2_uint64_set_8 and netwib_c2_uint64_set_32 did not work if parameters were signed. ++ major evolutions ++ None in this version ++ minor evolutions ++ - A new macro netwib_sock_ctl_set_multicastttl() permits to set TTL for multicast packets. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.29.0 - 21-February-2005 ++ important ++ As some of you noticed, netw project paused since January 1st. This is due to my professional/enterprise project where I have to do a lot of private work. It should end on september, so I expect to be back on netw on october. In the meantime, bugs will be corrected, but no major tool is expected. Note: don't worry, my boss is not forcing me to work on WE, but I want this project to take a giant step :-) ++ fixed bugs ++ None in this version ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.28.0 - 05-January-2005 ++ fixed bugs ++ None in this version ++ major evolutions ++ - Rewrite of module sys/path, to provide functions easier to use. Their parameters are not required to be canonized anymore. ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.27.0 - 30-November-2004 ++ fixed bugs ++ None in this version ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.26.0 - 25-October-2004 ++ fixed bugs ++ - Under Solaris, network devices with two or more IP addresses were not retrieved in network configuration. The first address was set but not the others. - Under BSD, additional routing table entries were not retrieved. It was due to specially formed socket addresses not been decoded. ++ major evolutions ++ None in this version ++ minor evolutions ++ - Creation of function netwib_show_array_fmt32 which is frequently used. ++ internal evolutions (not seen by end users) ++ - Timezone selection is done in netwib_init(). --------------------------------------------------------------------- Version 5.25.0 - 27-September-2004 ++ fixed bugs ++ - A change introduced in version 5.24.0 caused a compiler error on computers without 64 bit integers support. It was necessary to edit netwib source to correct the error in order to compile. ++ major evolutions ++ - A new error code was created: NETWIB_ERR_DATAMISSING. It is used by packet decoding functions to indicate packet could not be decoded because of insufficient data (!= malformed data). ++ minor evolutions ++ - Creation of defines to simplify uint64 conversion. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.24.0 - 12-September-2004 ++ fixed bugs ++ None in this version ++ major evolutions ++ - Lists of addresses or ports (netwib_ips, netwib_eths or netwib_ports) can be sorted, or not, depending on user choice. ++ minor evolutions ++ - Random number generator uses a 64 bit linear congruential generator (before, it was a 31 bit generator). It provides a longer period. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.23.0 - 30-August-2004 ++ fixed bugs ++ - Under Yellow Dog Linux, a crash occurred in netwib_buf_append_fmt and similar functions. It was due to a va_list passed as value to sub-functions, instead of passed as reference/pointer. A va_list is special and should be treated as opaque. Thanks to Joseph E. Sacco for reporting and solving the problem. ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.22.0 - 15-August-2004 ++ fixed bugs ++ - Functions netwib_c_memmem and netwib_c_memcasemem crashed trying to read past end of buffers. - On systems where poll() does not exists (Windows for example), selecting an infinite wait on file descriptor caused a NULL pointer to be used. This crashed the program. ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ related note ++ - In you install Windows XP SP2, it's no more possible to send a raw TCP packet, or to spoof an UDP packet. In those cases, use --spoofip "link" (or "best"). ++ internal evolutions (not seen by end users) ++ - genemake supports compiler options. Read doc/installspecial.txt for instructions for packages creation. --------------------------------------------------------------------- Version 5.21.0 - 1-August-2004 ++ fixed bugs ++ None in this version ++ major evolutions ++ None in this version ++ minor evolutions ++ - Creation of function netwib_io_init_filetemp. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.20.0 - 18-July-2004 ++ fixed bugs ++ None in this version ++ major evolutions ++ - Reorganization of error codes. - Functions netwib_show_abc were renamed to netwib_abc_show. ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.19.0 - 5-July-2004 ++ fixed bugs ++ - Memory leak in netwib_io_init_sock when an error occurred. ++ major evolutions ++ - Program genemake guesses system and architecture, without the need to edit config.dat. - Creation of netwib_int64 and netwib_uint64 types containing 64 bit integers where available (natively on 64 bit computers, or using compiler extensions on 32 bit computers). - Creation of netwib_uintptr of same size as pointers, whereas netwib_intmax can now store a 64 bit integer even on 32 bit computers. ++ minor evolutions ++ - Creation of function netwib_buf_append_localtime to display a localtime. - Field yday in netwib_localtime corresponds to the real day number, and not the offset since January 1. - Function netwib_pathstat_init replaces function netwib_pathnametype_init. - Flag NETWIB_BUF_FLAGS_NEEDTOALLOC was somewhat redundant with NETWIB_BUF_FLAGS_CANALLOC. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.18.0 - 1-June-2004 ++ bugs fixed ++ None in this version ++ major evolutions ++ - IMPORTANT: netwib's license changed from LGPL to GPL (netwox and netwag are already GPL). In a world were more and more commercial enterprises earn money using Open Source developers' work, but never contribute to community, I do not think LGPL is appropriate anymore for netwib. If you want to use netwib/ox/ag in a commercial application, just contribute, and I'll arrange a special license for your needs. - Test suite, previously located in netw-5.x.y-test.tgz, is now in netw-ib-ox-ag-5.x.y.tgz. ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.17.0 - 24-May-2004 ++ bugs fixed ++ - In netwib_pkt_decode_layer_ip, if totlen was less than IP header size, function crashed. - Function netwib_pkt_append_iphdr recomputed ihl, which is normally netwib_pkt_append_layer_ip 's job. This didn't cause problem, but it was not its documented behavior. - Function netwib_pkt_append_tcphdr recomputed doff, which is normally netwib_pkt_append_layer_tcp 's job. This didn't cause problem, but it was not its documented behavior. ++ major evolutions ++ None in this version ++ minor evolutions ++ - Function netwib_kbd_press has one more parameter containing pressed key. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.16.0 - 10-May-2004 ++ bugs fixed ++ - Function netwib_time_decode_localtime increases zone offset by one hour when daylight saving time is set. It is necessary for gloval timezone variable, but it was not for tm_gmtoff. ++ major evolutions ++ None in this version ++ minor evolutions ++ - Function netwib_pathname_exists now detects paths containing a file. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.15.0 - 21-Apr-2004 ++ bugs fixed ++ - Files in netwib-5.14.0-bin_windows were generated using version 5.13.0 of netwib. A methodology change was made to ensure this stupid mistake will not happen again. Thanks to Suresh Ravindran for reporting this bug. ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.14.0 - 14-Apr-2004 ++ bugs fixed ++ - When local host did not have an IPv6 address configured, function netwib_eth_init_ip did not work to convert an IPv6 address. ++ major evolutions ++ - Creation of netwib_array to store a dynamic array of structures. ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ - Improvement of error messages. --------------------------------------------------------------------- Version 5.13.0 - 05-Apr-2004 ++ bugs fixed ++ - In netwib_sock_tcp_mulser, information for threads was located in a shared memory. So, when several threads were starting they were using the same information. Unreliable behavior then occurred. Thanks to Christophe Delahaye for reporting problem. - In netwib_io_unplug_next, a break was missing for case NETWIB_IO_WAYTYPE_SUPPORTED. - In netwib_tlv_decode_ip, a break was missing for case NETWIB_IP6_LEN. ++ major evolutions ++ None in this version ++ minor evolutions ++ - Function netwib_threadlist_close now waits for threads' end before closing resources. - When using function netwox_sock_tcp_mulser, user does not need anymore to close the io. - Creation of manpages for sections : netwib_dat, netwib_sys, netwib_net, netwib_pkt and netwib_shw. - Simplification of netwib_ip_encodetype and netwib_ip_decodetype. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.12.0 - 30-Mar-2004 ++ bugs fixed ++ None in this version ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ - Suppress genemake warning occurring because "a == b" is valid only in bash. In classic bourne shell, the correct syntax is "a = b". This warning was introduced in version 5.9.0, after cosmetics changes in genemake. - Suppress compilation error for some Mac OS X. It is related to special installations on libnet, not defining expected defines. --------------------------------------------------------------------- Version 5.11.0 - 22-Mar-2004 ++ bugs fixed ++ None in this version ++ major evolutions ++ None in this version ++ minor evolutions ++ - Suppress minor compilation warnings on very pedantic compilers. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.10.0 - 3-Mar-2004 ++ bugs fixed ++ - Function netwib_show_array_data entered an infinite loop when title parameter was too long. ++ major evolutions ++ None in this version ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ - Waiting functions ensure absolute time is not elapsed before checking for en event. - optimization of NETWIB_BUF_FLAGS_CANSLIDE implementation. --------------------------------------------------------------------- Version 5.9.0 - 16-Feb-2004 ++ bugs fixed ++ None in this version ++ major evolutions ++ - Under Windows, WinPCAP is now loaded dynamically. So, on computers where WinPCAP is not installed, netwib still works (except for sniff and spoof of course). It also solves a problem of incompatibility between WinPCAP 3.0 and 3.1. ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.8.0 - 2-Feb-2004 ++ bugs fixed ++ None in this version ++ major evolutions ++ - MacOS is now supported. - NetBSD-current is now supported. - HP-UX is now supported. ++ minor evolutions ++ - Under Windows, project can be compiled with Dev-C++/Mingw32. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.7.0 - 22-Jan-2004 ++ bugs fixed ++ None in this version ++ major evolutions ++ - Support of IPv6 packet creation and decoding. This caused several major changes in old structures and functions. - Simplification of icmp4 module. - Creation of icmp6 module. - Creation of tcpopt/tcpopts modules. ++ minor evolutions ++ - Gcc flag "-ansi" is not used anymore. It caused problems with libnet 1.1.1. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.6.0 - 14-Dec-2003 ++ bugs fixed ++ - Under Linux, when a network card had no IP address but was up (ifconfig eth0 0.0.0.0 up), it was not listed in the device configuration. Thanks to Jens-Harald Johansen for reporting the problem. - Functions netwib_char_init_kbd and netwib_io_init_kbd did not reset the keyboard state. For example, Control-D was then ignored. - Under Unix, function netwib_thread_wait did not free thread resources when waiting for a thread for a non infinite duration. ++ major evolutions ++ - Creation of section shw where all functions displaying packet were put. They were renamed from netwib_buf_append_tcphdr to netwib_show_tcphdr. ++ minor evolutions ++ - Function netwib_ip_init_buf has one more parameter to specify the type of IP address to decode. - Creation of NETWIB_ENCODETYPE_QUOTED and NETWIB_DECODETYPE_QUOTED. - Creation of function netwib_c_memcasecmp. ++ internal evolutions (not seen by end users) ++ - Rewrite of bufpool.c. --------------------------------------------------------------------- Version 5.5.0 - 11-Nov-2003 ++ bugs fixed ++ - Calling netwib_io_write on a TCP socket could result in a SIGPIPE sent to program (because send() wasn't called with MSG_NOSIGNAL flag on systems where this flag is supported). ++ major evolutions ++ - Creation of flag NETWIB_BUF_FLAGS_NEEDTOALLOC to create an optional buffer. This type of buffer is allocated only when it is really needed. - Module bufpool now supports memory shared between several threads. ++ minor evolutions ++ None in this version ++ internal evolutions (not seen by end users) ++ - Improvements in genemake file to support a more generic installation. Thanks to Olivier Thauvin. - Functions using netwib_buf_ref_string on parameters now use an internal buffer. --------------------------------------------------------------------- Version 5.4.0 - 28-Oct-2003 ++ bugs fixed ++ None in this version ++ major evolutions ++ - Function netwib_buf_append_char was renamed to netwib_buf_append_byte. - Function netwib_io_init_sock_tcp_ser is no more blocking awaiting for a client to connect. Function netwib_io_wait can now be used for waiting. ++ minor evolutions ++ - Support for gcc 3.3.2 (and others) having -fstrict-aliasing in default O2 optimization. Flag -fno-strict-aliasing is now set. Note: ISO C changed to be more strict. However, this leads to complex code when two types are not exactly the same (forced usage of unions instead of cast). The major problem for netwib is allocator functions and ring/hash functions. Those functions are clean (there is no bug) but when the compiler optimize them, it introduce bugs... After looking around to see how other projects are dealing with this, I found that most of them are deactivating the optimization feature. So, I'll do as my friends : gcc -O2 -fno-strict-aliasing. - Function netwib_dir_next now returns canonized filenames. - Creation of function netwib_unix_symlink. ++ internal evolutions (not seen by end users) ++ - Under Windows, function LoadLibrary is now wrapped in a common function searching in system directories first. This is better for users loading netwib at run time, but it does not help when a program, such as netwox, is linked with netwib. - Several files contained tabulations instead of spaces. --------------------------------------------------------------------- Version 5.3.0 - 19-Oct-2003 ++ bugs fixed ++ - Under Windows, functions netwib_filename_rename and netwib_dirname_rename did not work if destination file previously existed. This bug is the same as the one corrected in 5.2.0. This is not really clear to me, nor in msdn documentation, but rename can return errno EEXIST or EACCES depending on context. So now I just hope all error cases are checked :) - In functions displaying packets, if an header is not decoded, it is printed as data. However, a transition was not printed in this case. So, a space or a newline was not printed between the header and the data. - UDP header decoding had an useless/invalid test causing valid headers to be rejected. ++ major evolutions ++ - A netwib_buf can be configured using a bitfield. A new kind of buffer management is provided : if an external array is too short, an allocated memory is used instead. - Several performance improvements in sys/io module. ++ minor evolutions ++ - Creation of functions netwib_buf_append_pkt_data and netwib_pkt_data_display. - In netwib_localtime, a new parameter, named zoneoffset, corresponds to offset between localtime and GMT. ++ internal evolutions (not seen by end users) ++ - Use of the new feature provided by dat/buf module. - Use of the new features provided by sys/io module. --------------------------------------------------------------------- Version 5.2.0 - 05-Oct-2003 ++ bugs fixed ++ - Under Windows, functions netwib_filename_rename and netwib_dirname_rename did not work if destination file previously existed. - In function netwib_threadlist_wait, when waiting for an infinite time (NETWIB_TIME_INFINITE), parameter pevent was not set. - In function netwib_io_init_sock, there was a memory leak if the socket could not be opened. ++ major evolutions ++ None in this version ++ minor evolutions ++ - Function netwib_buf_append_rand have two mode parameters. Creation of defines netwib_uint32_init_rand_all and netwib_buf_append_rand_all. - Function netwib_buf_init_ext_text can now be initialized with a NULL pointer. It will store an empty buffer. ++ internal evolutions (not seen by end users) ++ None in this version --------------------------------------------------------------------- Version 5.1.0 - 23-Sep-2003 ++ bugs fixed ++ - Functions netwib_c_memmem, netwib_c_strcasecmp, netwib_c_strcasestr and netwib_c_strncasecmp were not exported in netwib51.dll. So, they were not available under Windows. - In netwib-doc_html, links were missing in section files, so it was not possible to navigate in the different modules. - Function netwib_eth_init_ip always returned NETWIB_ERR_OK (even if address was not resolved). - When not called after a configuration function, functions netwib_eth_init_ip and netwib_ip_init_eth could not resolve address of a local device. - Under Linux, netwib_ips_add_buf could not add the local IP address (because getaddrinfo also returned an AF_UNIX). - In netwib_buf_append_icmp4code, "unknown" was displayed even if code was 0 for NETWIB_ICMP4TYPE_ECHOREP/SRCQUENCH/ECHOREQ/ TIMESTAMPREQ/TIMESTAMPREP/INFOREQ/INFOREP. - Functions netwib_encodetype_init_kbd and netwib_record_encodetype_init_kbd returned pressed key number instead of associated encodetype value. - Function netwib_buf_encode did not store last line for NETWIB_ENCODETYPE_DUMP/MIXEDH_WRAP. - Function netwib_io_init_file did not truncate the file when opening it in write mode. - Function netwib_buf_append_pkt_ip displayed udp/tcp/icmp fragments as normal packets. ++ major evolutions ++ - Name changed to netwib. - Parts of module dat/buf.c were rewritten to improve its performance and ease of use. - Meaning of netwib_time in netwib_io_wait has changed. Before, it corresponded to a duration (ie 3 seconds). Now, it is the absolute ending time (ie 2003/08/15 at 13:23:10). Like this, it is more efficient and easier to use (even if it does not at first sight). All other functions having a wait parameter have also changed. ++ minor evolutions ++ - Define NETWIB_CHAR_INIT_KBD_NODEF was missing, so developer had to use 0 instead. - Function netwib_fmt_display now displays a netwib_bool as "true" "false" "yes" "no" etc. instead of only "0"/"1". - Function netwib_fmt_display now displays a netwib_cmp as "<" "=" ">" "lt" "eq" etc. instead of only "-1"/"0"/"+1". - In function netwib_fmt_decode, "%$" can be used to indicate string end. - Function netwib_io_init_sniff_ip now has one more parameter named ipreas. - Function netwib_io_init_spoof_ip now has one more parameter named inittype. - Creation of functions netwib_time_init_localtime and netwib_time_decode_localtime. - Creation of functions netwib_device_hwtype_init_kbd and netwib_device_dlttype_init_kbd. - Creation of function netwib_pkt_convert. - Now, a record file not ending with an empty line is accepted. Before, last packet was not read if user edited file by hand and forgot to put the newline. - Creation of function netwib_c_memcasemem. - Function netwib_buf_append_ips has one more parameter to specify how to display a netwib_ips. - Creation of type NETWIB_DECODETYPE_DATA. - Creation of function netwib_wait_init_thread_cond. - Creation of function netwib_buf_append_rand. - Creation of module dat/bufpool, to deal with a pool of buffers. - Creation of function netwib_io_init_data. ++ internal evolutions (not seen by end users) ++ - Due to several incompatibility problems between systems, sys/priv/kbd.c was partially rewritten. Changes in character echo or line reading are now immediate. - Simplification of net/priv/sa.c dealing with sockaddr. --------------------------------------------------------------------- Version 5.0.0 - 6-Jul-2003 This version is a full rewrite. Everything changed.