Annotation of embedaddon/libnet/ChangeLog.md, revision 1.1.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>