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