summaryrefslogtreecommitdiff
path: root/doc/CHANGELOG
diff options
context:
space:
mode:
Diffstat (limited to 'doc/CHANGELOG')
-rw-r--r--doc/CHANGELOG849
1 files changed, 849 insertions, 0 deletions
diff --git a/doc/CHANGELOG b/doc/CHANGELOG
new file mode 100644
index 0000000..39b52f3
--- /dev/null
+++ b/doc/CHANGELOG
@@ -0,0 +1,849 @@
+===============================================================================
+ $Id: CHANGELOG,v 1.26 2004/11/09 07:05:06 mike Exp $
+ LIBNET 1.1 (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
+ http://www.packetfactory.net/libnet
+===============================================================================
+
+
+- 1.2
+
+ - Prepare for 1.2 release candidate 3 (Sam Roberts)
+ - Remove obsolete SYMBOL_CACHE_SIZE from doxygen.conf (Sam Roberts)
+ - For samples, netinet/in.h is not on windows (Sam Roberts)
+ - Fix errors with missing IPPROTO_MH on windows (Sam Roberts)
+ - Factorize socket setup code for socket opening (Eric Leblond)
+ - Fix build error in Mac OS X (allfro)
+ - Insource comments and whitespace cleanups (Sam Roberts)
+ - Fix #34 correct checksum caculation when IPv6 extension headers being used (Alexander Koeppe)
+ - Make libnet_get_hwaddr() work with 802.1q interfaces in bpf (BSD). (Thomas Habets)
+ - Update libnet_dll.c (dlwdlw)
+ - Update libnet_raw.c (dlwdlw)
+ - Update CHANGELOG (Sam Roberts)
+ - libnet: Remove unneeded trailing -Wl from -version-info line (Gilles Espinasse)
+ - Prepare for 1.2 release candidate 2 (Sam Roberts)
+ - libnet: libnet_build_snmp fix warning (Gilles Espinasse)
+ - libnet: use LIBNET_*RESOLVE const in libnet_name2addr* (Gilles Espinasse)
+ - libnet: fix i486 sample synflood6 warning (Gilles Espinasse)
+ - Some samples need #include<netinet/in.h> for IPPROTO_* on OpenBSD 5.2 (Thomas Habets)
+ - Better description of .so revioning. (Sam Roberts)
+ - Fix gcc warnings. (Stefanos Harhalakis)
+ - Use @retval for correct man page formatting. (Sam Roberts)
+ - Hide undocumented in auto-generated documentation. (Sam Roberts)
+ - Check for socklen_t (suggested by g.esp and Stefanos Harhalakis) (Sam Roberts)
+ - Update to doxygen 1.8 (Sam Roberts)
+ - Only distribute man pages for libnet headers. (Reported by g.esp) (Sam Roberts)
+ - libnet: update for obsolete INCLUDE directive (Gilles Espinasse)
+ - Fix warning inside comment (Gilles Espinasse)
+ - Prepare for 1.2 release candidate. (Sam Roberts)
+ - Bump libnet versions in preparation for 1.2 release. (Sam Roberts)
+ - Cleaned up references to win32 pre-generated headers (Sam Roberts)
+ - VERSION is ancient and unused (Barak A. Pearlmutter)
+ - autoupdate configure.ac (Barak A. Pearlmutter)
+ - Simplify autogen.sh (suggested by Barak A. Pearlmutter) (Sam Roberts)
+ - Ignore doxygen javascript output (Sam Roberts)
+ - remove autoreconf-installed file (Barak A. Pearlmutter)
+ - Use +AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER (Sam Roberts)
+ - Automatic link options ("#pragma comment(lib, ...)") are only for MSVC (ThomasVolkert)
+ - Added guards around definitions of _GNU_SOURCE to avoid redefinitions (ThomasVolkert)
+ - Avoids several warnings for MS C/C++ compiler (ThomasVolkert)
+ - libnet_open_raw4 doesn't return a SOCKET on win32 (Sam Roberts)
+ - Remove unused STDOUT_FILENO, and dead code that used to use it. (Sam Roberts)
+ - Removed references to removed win32/in_systm.h (Sam Roberts)
+ - git ignore doxygen output (Sam Roberts)
+ - Remove automake reference to win32 header that has been removed. (Sam Roberts)
+ - Fixes error messages sometimes include newline, sometimes not. (Sam Roberts)
+ - Properly set l->err_buf if libnet_ifaddrlist() fails. (Thomas Habets)
+ - Pass build errors to caller of batch files. (Sam Roberts)
+ - dlpi: Try harder to find the device for the interface. (Thomas Habets)
+ - dlpi: Correctly extract the unit number from devices with numbers in their name. (Thomas Habets)
+ - Make interface selection work for interfaces with multiple addresses on them. (Sam Roberts)
+ - memory leak fixed, device list needs to freed after use (Sam Roberts)
+ - uint32 address properly initialized with an address (Sam Roberts)
+ - Reformatted and commented win32 specific code. (Sam Roberts)
+ - Interface selection was ignoring interfaces with ipv6. (Sam Roberts)
+ - Use simple batch file to build for win32. (Sam Roberts)
+ - Use LIBNET_API on public functions, instead of an export file. (Sam Roberts)
+ - Note about libnet_get_prand being secure only on windows. (Sam Roberts)
+ - ignore visual studio output artifacts (Sam Roberts)
+ - Don't need iphlpapi.h included. (Sam Roberts)
+ - Libnet.vcxproj file gained a ProjectGUID property. Hm. (Sam Roberts)
+ - visual studio 2010 project files (Sam Roberts)
+ - Convert uses of non-standard uint to uint32_t. (Sam Roberts)
+ - Compiled on win32 with Visual Studio 2010. (Sam Roberts)
+ - Add build instructions for Visual Studio 2010 (Sam Roberts)
+ - Documentation typo, valid should be invalid. (Sam Roberts)
+ - Replace usage of non-standard uint type with uint32_t. (Sam Roberts)
+ - define INET6 on IRIX, making libnet compile cleanly. (Thomas Habets)
+ - Use LIBNET_BSDISH_OS and LIBNET_BSD_BYTE_SWAP on all darwin architectures. (Kimmo Suominen)
+ - Added BSD byteswap for Darwin. Otherwise sendto() returns EINVAL (Emilio Escobar)
+ - Use a common header to trim cut and paste include blocks. (Sam Roberts)
+ - netinet/in.h is needed for IPPROTO_ and sockaddr_in (reported by Dirk Meyer) (Sam Roberts)
+
+
+- 1.1.6
+
+ - Note about why including libnet.h breaks dnet.h/dumbnet.h (Sam Roberts)
+ - Prepare for 1.1.6-rc3. (Sam Roberts)
+ - Only use getifaddrs() if it exists. (reported by Dagobert Michelsen) (Sam Roberts)
+ - Clean up use of single and bracket quotes. (Sam Roberts)
+ - FreeBSD and Solaris volunteers to contibute. (Sam Roberts)
+ - ICMPv6 struct is too long, so use length macro (sickmind@lavabit.com) (Sam Roberts)
+ - ICMPv6 pblock sizes are needed to calculate IPv6's ip_len (reported by sickmind@lavabit.com) (Sam Roberts)
+ - Prep for 1.1.6 release, such as bumping version (Sam Roberts)
+ - Add people who have volunteered to check release candidates. (Sam Roberts)
+ - Rework libnet_autobuild_ipv6() to eliminate code duplication. (Sam Roberts)
+ - Implemented libnet_autobuild_ipv6() (repolho)
+ - Implemented unix version of libnet_get_ipaddr6() (repolho)
+ - Reintroduce libnet_pblock_record_ip_offset() which is empty. (Sam Roberts)
+ - Make clear that all contributions are under libnet copyright. (Sam Roberts)
+ - Fix doc comment format errors reported by doxygen. (Sam Roberts)
+ - Update for doxygen 1.7.4. (Sam Roberts)
+ - Note that PORTED is no longer maintained. (Sam Roberts)
+ - Note that CONTRIB is no longer maintained. (Sam Roberts)
+ - Prep for upcoming 1.1.6 release. (Sam Roberts)
+ - Remove BUGS, it referred to non-existent code. (Sam Roberts)
+ - Reworked icmpv6 patch to parallel the form of icmpv4 support. (Sam Roberts)
+ - Don't depend on netinet/ip.h. (Sam Roberts)
+ - Remove unused variable. (Sam Roberts)
+ - Support building ICMPv6 packets. (someone)
+ - Fixed typo in error message. (Thomas Habets)
+ - Use SO_BINDTODEVICE to force packets out opened device. (someone)
+ - Always use an IPPROTO of TCP when calculating TCP checksums. (Sam Roberts)
+ - Use correct addr type for addrlen calculation. (someone)
+ - libnet_build_igmp reserved field was mistakenly called 'code' (Sam Roberts)
+ - Documentation doesn't include any gif files. (Sam Roberts)
+ - Enable IPV6 support on Solaris 11. (Rich Burridge)
+ - Trying to fix write errors (Víctor Martínez)
+ - Presence of linux's PF_PACKET sockets is now detected. The acinclude.m4 merged in from packetfactory's 1.1.3-rc branch mysteriously assumed that that there was no PF_PACKET if the target OS was linux, which is the opposite of what we want. (Sam Roberts)
+ - Fix libnet_build_igmp() to not reverse the order of the ip address. libnet APIs that take IP addresses as a uint32_t expect them to already be in network byte order. (Sam Roberts)
+ - pblock_append deals with raw memory and structs, so declare it correctly (Sam Roberts)
+ - Clarified types and sizes of DHCP/BOOTP chaddr, sname, and file. chaddr is a hardware address, with size specified seperately, whereas sname and file are null terminated strings. (Sam Roberts)
+ - Explicitly ignore return value of write (some systems now warn about this). (Sam Roberts)
+ - Synchronize comment about h_len with parameter name in function. (Sam Roberts)
+ - Fixes a buffer overflow issue when copying chaddr, file, and sname fields to the DHCP header. (allfro)
+ - Fixes improper calculation of header size when libnet_pblock_probe is called. payload_s must be added to the header length in order to accommodate for the existence of a non-NULL payload. Otherwise the user is prompted with a 'memcpy would cause overflow' error and the program exits. (allfro)
+ - Fixes incorrect memory block size set in the timeexceed and redirect builders. The n variable does not add the size of the payload (payload_s) for proper allocation of the buffer when payload is not NULL and payload_s is greater than 0. This results in a memcpy buffer overflow error when libnet_pblock_append is called exiting the program. (allfro)
+ - Fixes a bug that incorrectly converts the addr, mask, and next_hop fields to network byte order. Users will usually call libnet_name2addr4 to fill these fields and this function already provides a network byte-ordered value. (allfro)
+ - snap parameter was getting copied into the dhost field. (Sam Roberts)
+ - h_len is no longer used, so pass zero. Coverity noticed that stack garbage was being passed instead of a valid value, its just that the value isn't used, and incluing l->total_size is wrong when the pblock is being updated (though it will work on pblock creation). (Sam Roberts)
+ - Length n should include the value_hdr. (Sam Roberts)
+ - Coverity: UNINIT (Jiri Popelka)
+ - Coverity: REVERSE_INULL (Jiri Popelka)
+ - Coverity: RESOURCE_LEAK (Jiri Popelka)
+ - Coverity: OVERRUN_STATIC (Jiri Popelka)
+ - Coverity: OVERRUN_STATIC (Jiri Popelka)
+ - Coverity: OVERRUN_STATIC (Jiri Popelka)
+ - Coverity: FORWARD_NULL (Jiri Popelka)
+ - Coverity: FORWARD_NULL (Jiri Popelka)
+ - Coverity: CHECKED_RETURN (Jiri Popelka)
+ - mkinstalldirs is replaced by autogen.sh. Maybe it shouldn't be checked in? (Sam Roberts)
+ - autogen retries if /sw/... doesn't exist (Sam Roberts)
+ - build_ipv6: set higher traffic class bits (Ulrich Weber)
+ - Fix missing uint instead of u_int (Dagobert Michelsen)
+
+- 1.1.5
+
+ - IRIX: Get MAC address from ioctl(), not by spawning shell. (Thomas Habets)
+ - Compile fix for IRIX (added includes) (Thomas Habets)
+ - Don't explicitly check for UID 0, we may have capabilities even if not root. (Thomas Habets) (Sam Roberts)
+ - Cleaned up implementations of libnet_get_hwaddr(), some leaked memory, one returned a pointer to data on the stack, and the others return a pointer to static data. I'm settling on the non-reentrant static data form. (Sam Roberts)
+ - Visual C++ compiler(v9.0) uses bitfield type as a hint to pad the bitfield, so struct was too long. (Sam Roberts)
+ - Further simplify autogen.sh (Sam Roberts)
+ - Removed dependency on net/bpf.h, and on pcap.h. (Sam Roberts)
+ - LBL_ALIGN check is unused, removing. (Sam Roberts)
+ - Don't include pcap.h if we've already got net/bpf.h, pcap has it's own bpf. (Sam Roberts)
+ - Make libnet_get_hwaddr work in the last few releases of OpenBSD (stu@spacehopper.org) (Sam Roberts)
+ - Get DLT types from the source, <pcap.h>. (Sam Roberts)
+ - Use autoconf -ivf in autogen.sh (suggested by alon.barlev@gmail.com) (Sam Roberts)
+ - Don't distribute libnet.h, it is generated by configure (alon.barlev@gmail.com) (Sam Roberts)
+ - AIX build failures fixed, cause was inclusion of system headers libnet no longer uses (alon.barlev@gmail.com) (Sam Roberts)
+ - Add a link to the old docs. (Sam Roberts)
+ - Added links to github and sourceforge. (Sam Roberts)
+ - Replace C99/C++ comments with traditional C comments. (alon.barlev@gmail.com) (Sam Roberts)
+ - checksum would segfault if a IP checksum was requested for a non-ipv4 header (Sam Roberts)
+ - Closer backwards compat, assume its ipv4 if it's not ipv6. This seems totally wrong, but so it goes. (Sam Roberts)
+ - Try using the ip_len header field to guess the input buffer's size. (Sam Roberts)
+ - libnet_do_checksum(), despite being "internal", is used by external code. libnet needs to maintain backwards API compatibility, tcpsic from the isic package is an example of a binary failing when calling the new API with the old arguments. (Sam Roberts)
+ - merged icmpv6 patch in, but I believe either it or the sample/icmp6_unreach generates the cksum incorrectly (victor@inliniac.net) (Sam Roberts)
+ - Use libtool-1 or libtool-2 whatever available (alon.barlev@gmail.com) (Sam Roberts)
+ - Avoid looking at /dev and /usr/include when cross-compiling (alon.barlev@gmail.com) Alon: The following code support cross compiling: 1. You CANNOT check for /usr/include stuff as cross compiler is installed else-where. Autoconf know how to do this, use its header detection logic and ask the result. 2. Testing for /dev/ can be done only when not cross compiling... (Sam Roberts)
+ - Corrected target_os check, it was broke for linuxgnu, and m4 syntax was invalid (alon.barlev@gmail.com) Alon:The following change is needed in order to solve two issues: 1. linuxgnu and such target os. 2. You cannot set variable with space before '=' as it tries to execute the variable... 3. Print result of test in case of linux (Sam Roberts)
+ - --with-link-layer broken, was using wrong macro name, and didn't include all link types (Sam Roberts)
+ - ac_cv_c_bigendian is yes, not "big" (alon.barlev@gmail.com) (Sam Roberts)
+ - Remove dead code. (Sam Roberts)
+ - h_len is calculated for ip, udp, tcp, icmp, and igmp, so is allowed to be zero. (Sam Roberts)
+ - libnet_t's fd should be initialized to an invalid value, or libnet_destroy() will close stdin. (Sam Roberts)
+ - Alon's use of AC_CHECK_HEADERS fails to detect headers. Reverted part of 57acd56f09158decb69f301e7547ce8cde6ac63f (Sam Roberts)
+ - With link_none, the link apis were failing with not error message. (Sam Roberts)
+ - man doc makefile wasn't correctly referring to the srcdir (alon.barlev@gmail.com) (Sam Roberts)
+ - Avoid mallocing zero bytes, it perturbs electric fence. (Sam Roberts)
+ - autotools patches for cross compiling and seperate builddir (alon.barlev@gmail.com) (Sam Roberts)
+ - html doc makefile wasn't correctly referring to the srcdir (alon.barlev@gmail.com) (Sam Roberts)
+ - ip_offset is now calculated on the fly, and UDP and TCP no longer use h_len (Sam Roberts)
+ - IP offset calculation should allow nesting of IP protocols. (Sam Roberts)
+ - Remove gccisms in bitfield definitions. (Sam Roberts)
+ - injection type of LIBNET_NONE, for packet construction without injection (also, more const correctness) (Sam Roberts)
+ - Notes about checksumming. (Sam Roberts)
+ - libnet_build_tcp was not returning the ptag. (Sam Roberts)
+ - Packet boundaries are now passed to _do_checksum(), so it can validate its input. Hopefully, this will end the recurring segmentation faults due to buffer overruns. (Sam Roberts)
+ - TCP building is triggering memory overwrites; closer examination shows the link list manipulation to be wrong, and the checksumming approach to be incapable of working. I reworked code to simplify and clarify how it works currently, in preparation to fixing it. (Sam Roberts)
+ - Updated comments and notes. (Sam Roberts)
+ - Null the pointer in the about-to-be-freed structure, not the one on the stack. (Sam Roberts)
+ - Added missing pblock types, and made strings consistent with definitions. (Sam Roberts)
+ - Change version policy, we will be 1.1.4 until 1.1.5 is released. (Sam Roberts)
+ - Bring CHANGELOG up to date with today, and script used to generated it. (Sam Roberts)
+ - Begin implementation and tests for repairing pblocks after an update. (Sam Roberts)
+ - libnet_pblock_insert_before() didn't remove ptag2 from old location (Sam Roberts)
+ - Clarifications in document comments. (Sam Roberts)
+ - Don't doxygen process internal header libnet-headers.h (Sam Roberts)
+ - Declared many constant arguments as const, const-correct code spews warnings when built against libnet. (Sam Roberts)
+ - Include pcap DLT_ types from correct header, was using an internal one before. (Sam Roberts)
+ - Declared many constant arguments as const, const-correct code spews warnings when built against libnet. (Sam Roberts)
+ - Note about build_data, which doesn't update ip_offset, among other problems. (Sam Roberts)
+ - libnet_clear_packet() wasn't clearing all packet context. (Sam Roberts)
+ - Why don't TCP and UDP use the DATA pblock type? (Sam Roberts)
+ - whitespace cleanup (Sam Roberts)
+ - Add libnet_dll.c as extra, so its there for win32, and build libnet_link.c (Sam Roberts)
+ - This file wasn't being built, and needed to include bpf to build. (Sam Roberts)
+ - Forgot to make device a const string here, too. (Sam Roberts)
+ - make string argument constant (Sam Roberts)
+ - only ignore Makefile in libnet/ (Sam Roberts)
+ - Replace u_intX_t with C99 uintX_t. (Thomas Habets)
+ - pclose() following popen(), not fclose() (Thomas Habets)
+ - snoof & dlpi: don't free on libnet_link_close() (Thomas Habets)
+ - Summarize changes for log. (Sam Roberts)
+ - Reindented, removing hard tabs, and using consistent brace positioning. (Sam Roberts)
+ - The non-standard types are no longer used. (Sam Roberts)
+ - /sw/.. path doesn't always exist (Sam Roberts)
+ - src/libnet_link_snoop.c: Only fclose if f!=NULL (Thomas Habets)
+ - src/libnet_link_snoop.c: fixed snoop-based backend. Works on IRIX. (Thomas Habets)
+ - Use uint64_t, not u_int64_t (Thomas Habets)
+ - define a lying gethostbyname2() if it's not defined (Thomas Habets)
+ - define STDOUT_FILENO if it's not defined (Thomas Habets)
+ - configure.in: check for gethostbyname2 (Thomas Habets)
+ - configure.in: Check for uint{16,32,64}_t (Thomas Habets)
+ - Configure switch to install samples (Sam Roberts)
+ - Attempt at applying a patch to get installable samples, which doesn't work. (Sam Roberts)
+ - Pointers not cleared after free could lead to double deallocation. (Sam Roberts)
+ - Convert CRLF to LF. (Sam Roberts)
+ - Auto* changes to work on OS X from git checkout. (Sam Roberts)
+ - Update autobuild endianness and unaligned checks. (Mike Frysinger) (Sam Roberts)
+ - Add srcdir to include path. (Sam Roberts)
+ - Adjust srcdir and builddir so libnet can build out-of-tree (Robin Getz/Mike Frysinger) (Sam Roberts)
+ - Beginning 1.1.5 development. (Sam Roberts)
+
+- 1.1.4
+
+ - Strip CRLF from files not in win32/ (Robert Scheck)
+ - libnet was using HAVE_CONFIG_H in a public header in order to deal with platform types.
+ https://bugzilla.redhat.com/show_bug.cgi?id=501633
+ - Patch to libnet.h.in for compilation on HURD (David Paleino)
+
+- 1.1.3
+
+Merged 1.1.3 release candidate from packet factory, 1.1.2, debian patches, and
+my own fixes, including bugs causing memory corruption:
+
+ - Fixed various errors, including memory corruption, when IPv4 options are
+ modified. (Sam Roberts)
+ - Convert from latin-1 to utf-8, from Robert Scheck. (Sam Roberts)
+ - Fixed doxygen errors and warnings, and added a deveoper script to prepare
+ libnet. (Sam Roberts)
+ - Removed CVS crud, again. (Sam Roberts)
+ - Applied autotools cleanup patch from Stefanos. (Sam Roberts)
+ - Applied patch from Stefanos to remove the autotools ephemera that leaked
+ back in. (Sam Roberts)
+ - Patches from Stefanos. (Sam Roberts)
+ - Updated .so revision to be one backwards compatible interface after
+ 1.1.2.1-fork's. (Sam Roberts)
+ - Fix for debian bug# 418975, IPv6 wasn't updating ip_offset. See
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418975 and sample
+ test_ipv6_icmpv4.c for more information, and reproduction. (Sam Roberts)
+ - merged autogen.sh from 1.1.3, now ltmain.sh comes from autogen.sh (Sam
+ Roberts)
+ - 802.1Q and 802.1X header documentation was incorrectly using /** /** is
+ reserved for doxygen documentation comments, and they didn't have any.
+ That those packet headers, and no others, were marked that way was
+ causing man pages to be generated for them, incomplete man pages that
+ then were being hacked by debian patches 02- and 03-. (Sam Roberts)
+ - Update .so version to be one src change past the last debian release.
+ Debian patches to v1.1.2.1 used 4:0:3, in error, so we use 5:0:4, as per
+ the rules. See Makefile.am comments for reference. (Sam Roberts)
+ - Bug fixes and reproduction code for ip_offset accounting problem in
+ libnet_build_ipv4 (Sam Roberts)
+ - doxygen configuration updated, html seems fine - I don't know about the
+ man pages. (Sam Roberts)
+ - autotools merged from v1.1.3 to v1.1.2 (Sam Roberts)
+ - Remove autotools. And some garbage local files that should not have been
+ in upstream tarball. (Sam Roberts)
+ - Removed object files and cvs conflict residue contained in original
+ package. (Sam Roberts)
+ - debian patch 06 attempts to free the wrong pointer, and also leaks memory
+ from the inner loop. (Sam Roberts)
+ - libnet (inconsistently) uses various signed and/or unsigned typedefs
+ instead of char ANSI C uses char for string literals and the standard
+ library, so this generates many warnings. I've fixed a number of the
+ places where types representing null-terminated strings weren't typed
+ correctly. (Sam Roberts)
+ - 09-fix_hurd-i386_build.patch from debian source package See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - 08-fix_libnet_checksum.c.patch from debian source package See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - 07-add_libnet-cq-end-loop.patch from debian source package See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - 06-fix_libnet_pblock_coalesce_leak.patch from debian source package See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - 04-fix_libnet_build_ntp.patch from debian source package See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - 03-fix_libnet_802_1x_hdr.3.patch from debian source package See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - 02-fix_libnet_802_1q_hdr.3.patch See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - 01-fix_libnet-functions.h.3.patch from debian source package See
+ http://packages.debian.org/source/sid/libnet (Sam Roberts)
+ - strip CVS subdirectories from upstream package (Sam Roberts)
+
+From 1.1.3-rc:
+
+ Added a libnet_version() function
+ Fixed a bug in libnet_build_ntp() where two arguments werent used due to a
+ typo
+ Fixed a bug ln libnet_name2addr4 in which it didnt call hstrerror
+ Fixed a memory leak in libnet_if_addr.c
+ Internals: added a payload builder macro
+ Added an HSRP builder
+ Fixed the cdp.c sample code
+ Added AC_PREREQ(2.50) to configure.in to come correct
+ Added a libnet udp header prototype. We need to add an entire exported
+ interface for the sole purpose of casting captured packets, this will
+ presumably be a part of the pcap integration.
+ Added libnet_adv_write_raw_ipv4()
+ Fixed the checksum function
+ Updated the autoconf/automake stuff to be up to date with the latest
+ versions. We now use libtool.
+ Fixed a signed/unsigned comparison warning in the LIBNET_DO_PAYLOAD() macro
+ Changed all empty function prototypes to contain the void keyword
+ Removed all C++ style comments
+ Removed the configure.in check for strerror()
+
+
+Mon Mar 29 09:23:49 PST 2004 1.1.2.1
+
+ Fixed a typo in the ICMP patch mentioned below
+
+Thu Mar 25 10:49:04 PST 2004 1.1.2
+
+ Fixed the ICMP error message builders (there was a pblock assembly bug
+ that would prevent you from building more than one ICMP {unreach, time
+ exceed, redirect} in succession; the order of operations has changed
+ slightly for building these packets, see the documenation and sample code
+ Added a Sebek builder
+ Fixed a bug in libnet_autobuild_arp() that had it pulling in the address to
+ a pointer instead of just the address
+ Added AM_MAINTAINER_MODE to configure.in
+ Changed the __libnet_dump* namespace to the more descriptive libnet_diag*
+ Added libnet_getpacket_size() to return the size of a packet in a given l
+ Removed "protocol" from the libnet context. It was a waste of four bytes
+ The raw socket interface always uses the "IPPROTO_RAW" protocol
+ Fixed a memory leak in the advanced interface; there is now a function
+ libnet_adv_free_packet() to free the memory allocated for the packet
+ when libnet_adv_cull_packet() is called
+ Fixed a bug on big endian boxes that had TCP and UDP checksums with odd
+ payloads come out incorrect
+ Changes all error messages to look and feel the same:
+ "%s(): foo\n", __func__
+ Added a bunch of htons/htonl fixes
+ Continued to add to the doxygen-based documentation
+ Added support for unconfigured interfaces
+ Changed the number of interfaces libnet can handle from 32 to 512
+ Removed uneeded control structure cruft from libnet_link_dlpi.c
+ Removed sample/ip.c and added sample/ip_link.c and sample/ip_raw.c
+ Added IPv6 fragmentation header builder
+ Added IPv6 routing information header builder
+ Added IPv6 destination options header builder
+ Fixed IPv6 flowlabel and traffic class bitwise math
+
+Tue Nov 25 15:33:27 PST 2003 1.1.1
+
+ Fixed a bug in libnet_build_icmp_redirect: htonl(gateway) --> gateway.
+ Added icmp_redirect.c sample code.
+ Added libnet_autobuild_arp().
+ Added a slightly faster checksum.
+ Added a GRE builder.
+ Fixed a buffer overflow in libnet_build_dhcp().
+ Added more sanity checks to ensure we have proper link or network layer
+ headers when not in advanced mode.
+ Fixed a bug that would sometimes make __libnet_dump_context() crash under
+ linux.
+ Migration from sprintf and strcpy snprintf and strncpy.
+ Fixed bug in libnet_build_ipv4() when calculating size of memory block
+ Removed the support directory -- if you're an OLD version of OpenBSD or
+ FreeBSD you deserve what you get.
+ Added a BGP builder.
+ Changed the error handing functions to be more consistent and use
+ __FUNCTION__.
+ Fixed a bug in libnet_pblock_free() -- replaced it with
+ libnet_pblock_delete().
+ Fixed all of the inconsistencies inside all of the builders and pblock code
+ where some fringe conditions could result in u_longs being crunched into
+ u_shorts.
+ Fixed libnet_pblock_coalesce() to only require one pass through the list.
+ Added better diagnostics (__libnet_dump_context(), __libnet_dump_pblock()).
+ Added Token Ring and FDDI builders (Linux and Solaris only).
+ Added Token Ring and FDDI sample programs.
+ Fixed the handling of TCP and IP payloads when reusing a pblocks.
+ Fixed the handling of IP headers such that if a TCP packet changes size
+ via subsequent calls to libnet_build_tcp(), the IP header automatically
+ changes size as well.
+ Added libnet_pblock_delete() to remove a pblock from the list.
+ Added ip.c sample program (builds an arbitrary IP packet).
+ Added additional payload sanity checks to libnet_build_*.
+ Added a payload to sample/icmp_echo_cq.c.
+ Added an MPLS builder.
+ Added an 802.1x builder.
+ Added an RPC builder! Bout time eh?
+ Fixed do1x.c sample code to make the frame valid.
+ Fixed link-interface semantics under Mac/OSX
+ Changed libnet_stats to all be unsigned long longs to accomodate all of
+ hardcore packet writers.
+ Fixed IPv6 support (to some extent) removed the IP_HDRINCL stuff and
+ reworked the resolver stuff to use net_pton() and inet_ntop().
+ Fixed libnet_build_icmpv4_*() to properly handle the IP header in the
+ payload.
+ Fixed libnet_build_igmp() to handle checksums properly.
+ Fixed a bug in libnet_build_dnsv4() -- now it will work for TCP or UDP --
+ see the sample program for details...
+ Fixed a bug in sample/dhcp_discover.c
+ Added multiple packet interface (called the context queue interface).
+ Until I finish the manpage, see the sample code and README files
+ for instructions on how it works.
+ Fixed Cygwin support.
+ Fixed an OS/X compilation error due to lack of system header files.
+ Fixed OS/X link layer bug.
+ Fixed a bug in pblock_coalesce() that resulted in bad checksums when the
+ advanced mode was enabled.
+ Fixed a potential memory leak in pblock_coalesce().
+ Fixed a potential memory leak in libnet_select_device().
+ Fixed a potential memory leak in libnet_plist_chain_new().
+ Fixed Solaris support for IPv6 address support.
+ Fixed minor bugs in libnet_advanced.c.
+ Added loopback device support.
+
+
+Mon Aug 5 15:18:52 PDT 2002 1.1.0
+
+ First 1.1.0 non-beta release.
+
+ Added libnet_adv_write_link() which allows an advanced user to access
+ libnet's low-level frame injection functionality directly.
+
+
+Wed Jul 10 08:18:15 PDT 2002 1.1.0 Beta 07b
+
+ Added some words to the manpage.
+
+ Fixed a typo in libnet-functions.h -- forgot a comma.
+
+
+Sun Jul 7 10:37:12 PDT 2002 1.1.0 Beta 07a
+
+ My bad. Forgot to `make distclean` before last release resulting in some
+ compilation errors.
+
+ My bad. Forgot to add advanced *_ADV writing support to libnet_write().
+ Simple fix.
+
+
+Tue Jul 2 08:42:57 PDT 2002 1.1.0 Beta 07
+
+ BETA support for IPv6.
+
+ Fixed the IP and TCP options bugs that bound the TCP and IP payloads to
+ the IP and TCP headers respectively and saw options being appended
+ after the payload.
+
+ Added libnet_hex_aton(). This functions reads in arbirtrarily long hex
+ strings from the command line and returns the equivalent byte string. It
+ does an implicit malloc() so make sure to free().
+
+ Frédéric Raynal submitted a patch to break the coalesce loop down to two
+ passes using realloc resulting in a modest performance increase! Cool!
+
+ Added "Advanced Mode" which will initialize the library with additional
+ functionality for advanced users who "know what they're doing". Basically
+ this feature will remove some of the sanity checks libnet does when
+ building and injecting packets, at the programmer's peril. It also exposes
+ the libnet_adv() functions.
+
+ FINALLY changed that irritating struct ether_addr redefintion problem.
+ I internalized the name space of it (-> libnet_ether_addr) so there will
+ be no more issues there. Please update your code accordingly!
+
+ Added IGMP checksum support which was omitted by accident.
+
+ Removed netinet/ip_icmp.h from include list. This was causing problems
+ when including dnet.h which includes other system headers. We can
+ probably stand to remove several headers from libnet.h.in.
+
+ Added sanity check to ensure that when *build_ethernet() is called the
+ injection method is LIBNET_LINK (except when advanced mode is on).
+
+
+Thu Mar 28 22:18:46 PST 2002 1.1.0 Beta 06
+
+ Fixed ICMP unreachable checksum error and payload issues. Now using the
+ payload interface with unreachables will append the payload to the IPv4
+ header of the "offending packet".
+
+ Split STP builder into two; libnet_build_stp_conf() and
+ libnet_build_stp_tcn().
+
+ New CHANGELOG format. :)
+
+
+Mar 24 2002 1.1.0 Beta 05
+
+ New building logic. Top down. Much smarter, we now build packets and
+ frames like an OS kernel.
+
+ Added Cisco ISL builder.
+
+
+Mar 18 2002 1.1.0 Beta 04
+
+ Added an STP builder.
+
+ Hooks for Cisco ISL builder.
+
+ Changed libnet_init() to now accept an IP address for the device (so
+ either "fxp0" or "192.168.0.1" will work).
+
+ Added libnet_clear_packet() to free packet memory when we're done with it.
+
+
+Feb 28 2002 1.1.0 Beta 03
+
+ Added 802.1q, 802.2, 802.3 builders.
+
+
+Feb 25 2002 1.1.0 Beta 02
+
+ Fixed Cygwin support.
+
+
+Feb 01 2002 1.1.0 Beta 01
+
+ Complete new API and overhaul of most everything.
+
+ Improved linux packet socket support.
+
+ Renamed libnet_host_lookup() and libnet_name_resolve() to the more
+ intuitive libnet_addr2name() and libnet_name2addr().
+
+ All of the address resolution functions return host byte order (which
+ is what the build functions want).
+
+ Removed a ton of code from every corner of libnet.
+
+ Removed alot of useless crap:
+ misc directory
+ ports directory
+ util directory
+ cleaned out the test directory and moved it to sample
+
+ The libnet-config script is no longer needed to specify machine
+ endianess -- that has been moved to libnet.h and done at compile time.
+ You can still use it to specify other CPP constants as well as
+ libraries.
+
+ Added cygwin support.
+
+ Hooks for a few ieee 802 builders.
+
+ Added NTP builder.
+
+ Added DHCP builder.
+
+ Added BOOTP builder.
+
+ Added Cisco CDP builder (needs work).
+
+ Added IPSEC builder (needs work).
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ 1.0.2a 02.06.2001 Oops! Messed up the install stuff. Fixed now.
+ Fixed the config.sub to correctly look for arm*
+ architecture.
+ Fixed the test.sh script
+ (Thankz again to syke).
+
+ 1.0.2 02.03.2001 Added OpenBSD 2.7 etherspoof lkm and kernel patch.
+ (Thankz to obecian).
+ Added FreeBSD 4.0-STABLE (and 5.0-CURRENT?)
+ etherspoof kernel patch.
+ (Thankz to Matt Bing).
+ Added FreeBSD 4 support for automagic MAC address
+ spoofing (via ioctl). No more lkm!
+ (Thankz to Toni Andjelkovic).
+ Added VRRP support.
+ Fixed a NULL pointer check in libnet_checksum.c.
+ (Thankz to syke).
+ Fixed a function naming problem in libnet_if_addr.c.
+ (Thankz to gigisull).
+ Fixed a potential byte error in libnet_version.
+ (Thankz to wotan).
+ Fixed a potential overflow in
+ libnet_link_sockpacket.c and libnet_link_dlpi.c.
+ (Thankz to Jarno Huuskonen).
+ Fixed a manpage discrepancy (get_ip_addr returns
+ host-byte, not network-byte).
+ Fixed arena allocation code (misalignments and
+ whatnot) and arena manpage entry (2 arguments
+ were swapped).
+ (Thankz to Bryan T. Schmersal).
+ Fixed datatype discrepancies (u_char was used
+ liberally when char should have been used).
+ (Thankz to Kyle Hargraves).
+ Fixed the PF_PACKET interface to work correctly.
+ (Thankz to Smiler).
+
+ 1.0.1b 04.07.2000 Fixed portlist chaining code to allow for more than
+ one active plist chain at a time (as per twitch's
+ patch).
+ Fixed discrepancy between the manpage and code for
+ libnet_close_link_interface. It now returns 1 on
+ success as per libnet standard (thankz to Toni
+ Andjelkovic for pointing this out).
+
+ 1.0.1a 03.29.2000 Fixed a small bug in libnet_link_dlpi.c.
+
+ 1.0.1 12.19.1999 Fixed a typo in libnet-headers.h ARH_H -> ARP_H.
+ Fixed a small typo in ether_mod-2.5.c.
+ Pre-happy BD to libnet! She'z almost 2 yearz old!
+
+ 1.0.0 10.27.1999 Added verbose html documentation.
+ Added verbosely commented example code.
+ Fixed OSPF testcode compile issues.
+ Added ping of death ICMP test code module.
+ Fixed manpage installation wrongness.
+ Fixed a reported bug in OpenBSD etherspoof lkm.
+ Merged OSPF lsa checksum code into main checksum
+ module.
+ Fixed a reported bug in the Makefile.in under
+ Solaris when make install was invoked, the ln
+ failed.
+ Fixed linux-based IP broadcasting using the
+ raw sockets interface.
+
+ 0.99g 09.13.1999 Added an OSPF builder (which is still in beta).
+ Fixed the Linux/configure.in bug. This was an odd
+ bug that affected Linux-based boxes, but not
+ BSD-based machines. The configure script refused
+ to expand most of the Makefile.in macros in every file
+ because of a conditional check.
+ Fixed some Makefile.in issues.
+
+ 0.99f 09.09.1999 Changed test/poink.c to not rely on a previous
+ install of libnet to compile.
+ Added a redhat RPM.
+ Changed sourcefile naming scheme to libnet_*.
+ Removed all assertions from the tree.
+ We are moving closer to a 1.0 release and
+ assertions have no place in production code.
+ Furthermore, there should be no exit points
+ inside a library. Currently, all functions that
+ made assertions now return an integral 1 upon
+ success and a -1 when the assertion would have
+ failed (some had to be changed from returning
+ void to returning int). This will not break
+ backward compatbility.
+ Fixed bugs in the arena code.
+ next_packet_from_arena would never return the
+ first chunk of memory, only the "next". It
+ now handles this special case. Thanks to
+ Sascha Gresk for locating this bug.
+ Fixed another potential bug when attempting
+ to allocate large packet sizes inside an arena.
+ Added an OpenBSD 2.5 ether_spoof lkm.
+ Fixed TCP options bugs.
+
+ 0.99e 07.21.1999 Modified the libnet-config script to work more
+ intutively now. It accepts multiple arguments.
+ See README.libnet-config.
+ Solaris m4/sh fixes (autoconf phase).
+ Internal error handling changed to use libnet_error.
+
+ 0.99d 06.24.1999 Added: build_icmp_redirect().
+ Added: FreeBSD 3.x support for spoofing source.
+ Added: libnet_error().
+ Added: port list chaining code.
+ MAC addrresses (see README.bpf).
+ Bugfix: libnet_select_device correctly accepts
+ NULL device arguments.
+ Bugfix: build_icmp.c now copies the correct amount
+ of header information.
+ Bugfix: OpenBSD needs HAVE_SOCKADDR_SA_LEN.
+ Changed: write_ip internal semantics. Cleaner
+ and faster now.
+ Changed: init_packet argument parameters. More
+ correct now. Takes a u_short vs. a size_t.
+
+ 0.99c 05.28.1999 link_int -> libnet_link_int.
+ Misc small testcode fixes.
+ Added libnet_tcp_header and libnet_ip_header.
+ Added libnet-config shell script, see
+ README.libnet-config and the manpage.
+ Updated ports.
+ Revamped checksum module -- it's much simpler
+ and more efficient (ripped out arch specific
+ code which seemed to be buggy with series' of
+ very large packets). Dug Song wrote it, with
+ small fixes/changes by MDS.
+
+ 0.99b 05.06.1999 Fixed a nasty UDP/TCP + data checksum bug.
+ Header structure further divided into subfiles.
+ Moved get_hwaddr into low-level interface locales.
+ Fixed the BSD get_hwaddr (dugsong@anzen.com).
+ Ported to BSD/OS 3.x.
+ Added `LIBNET_VERSION` symbolic constant.
+ build_ip with payload semantics changed (now
+ requires a payload length which is more
+ intuitive).
+ Fixed the `disappearing MAC address problem`
+ within the linux version of get_hwaddr().
+
+ 0.99a 04.14.1999 Linux 2.0.x kernels don't have <net/ethernet.h>
+ 0.99 included this header file without checking
+ to see if it present. This is now fixed.
+ Non-x86 systems have no tcp_check function but the
+ stub.c sourcefile did not check this. This is now
+ fixed.
+ Added the utilities directory and get_mac.c.
+
+ 0.99 04.13.1999 Major manpage redux.
+ Added (broken?) PF_PACKET support for Linux (see
+ README.linux).
+ Moved alot of m4 from configure.in to aclocal.m4.
+ Added Linux m4 macro to detect PF_PACKET.
+ Added build_icmp_unreach
+ Added build_icmp_timestamp
+ Added standard nomenclature for all the ICMP
+ type/code symbolic constants (see the manpage).
+ Changed internal network structure nomenclature.
+ Decided to stop using the word nomenclature so much.
+ Fixed semantics of get_ipaddr (s/PF_INET/AF_INET).
+ Added a symlink in the install directory so libnet
+ is also named `libpwrite`.
+ Added ASN.1 conversion routines, mostly pilfered
+ from ucd snmplib.
+ Removed get_hwaddr from sockpacket.c and made the
+ existing one portable to Linux.
+ Added more testcode and changed testcode structure
+ to be more intuitive.
+ Added init_packet and destroy_packet.
+ Added an arena allocator.
+ Fixed alignment issues on SPARC and Alpha
+ (possibly others with strict alignment
+ requirements).
+ Added a packet dumping routine. Not fully tested.
+ Testcode updates including a master testcode shell
+ script.
+ Added stub functions to ease the eventual
+ transition to a more proper `libnet_*` function
+ naming convention. See README.stubs for more
+ info.
+
+ 0.10a 02.04.1999 Added the libnet.s2h configuration file to the
+ distribution.
+ GLIBC fix.
+
+ 0.10 01.31.1999 Many low-level changes, same interface though.
+ Split up the main libnet.h file into two files.
+ Autoconf changes:
+ checks to see if the underlying architecture
+ needs to be aligned.
+ flexible install location.
+ explicitly set $CC option in Makefile.in.
+ Added ensure-dir.sh.
+ Changes DEBUG semantics as I was told the previous
+ stuff broke on some compilers.
+ Created a FreeBSD/OpenBSD ports entry.
+ SGI snoop (drain) interface fixed.
+ Solaris/HPUX DLPI interface fixed.
+ Support for getting local IP addresses.
+ Support for getting local hardware addresses.
+ Added a DNS packet builder.
+ Added an RIP packet builder.
+ Added an ICMP MASKREQ/REPLY packet builder.
+ Added ICMP at the link layer test code.
+ Changed GLIBC version detection semantics.
+
+ 0.9 12.15.1998 Major changes/additions here...
+ Added lowlevel packet building and writing
+ routines with a codebase from libpcap.
+ Broken DPLI support (fixme!).
+ Added ethernet and ARP building routines.
+ Added ICMP_ECHO building routine which led to the
+ Discovery of an odd kernel panic bug under
+ OpenBSD (see hook.c in test dir).
+ Added IGMP building routine.
+ Reworked autoconf script.
+ Fixed Linux ip_sum vs. ip_csum naming issue.
+ Fixed Solaris checksums (2.4, 2.5.x).
+ Added NetBSD autoconf entry.
+ Changed BSD_BYTE_SWAP semantics to correctly handle
+ IP datagrams through BPF (see write_ip.c).
+
+ 0.8c 11.10.1998 Added more testcode.
+
+ 0.8b 10.21.1998 OK. I THINK WE'VE FINALLY FIXED THAT GLIBC THING.
+ Ported to alpha Linux.
+
+ 0.8a 10.15.1998 Added support for IP TOS bits (oops. Broke
+ backward compatibility again. Like I said, don't
+ rely on this until 1.x).
+
+ 0.8 10.13.1998 Added support for IP options.
+ Added support for TCP options.
+ Added a dummy version function.
+ Fixed linux libc vs. glibc nomenclature discrepancy.
+ Solaris checksums fixed for non-payload laden
+ packets?
+
+ 0.7b 09.22.1998 Linux glibc/libc nomenclature anomoly still there.
+ Fixed Linux/BSD icmp header size problem.
+
+ 0.7a 08.26.1998 Fixed payload support (see test code).
+
+ 0.7 08.25.1998 Solaris port (checksums broken -- Solaris has gay
+ fucking quirks when it comes to checksumming on
+ raw sockets).
+ Added autoconf scripts.
+ Added psuedorandom number generation code.
+ Added payload support (breaks backward
+ compatability and is untested).
+
+ 0.6 06.21.1998 Fixed UDP checksum. Removed USE_NAME CPP option
+ made it a run time decision. Makes code more
+ extensible, but breaks backward compatibility.
+
+ 0.5 06.02.1998 Added TCP/UDP/IP packet assembly routines.
+ Added a checksum function.
+ Added a manpage.
+ Removed daemonizing function (BSD has one).
+ UDP checksums broken...
+
+ 0.4 01.12.1998 IP checksum (x86 assembly implementation).
+
+ 0.3 01.12.1998 daemonizing function.
+
+ 0.2 01.11.1998 raw socket function changed to allow user
+ designated protocol for raw socket
+
+ 0.1 01.05.1998 Initial release, contains:
+ network byte order -> human readable IP address,
+ human readable IP address -> network byte order,
+ simple raw socket / IP_HDRINCL wrapper,
+ TCP checksum (x86 assembly implementation)
+EOF