Annotation of embedaddon/libnet/ChangeLog.md, revision 1.1
1.1 ! misho 1: Change Log
! 2: ==========
! 3:
! 4: All relevant changes are documented in this file. For a complete list
! 5: of contributors, see the GIT commit log.
! 6:
! 7:
! 8: [v1.2][] - 2019-10-16
! 9: ---------------------
! 10:
! 11: Release curated by Sam Roberts and Joachim Nilsson.
! 12:
! 13: ### Changes
! 14:
! 15: - Removed Lua bindings from repo and dist files, now available separately
! 16: - Removed generated HTML and Nroff (man pages) documentation files, must
! 17: be regenerated with Doxygen using `make doc`
! 18: - Add `pkg-config` support with `libnet.pc`, replaces `libnet-config`
! 19: tool, although it is kept for compatibility for now
! 20: - Factorize socket setup code for socket opening to provide output
! 21: device selection for IPv4
! 22: - Make `libnet_get_hwaddr()` work with 802.1q interfaces in bpf (BSD)
! 23: - New API for OSPF HELLO messages, with neighbor
! 24:
! 25: ### Fixes
! 26:
! 27: - Use `getifaddrs()` on OpnBSD and Linux
! 28: - For samples, `netinet/in.h` is not on windows
! 29: - Fix errors with missing `IPPROTO_MH` on windows
! 30: - Fix build error on Mac OS X
! 31: - Fix #34 checksum caculation when IPv6 extension headers being used
! 32: - Remove unneeded trailing `-Wl` from `-version-info` line
! 33: - `libnet_build_snmp()` fix warning
! 34: - Use `LIBNET_*RESOLVE` const in `libnet_name2addr*`
! 35: - Fix i486 sample synflood6 warning
! 36: - Some samples need `#include<netinet/in.h>` for `IPPROTO_*` on OpenBSD 5.2
! 37: - Fix gcc warnings
! 38: - Check for `socklen_t`. Suggested by g.esp and Stefanos Harhalakis
! 39: - libnet: update for obsolete INCLUDE directive
! 40: - Fix warning inside comment
! 41: - Automatic link options `#pragma comment(lib, ...)` are only for MSVC
! 42: - Fix several warnings for MS C/C++ compiler
! 43: - `libnet_open_raw4()` doesn't return a SOCKET on win32
! 44: - Fixes error messages sometimes include newline, sometimes not
! 45: - Properly set `l->err_buf` if `libnet_ifaddrlist()` fails
! 46: - dlpi: Try harder to find the device for the interface
! 47: - dlpi: Correctly extract unit number from devices with numbers in their name
! 48: - Make interface selection work for interfaces with multiple addresses
! 49: - Fix memory leak, device list needs to freed after use
! 50: - Fix file descriptor leak in `libnet_ifaddrlist()`
! 51: - Fix `libnet_get_hwaddr()` for large(!) number of interfaces
! 52: - Fix to support musl libc, removes support for GLIBC <2.1
! 53: - Fix win32 buffer overrun in `libnet_get_ipaddr4()`
! 54: - Interface selection was ignoring interfaces with IPv6
! 55: - Use `LIBNET_API` on public functions, instead of an export file
! 56: - Add Visual Studio 2010 project files, with build instructions
! 57: - Define INET6 on IRIX, making libnet compile cleanly
! 58: - Check for FreeBSD pre-11 before enabling `LIBNET_BSD_BYTE_SWAP`
! 59: - Use `LIBNET_BSDISH_OS` and `LIBNET_BSD_BYTE_SWAP` on Darwin
! 60: - Add BSD byteswap for Darwin. Otherwise `sendto(` returns `EINVAL`
! 61: - `netinet/in.h` is needed for `IPPROTO_` and `sockaddr_in`
! 62:
! 63:
! 64: [v1.1.6][] - 2012-03-06
! 65: -----------------------
! 66:
! 67: Release curated by Sam Roberts.
! 68:
! 69: ### Changes
! 70: - Note about why including libnet.h breaks dnet.h/dumbnet.h (Sam Roberts)
! 71: - Clean up use of single and bracket quotes. (Sam Roberts)
! 72: - FreeBSD and Solaris volunteers to contibute. (Sam Roberts)
! 73: - Prep for 1.1.6 release, such as bumping version (Sam Roberts)
! 74: - Add people who have volunteered to check release candidates. (Sam Roberts)
! 75: - Rework libnet_autobuild_ipv6() to eliminate code duplication. (Sam Roberts)
! 76: - Implemented libnet_autobuild_ipv6() (repolho)
! 77: - Implemented unix version of libnet_get_ipaddr6() (repolho)
! 78: - Reintroduce libnet_pblock_record_ip_offset() which is empty. (Sam Roberts)
! 79: - Make clear that all contributions are under libnet copyright. (Sam Roberts)
! 80: - Update for doxygen 1.7.4. (Sam Roberts)
! 81: - Note that PORTED is no longer maintained. (Sam Roberts)
! 82: - Note that CONTRIB is no longer maintained. (Sam Roberts)
! 83: - Prep for upcoming 1.1.6 release. (Sam Roberts)
! 84: - Remove BUGS, it referred to non-existent code. (Sam Roberts)
! 85: - Reworked icmpv6 patch to parallel the form of icmpv4 support. (Sam Roberts)
! 86: - Don't depend on netinet/ip.h. (Sam Roberts)
! 87: - Remove unused variable. (Sam Roberts)
! 88: - Support building ICMPv6 packets. (someone)
! 89: - Use SO_BINDTODEVICE to force packets out opened device. (someone)
! 90: - Always use an IPPROTO of TCP when calculating TCP checksums. (Sam Roberts)
! 91: - Use correct addr type for addrlen calculation. (someone)
! 92: - libnet_build_igmp reserved field was mistakenly called 'code' (Sam Roberts)
! 93: - Documentation doesn't include any gif files. (Sam Roberts)
! 94: - Enable IPV6 support on Solaris 11. (Rich Burridge)
! 95: - Presence of linux's PF_PACKET sockets is now detected. The acinclude.m4
! 96: merged in from packetfactory's 1.1.3-rc branch mysteriously assumed that
! 97: that there was no PF_PACKET if the target OS was linux, which is the
! 98: opposite of what we want. (Sam Roberts)
! 99: - pblock_append deals with raw memory and structs, so declare it correctly
! 100: (Sam Roberts)
! 101: - Clarified types and sizes of DHCP/BOOTP chaddr, sname, and file. chaddr is a
! 102: hardware address, with size specified seperately, whereas sname and file are
! 103: null terminated strings. (Sam Roberts)
! 104: - Explicitly ignore return value of write (some systems now warn about this).
! 105: (Sam Roberts)
! 106: - Synchronize comment about h_len with parameter name in function. (Sam Roberts)
! 107: - mkinstalldirs is replaced by autogen.sh. Maybe it shouldn't be checked in?
! 108: (Sam Roberts)
! 109: - autogen retries if /sw/... doesn't exist (Sam Roberts)
! 110:
! 111: ### Fixes
! 112:
! 113: - Only use getifaddrs() if it exists. (reported by Dagobert Michelsen) (Sam Roberts)
! 114: - ICMPv6 struct is too long, so use length macro (sickmind@lavabit.com) (Sam Roberts)
! 115: - ICMPv6 pblock sizes are needed to calculate IPv6's ip_len (reported by
! 116: sickmind@lavabit.com) (Sam Roberts)
! 117: - Fix doc comment format errors reported by doxygen. (Sam Roberts)
! 118: - Fixed typo in error message. (Thomas Habets)
! 119: - Trying to fix write errors (Víctor Martínez)
! 120: - Fix libnet_build_igmp() to not reverse the order of the ip address. libnet
! 121: APIs that take IP addresses as a uint32_t expect them to already be in
! 122: network byte order. (Sam Roberts)
! 123: - Fixes a buffer overflow issue when copying chaddr, file, and sname fields to
! 124: the DHCP header. (allfro)
! 125: - Fixes improper calculation of header size when libnet_pblock_probe is
! 126: called. payload_s must be added to the header length in order to accommodate
! 127: for the existence of a non-NULL payload. Otherwise the user is prompted with
! 128: a 'memcpy would cause overflow' error and the program exits. (allfro)
! 129: - Fixes incorrect memory block size set in the timeexceed and redirect
! 130: builders. The n variable does not add the size of the payload (payload_s)
! 131: for proper allocation of the buffer when payload is not NULL and payload_s
! 132: is greater than 0. This results in a memcpy buffer overflow error when
! 133: libnet_pblock_append is called exiting the program. (allfro)
! 134: - Fixes a bug that incorrectly converts the addr, mask, and next_hop fields to
! 135: network byte order. Users will usually call libnet_name2addr4 to fill these
! 136: fields and this function already provides a network byte-ordered
! 137: value. (allfro)
! 138: - snap parameter was getting copied into the dhost field. (Sam Roberts)
! 139: - h_len is no longer used, so pass zero. Coverity noticed that stack garbage
! 140: was being passed instead of a valid value, its just that the value isn't
! 141: used, and incluing l->total_size is wrong when the pblock is being updated
! 142: (though it will work on pblock creation). (Sam Roberts)
! 143: - Length n should include the value_hdr. (Sam Roberts)
! 144: - Coverity: UNINIT (Jiri Popelka)
! 145: - Coverity: REVERSE_INULL (Jiri Popelka)
! 146: - Coverity: RESOURCE_LEAK (Jiri Popelka)
! 147: - Coverity: OVERRUN_STATIC (Jiri Popelka)
! 148: - Coverity: OVERRUN_STATIC (Jiri Popelka)
! 149: - Coverity: OVERRUN_STATIC (Jiri Popelka)
! 150: - Coverity: FORWARD_NULL (Jiri Popelka)
! 151: - Coverity: FORWARD_NULL (Jiri Popelka)
! 152: - Coverity: CHECKED_RETURN (Jiri Popelka)
! 153: - build_ipv6: set higher traffic class bits (Ulrich Weber)
! 154: - Fix missing uint instead of u_int (Dagobert Michelsen)
! 155:
! 156:
! 157: [v1.1.5][] - 2010-11-03
! 158: -----------------------
! 159:
! 160: Release curated by Sam Roberts.
! 161:
! 162: ### Changes
! 163: - IRIX: Get MAC address from `ioctl()`, not by spawning shell. (Thomas Habets)
! 164: - Cleaned up implementations of `libnet_get_hwaddr()`, some leaked
! 165: memory, one returned a pointer to data on the stack, and the others
! 166: return a pointer to static data. I'm settling on the non-reentrant
! 167: static data form. (Sam Roberts)
! 168: - Further simplify `autogen.sh` (Sam Roberts)
! 169: - Removed dependency on `net/bpf.h`, and on `pcap.h`. (Sam Roberts)
! 170: - `LBL_ALIGN` check is unused, removing. (Sam Roberts)
! 171: - Don't include `pcap.h` if we've already got `net/bpf.h`, pcap has it's
! 172: own bpf. (Sam Roberts)
! 173: - Get DLT types from the source, `pcap.h`. (Sam Roberts)
! 174: - Use `autoconf -ivf` in autogen.sh (suggested by alon.barlev@gmail.com)
! 175: (Sam Roberts)
! 176: - Add a link to the old docs. (Sam Roberts)
! 177: - Added links to github and sourceforge. (Sam Roberts)
! 178: - Replace C99/C++ comments with traditional C
! 179: comments. (alon.barlev@gmail.com) (Sam Roberts)
! 180: - Closer backwards compat, assume its ipv4 if it's not ipv6. This seems
! 181: totally wrong, but so it goes. (Sam Roberts)
! 182: - Try using the `ip_len` header field to guess the input buffer's
! 183: size. (Sam Roberts)
! 184: - `libnet_do_checksum()`, despite being "internal", is used by external
! 185: code. libnet needs to maintain backwards API compatibility, tcpsic
! 186: from the isic package is an example of a binary failing when calling
! 187: the new API with the old arguments. (Sam Roberts)
! 188: - Use libtool-1 or libtool-2 whatever available (alon.barlev@gmail.com)
! 189: (Sam Roberts)
! 190: - Remove dead code. (Sam Roberts)
! 191: - h_len is calculated for ip, udp, tcp, icmp, and igmp, so is allowed to
! 192: be zero. (Sam Roberts)
! 193: - Avoid mallocing zero bytes, it perturbs electric fence. (Sam Roberts)
! 194: - `ip_offset` is now calculated on the fly, and UDP and TCP no longer
! 195: use `h_len` (Sam Roberts)
! 196: - IP offset calculation should allow nesting of IP protocols. (Sam Roberts)
! 197: - Remove gccisms in bitfield definitions. (Sam Roberts)
! 198: - injection type `of LIBNET_NONE`, for packet construction without
! 199: injection (also, more const correctness) (Sam Roberts)
! 200: - Notes about checksumming. (Sam Roberts)
! 201: - Updated comments and notes. (Sam Roberts)
! 202: - Added missing pblock types, and made strings consistent with
! 203: definitions. (Sam Roberts)
! 204: - Change version policy, we will be 1.1.4 until 1.1.5 is released. (Sam Roberts)
! 205: - Bring CHANGELOG up to date with today, and script used to generated
! 206: it. (Sam Roberts)
! 207: - Begin implementation and tests for repairing pblocks after an
! 208: update. (Sam Roberts)
! 209: - Clarifications in document comments. (Sam Roberts)
! 210: - Don't doxygen process internal header libnet-headers.h (Sam Roberts)
! 211: - Note about `build_data`, which doesn't update `ip_offset`, among other
! 212: problems. (Sam Roberts)
! 213: - Why don't TCP and UDP use the DATA pblock type? (Sam Roberts)
! 214: - whitespace cleanup (Sam Roberts)
! 215: - Summarize changes for log. (Sam Roberts)
! 216: - Reindented, removing hard tabs, and using consistent brace
! 217: positioning. (Sam Roberts)
! 218: - configure.in: Check for `uint{16,32,64}_t` (Thomas Habets)
! 219: - Use `uint64_t`, not `u_int64_t` (Thomas Habets)
! 220: - configure.in: check for `gethostbyname2()` (Thomas Habets)
! 221: - define a lying `gethostbyname2()` if it's not defined (Thomas Habets)
! 222: - define `STDOUT_FILENO` if it's not defined (Thomas Habets)
! 223: - Configure switch to install samples (Sam Roberts)
! 224: - Attempt at applying a patch to get installable samples, which doesn't
! 225: work. (Sam Roberts)
! 226: - Convert CRLF to LF. (Sam Roberts)
! 227: - Auto* changes to work on OS X from git checkout. (Sam Roberts)
! 228: - Add srcdir to include path. (Sam Roberts)
! 229: - Beginning 1.1.5 development. (Sam Roberts)
! 230:
! 231: ### Fixes
! 232: - Compile fix for IRIX (added includes) (Thomas Habets)
! 233: - Don't explicitly check for UID 0, we may have capabilities even if not
! 234: root. (Thomas Habets) (Sam Roberts)
! 235: - Visual C++ compiler(v9.0) uses bitfield type as a hint to pad the
! 236: bitfield, so struct was too long. (Sam Roberts)
! 237: - Make `libnet_get_hwaddr()` work in the last few releases of OpenBSD
! 238: (stu@spacehopper.org) (Sam Roberts)
! 239: - Don't distribute `libnet.h`, it is generated by `configure`
! 240: (alon.barlev@gmail.com) (Sam Roberts)
! 241: - AIX build failures fixed, cause was inclusion of system headers libnet
! 242: no longer uses (alon.barlev@gmail.com) (Sam Roberts)
! 243: - checksum would segfault if a IP checksum was requested for a non-ipv4
! 244: header (Sam Roberts)
! 245: - merged icmpv6 patch in, but I believe either it or the
! 246: `sample/icmp6_unreach` generates the cksum incorrectly
! 247: (victor@inliniac.net) (Sam Roberts)
! 248: - Avoid looking at `/dev` and `/usr/include` when cross-compiling
! 249: (alon.barlev@gmail.com) Alon: The following code support cross
! 250: compiling: 1. You CANNOT check for `/usr/include` stuff as cross
! 251: compiler is installed else-where. Autoconf know how to do this, use
! 252: its header detection logic and ask the result. 2. Testing for `/dev/`
! 253: can be done only when not cross compiling... (Sam Roberts)
! 254: - Corrected `target_os` check, it was broke for linuxgnu, and m4 syntax
! 255: was invalid (alon.barlev@gmail.com) Alon:The following change is
! 256: needed in order to solve two issues: 1. linuxgnu and such target
! 257: os. 2. You cannot set variable with space before '=' as it tries to
! 258: execute the variable... 3. Print result of test in case of linux (Sam
! 259: Roberts)
! 260: - `--with-link-layer` broken, was using wrong macro name, and didn't
! 261: include all link types (Sam Roberts)
! 262: - `ac_cv_c_bigendian` is yes, not "big" (alon.barlev@gmail.com) (Sam Roberts)
! 263: - `libnet_t`'s fd should be initialized to an invalid value, or
! 264: `libnet_destroy()` will close stdin. (Sam Roberts)
! 265: - Alon's use of `AC_CHECK_HEADERS` fails to detect headers. Reverted
! 266: part of 57acd56f09158decb69f301e7547ce8cde6ac63f (Sam Roberts)
! 267: - With `link_none`, the link apis were failing with not error
! 268: message. (Sam Roberts)
! 269: - man doc makefile wasn't correctly referring to the srcdir
! 270: (alon.barlev@gmail.com) (Sam Roberts)
! 271: - autotools patches for cross compiling and seperate builddir
! 272: (alon.barlev@gmail.com) (Sam Roberts)
! 273: - html doc makefile wasn't correctly referring to the srcdir
! 274: (alon.barlev@gmail.com) (Sam Roberts)
! 275: - `libnet_build_tcp()` was not returning the ptag. (Sam Roberts)
! 276: - Packet boundaries are now passed to `_do_checksum()`, so it can
! 277: validate its input. Hopefully, this will end the recurring
! 278: segmentation faults due to buffer overruns. (Sam Roberts)
! 279: - TCP building is triggering memory overwrites; closer examination shows
! 280: the link list manipulation to be wrong, and the checksumming approach
! 281: to be incapable of working. I reworked code to simplify and clarify
! 282: how it works currently, in preparation to fixing it. (Sam Roberts)
! 283: - Null the pointer in the about-to-be-freed structure, not the one on
! 284: the stack. (Sam Roberts)
! 285: - libnet_pblock_insert_before() didn't remove ptag2 from old location (Sam Roberts)
! 286: - Declared many constant arguments as const, const-correct code spews
! 287: warnings when built against libnet. (Sam Roberts)
! 288: - Include pcap DLT_ types from correct header, was using an internal one
! 289: before. (Sam Roberts)
! 290: - Declared many constant arguments as const, const-correct code spews
! 291: warnings when built against libnet. (Sam Roberts)
! 292: - `libnet_clear_packet()` wasn't clearing all packet context. (Sam Roberts)
! 293: - Add `libnet_dll.c` as extra, so its there for win32, and build
! 294: `libnet_link.c` (Sam Roberts)
! 295: - This file wasn't being built, and needed to include bpf to build. (Sam Roberts)
! 296: - Forgot to make device a const string here, too. (Sam Roberts)
! 297: - make string argument constant (Sam Roberts)
! 298: - only ignore Makefile in `libnet/` (Sam Roberts)
! 299: - Replace `u_intX_t` with C99 `uintX_t`. (Thomas Habets)
! 300: - `pclose()` following `popen()`, not `fclose()` (Thomas Habets)
! 301: - snoof & dlpi: don't free on `libnet_link_close()` (Thomas Habets)
! 302: - The non-standard types are no longer used. (Sam Roberts)
! 303: - `/sw/..` path doesn't always exist (Sam Roberts)
! 304: - `src/libnet_link_snoop.c`: Only fclose if `f!=NULL (Thomas Habets)
! 305: - rc/libnet_link_snoop.c`: fixed snoop-based backend. Works on
! 306: IRIX. (Thomas Habets)
! 307: - Pointers not cleared after free could lead to double
! 308: deallocation. (Sam Roberts)
! 309: - Update autobuild endianness and unaligned checks. (Mike Frysinger)
! 310: (Sam Roberts)
! 311: - Adjust srcdir and builddir so libnet can build out-of-tree (Robin
! 312: Getz/Mike Frysinger) (Sam Roberts)
! 313:
! 314:
! 315: [v1.1.4][] - 2009-06-09
! 316: -----------------------
! 317:
! 318: Release curated by Sam Roberts.
! 319:
! 320: ### Changes
! 321: - Strip CRLF from files not in win32/ (Robert Scheck)
! 322:
! 323: ### Fixes
! 324: - libnet was using `HAVE_CONFIG_H` in a public header to deal with
! 325: platform types. https://bugzilla.redhat.com/show_bug.cgi?id=501633
! 326: - Patch to `libnet.h.in` for compilation on HURD (David Paleino)
! 327:
! 328:
! 329: [v1.1.3][] - 2009-05-11
! 330: -----------------------
! 331:
! 332: Merged 1.1.3 release candidate from packet factory, 1.1.2, debian
! 333: patches, and my own fixes, including bugs causing memory corruption.
! 334:
! 335: Release curated by Sam Roberts.
! 336:
! 337: ### Changes
! 338: - Convert from latin-1 to utf-8, from Robert Scheck. (Sam Roberts)
! 339: - Removed CVS crud, again. (Sam Roberts)
! 340: - Applied autotools cleanup patch from Stefanos. (Sam Roberts)
! 341: - Applied patch from Stefanos to remove the autotools ephemera that leaked
! 342: back in. (Sam Roberts)
! 343: - Updated .so revision to be one backwards compatible interface after
! 344: 1.1.2.1-fork's. (Sam Roberts)
! 345: - merged autogen.sh from 1.1.3, now ltmain.sh comes from autogen.sh (Sam
! 346: Roberts)
! 347: - Update .so version to be one src change past the last debian release.
! 348: Debian patches to v1.1.2.1 used 4:0:3, in error, so we use 5:0:4, as per
! 349: the rules. See Makefile.am comments for reference. (Sam Roberts)
! 350: - autotools merged from v1.1.3 to v1.1.2 (Sam Roberts)
! 351: - Remove autotools. And some garbage local files that should not have been
! 352: in upstream tarball. (Sam Roberts)
! 353: - Removed object files and cvs conflict residue contained in original
! 354: package. (Sam Roberts)
! 355: - doxygen configuration updated, html seems fine - I don't know about the
! 356: man pages. (Sam Roberts)
! 357: - strip CVS subdirectories from upstream package (Sam Roberts)
! 358: - Added a `libnet_version()` function
! 359: - Internals:
! 360: - added a payload builder macro
! 361: - Added an HSRP builder
! 362: - Added `AC_PREREQ(2.50)` to `configure.in` to come correct
! 363: - Added a libnet UDP header prototype. We need to add an entire exported
! 364: interface for the sole purpose of casting captured packets, this will
! 365: presumably be a part of the pcap integration.
! 366: - Added `libnet_adv_write_raw_ipv4()`
! 367: - Updated the autoconf/automake stuff to be up to date with the latest
! 368: versions. We now use libtool.
! 369: - Changed all empty function prototypes to contain the void keyword
! 370: - Removed all C++ style comments
! 371: - Removed the configure.in check for `strerror()`
! 372:
! 373: ### Fixes
! 374: - Fixed various errors, including memory corruption, when IPv4 options
! 375: are modified. (Sam Roberts)
! 376: - Fixed doxygen errors and warnings, and added a deveoper script to
! 377: prepare libnet. (Sam Roberts)
! 378: - Patches from Stefanos. (Sam Roberts)
! 379: - Fix for debian bug 418975, IPv6 wasn't updating `ip_offset`. See
! 380: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418975 and sample
! 381: `test_ipv6_icmpv4.c` for more info and reproduction. (Sam Roberts)
! 382: - 802.1Q and 802.1X header documentation was incorrectly using `/** /**`
! 383: is reserved for doxygen documentation comments, and they didn't have
! 384: any. That those packet headers, and no others, were marked that way
! 385: was causing man pages to be generated for them, incomplete man pages
! 386: that then were being hacked by debian patches 02- and 03-. (Sam
! 387: Roberts)
! 388: - Bug fixes and reproduction code for `ip_offset` accounting problem in
! 389: `libnet_build_ipv4()` (Sam Roberts)
! 390: - debian patch 06 attempts to free the wrong pointer, and also leaks memory
! 391: from the inner loop. (Sam Roberts)
! 392: - libnet (inconsistently) uses various signed and/or unsigned typedefs
! 393: instead of char ANSI C uses char for string literals and the standard
! 394: library, so this generates many warnings. I've fixed a number of the
! 395: places where types representing null-terminated strings weren't typed
! 396: correctly. (Sam Roberts)
! 397: - Merged Debian fixes:
! 398: - 09-fix_hurd-i386_build.patch from debian source package See
! 399: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 400: - 08-fix_libnet_checksum.c.patch from debian source package See
! 401: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 402: - 07-add_libnet-cq-end-loop.patch from debian source package See
! 403: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 404: - 06-fix_libnet_pblock_coalesce_leak.patch from debian source package See
! 405: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 406: - 04-fix_libnet_build_ntp.patch from debian source package See
! 407: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 408: - 03-fix_libnet_802_1x_hdr.3.patch from debian source package See
! 409: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 410: - 02-fix_libnet_802_1q_hdr.3.patch See
! 411: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 412: - 01-fix_libnet-functions.h.3.patch from debian source package See
! 413: http://packages.debian.org/source/sid/libnet (Sam Roberts)
! 414: - Fixed a bug in `libnet_build_ntp()` where two arguments werent used
! 415: due to a typo
! 416: - Fixed a bug ln `libnet_name2addr4()` in which it didnt call hstrerror
! 417: - Fixed a memory leak in `libnet_if_addr.c`
! 418: - Fixed the `cdp.c` sample code
! 419: - Fixed the checksum function
! 420: - Fixed a signed/unsigned comparison warning in the
! 421: `LIBNET_DO_PAYLOAD()` macro
! 422:
! 423:
! 424: [UNRELEASED]: https://github.com/libnet/libnet/compare/v1.2...HEAD
! 425: [v1.2]: https://github.com/libnet/libnet/compare/v1.1.6...v1.2
! 426: [v1.1.6]: https://github.com/libnet/libnet/compare/v1.1.5...v1.1.6
! 427: [v1.1.5]: https://github.com/libnet/libnet/compare/v1.1.4...v1.1.5
! 428: [v1.1.4]: https://github.com/libnet/libnet/compare/v1.1.3...v1.1.4
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>