The fixed-size array + not needing to do an atomic operation in the
function should allow better compiler optimization.
(And with C++17 the type and size are inferred).
- Move IPRange into its own net/ip_range.hpp
- Move the static net::IPPacket::TruncateV6, etc. functions to free
net::TruncateV6, etc. functions (now from net/ip.hpp instead of
net/ip_packet.hpp).
- Make net::TruncateV6 and net::ExpandV4 constexpr.
- Add IPRange::FromIPv4 factory function (to replace the iprange_ipv4
free function)
This commit reflects changes to clang-format rules. Unfortunately,
these rule changes create a massive change to the codebase, which
causes an apparent rewrite of git history.
Git blame's --ignore-rev flag can be used to ignore this commit when
attempting to `git blame` some code.
- xenial's cmake version (3.5.1) builds everything fine and test suite
passes, so lower the minimum to that.
- add a hack for xenial's kernel header & glibc version breaking if both
net/if.h and linux/if.h get included. The only thing we actually need
from net/if.h that linux/if.h doesn't have is `if_nametoindex`, so
just hack that definition in for xenial's specific glibc/kernel header
versions.