1Revision history for Perl extension NetAddr::IP::Lite 2 31.57 Fri Mar 25 16:18:26 PDT 2016 4 correct non-suppression of leading zeros in certain instances of 5 new_no use. Thanks to "Mike Bartman (mbartman)" <mbartman@cisco.com> 6 for spotting the bug. 7 81.56 Mon Aug 17 15:35:28 PDT 2015 9 fix typo in Util.pm 1.53 MakefilePL that cause compiler to not be found at all 10 111.55 Thu Aug 13 22:44:48 PDT 2015 12 added method is_local() 13 inspired by request from Xan Charbonne 14 15 fix Util Makefile.PL to accomodate bug in Android's sh 16 17 fix Util/Makefile.PL issue with clang compiler, bug 86831 18 191.54 Wed Jun 11 09:36:10 PDT 2014 20 change input filter for resolvable hostnames 21 to allow the underscore character 22 Thanks to grankio [...] gmail.com for the heads up on this issue. 23 241.53 Sat Apr 5 09:32:11 PDT 2014 25 add documentation about FQDN conversion and 26 an option to disable 27 281.52 Mon Jan 27 11:59:58 PST 2014 29 modify Makefile.PL to bypass missing 'pod2text' 30 311.51 Thu Sep 12 12:54:22 PDT 2013 32 add new6FFFF, RFC4291 compliant ipv4->ipV6 new 33 341.50 Sat May 25 15:10:45 PDT 2013 35 add =encoding UTF-8 36 371.49 Tue Apr 9 12:02:34 PDT 2013 38 In Util.pm v1.50 39 changed Makefile.PL to check for config.h when building for XS 40 with 'gcc', try building with 'cc', and check again. 41 If config.h is not found, force Pure Perl mode. 42 43 Kill XS in winduhs and Darwin, both of which misbehave when compiling XS code 44 451.48 Wed Apr 3 10:52:24 PDT 2013 46 Update Util.pm v1.49 to better detect 'winduhs' 47 481.47 Mon Oct 29 13:30:14 PDT 2012 49 update Lite.pm v1.47 to support bracketed IPv6 URI notation 50 as described in RFC-3986 51 Thanks to Quanah Gibson-Mount mishikal@yahoo.com 52 531.46 Tue Oct 2 12:36:11 PDT 2012 54 correct incorrect format for IPv6 embedded IPv4 addresses 55 in InetBase v0.8 56 571.45 Fri Aug 10 11:46:18 PDT 2012 58 --- 59 601.44 Tue May 8 16:24:03 PDT 2012 61 fixed bug that return $ip->num() = 2^128 for 0.0.0.0/0 62 Thanks to Sebastian <debug@test1.org> for spotting it. 63 641.43 Fri Apr 6 13:19:48 PDT 2012 65 fix bug #75976, change in behavior introduced in v4.050 66 where an empty string supplied to "new" previously returned 67 'undef' and now returns 'default' for ipV4 or ipV6 68 691.42 Wed Mar 7 12:50:04 PST 2012 70 add "is_rfc1918" and tests 71 72 correct typos in documentation 73 741.41 Fri Nov 11 19:23:11 PST 2011 75 up rev for documentation update 76 update documentation in InetBase v0.06 77 781.40 Fri Nov 11 13:20:32 PST 2011 79 add call to InetBase::fillIPv4 to all uses of gethostbyname 80 81 break out the code in InetBase v0.05 that expands short IPv4 82 addresses into dotquad format to account for broken BSD 83 implementations of inet_aton and gethostbyname that do 84 not recognize the short format. EXPORT this as sub 'fillIPv4' 85 86 in Util.pm v1.45, add 'fillIPv4' to calls to gethostbyname to 87 work around broken inet_aton and gethostbyname implementations 88 in certain BSD implementations 89 901.39 Wed Nov 2 19:15:31 PDT 2011 91 bump rev to incorporate 92 improved inet_aton in InetBase v0.04 to overcome broken 93 gethostbyname found in NetBSD and OpenBSD 94 951.38 Fri Oct 28 11:41:22 PDT 2011 96 patch for bug 71869, issues with Math::BigInt varients 97 981.37 Thu Oct 27 12:48:55 PDT 2011 99 add detection of early Math::Bigint 0.01 object structures 100 circa perl 5.6.1 101 102 remove Calc.pm as part of above 103 104 fix bug 71869 - a failed test routine 105 1061.36 Wed Oct 26 08:52:34 PDT 2011 107 fix bug #71925. A a sub-varient of #62521 that showed up only for 108 short notation for IPv4. i.e. 127/n, 127.0/n, 127.0.0/n but 109 not 127.0.0.0/n 110 1111.35 Tue Oct 25 16:18:38 PDT 2011 112 add test for api-version of Math::BigInt to support versions 113 earlier than 1.70, circa Dec 2003. 114 Thanks to Paul Howarth <paul@city-fan.org> for spotting that bug. 115 1161.34 Mon Oct 24 14:38:16 PDT 2011 117 use Math::BigInt::Calc for creating BigInt values and fall 118 back to NetAddr::IP::Calc if Math::BigInt is not present. 119 Thanks to Paul Howarth <paul@city-fan.org> for spotting that bug. 120 121 remove reference to Config{osname} in InetBase.pm v0.03 122 (Util 1.43) 123 1241.33 Sat Oct 22 01:47:42 PDT 2011 125 In Lite/Util/lib/NetAddr/IP/Lite/Util/InetBase.pm v0.02 126 Socket6 prior to version 0.23 does not have AF_INET6 in the 127 EXPORT_OK array, modify InetBase.pm v0.2 to work around this. 128 129 Add support for Math::BigInt objects 130 1311.32 Sat Oct 15 22:05:23 PDT 2011 132 bug68723, add capability to parse input of the form 133 ->new6(12345,1). This should have been there but was 134 missing. Thanks to Andrei Benea for spotting this. 135 136 In Util v1.41 137 add inet_pton, inet_ntop, AF_INET, AF_INET6 138 139 modify inet_n2dx and inet_n2ad to 140 recognize the new 128 bit IPv4 format 141 ::FFFF:FFFF:0:0 142 143 replace isIPv4 with a pure perl version for portablity 144 145 split the following into NetAddr::IP::InetBase v0.01 146 to provide better long term support for IPv6 147 inet_aton 148 inet_ntoa 149 ipv6_aton 150 ipv6_n2x 151 ipv6_n2d 152 inet_any2n 153 inet_n2dx 154 inet_n2ad 155 inet_ntop 156 inet_pton 157 packzeros 158 isIPv4 159 isNewIPv4 160 isAnyIPv4 161 AF_INET 162 AF_INET6 163 1641.31 Sat Oct 8 01:33:44 PDT 2011 165 remove debug print statement from Util.pm v1.40 166 1671.30 Thu Oct 6 23:41:42 PDT 2011 168 correct internal variable reference in Util.pm 1.39 169 1701.29 Thu Oct 6 20:20:33 PDT 2011 171 updated to UTIL 1.38 172 1731.28 Wed Apr 6 11:31:19 PDT 2011 174 Update documentation on the use of "adding constants 175 to an IP address". 176 1771.27 Tue Mar 22 15:26:02 PDT 2011 178 Update Lite.pm to encompass treatment of /31 and /127 179 point-to-point networks as described in RFC 3021 180 181 NOTE: for /31's and /127's 182 this changes the behavior of the following methods: 183 first returns the "network" address 184 last returns the "broadcast" address 185 nth index 0 returns "network" addr instead of undef 186 nth index 1 returns "broadcast" addr instead of undef 187 num returns 2 instead of 0 (zero) 188 189 "old_nth" behavior is unchanged 190 191 Thanks to Todd Caine todd.caine@gmail.com for pointing this out. 192 1931.26 Tue Mar 8 15:18:16 PST 2011 194 Updated "sub num" to support usable IP ranges greater than 2**32 195 196 Thanks to Jan Ploski jan@plosquare.com for finding this bug 197 1981.25 Sat Feb 19 10:04:00 PST 2011 199 correction to use of Util.pm package lexicals 200 201 thanks to mishikal@yahoo.com for spotting the bug and to 202 Mark Martinec mark.martinec+ama...@ijs.si for the solution. 203 2041.24 Fri Dec 17 17:47:47 PST 2010 205 Modify subs "new" and "new6" to accomodate 206 Cisco mask syntax that uses space instead of "/" for a separator 207 This eliminates the need for "new_cis" and "newcis6" which are now 208 deprecated. 209 210 Modify t/v4-cnew.t and add t/v6-cnew.t to test the above 211 2121.23 Fri Nov 19 10:48:01 PST 2010 213 add :upper and :lower to Lite.pm v1.23 214 add comments about rfc5952 requirement for lowercase ipV6 notation 215 add test for :lower 216 2171.22 Tue Nov 16 16:28:37 PST 2010 218 update new6 to properly classify short ipv4 notation 219 i.e. 127/8 with test for ":" rather than match for \d.\d.\d.\d 220 221 thanks to Steve Huff (SHUFF) * shuff@cpan.org for 222 spotting that bug. 223 224 update t/v4-new.t for deprecated array syntax in perl 5.13 225 was: qw(...stuff...) 226 is: (qw(...stuff...)) 227 228 thanks to Todd Rinaldo <toddr@cpan.org> for reporting this 229 2301.21 Thu Oct 28 14:26:19 PDT 2010 231 fix bug where new6 improperly assigns the mask value 232 for and ipv4 address in 32 bit space instead of 128 bit space 233 234 Thanks to Mark Martinec and Steve Huff (SHUFF) * shuff@cpan.org 235 for spotting and replicating that bug 236 237 added new_cis and new_cis6 to Lite.pm v1.21 to accomodate 238 Cisco syntax that has IP and MASK separated by a space. 239 240 Updated typo in documentation that left out example 241 print new6 stuff 242 2431.20 Mon Oct 25 16:22:01 PDT 2010 244 Updated _xnew to properly handle ipV6 notation of the form 245 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx, DDD 246 247 Thanks to Dusty Mabe <Dusty.Mabe@tekelec.com> for spotting this bug 248 2491.19 Wed Sep 29 10:32:50 PDT 2010 250 Conditionalize import of AF_INET6 in Util.pm 251 NetAddr::IP::UtilPolluted 252 2531.18 Wed Sep 22 13:39:08 PDT 2010 254 Added overload => 'ne' and '!=' to Lite.pm 255 2561.17 Tue Sep 21 17:50:50 PDT 2010 257 Pull Socket6 stuff out of Lite and put into 258 NetAddr::IP::Util.pm in its own namespace 259 2601.16 Wed Aug 11 12:45:49 PDT 2010 261 When using Socket6, pull in missing symbol PF_INET6, which may 262 or may not be present, from Socket. 263 2641.15 Tue Jul 20 15:32:23 PDT 2010 265 Resolve named hosts using gethostbyname, followed by gethostbyname6 266 to determine whether to set ipV6 flag 267 268 Thanks to Dusty Mabe <Dusty.Mabe@tekelec.com> for spotting this bug 269 2701.14 Thu Jul 8 18:17:38 PDT 2010 271 added support for the sub "new" to resolve host6 names 272 if the OPTIONAL perl Socket6 module is available 273 2741.13 Tue Dec 9 16:00:35 PST 2008 275 added missing regexp to classify arguments as BCD numbers, 276 apparently this has been missing from NetAddr::IP::Lite 277 since the first release. 278 Thanks to Carlos Vicente cvicente@cpan.org for reporting this bug. 279 280 revised UtilPP v1.7 to work around perl 5.8.4 281 failures with certain @_ operations of goto &sub... 282 see perl bug [ 23429]. Unfortunately, perl-5.8.4 is 283 the distribution of choice for many solaris boxes 284 2851.12 Sun Nov 23 19:32:59 PST 2008 286 repaired missing sub Zeros 287 288 added minus (-) overloading to allow the subtraction 289 of two NetAddr::IP objects to get the difference between 290 the object->{addr}'s as a numeric value 291 Thanks to Rob Riepel <riepel@networking.Stanford.EDU> 292 for the initial code and inspiration for this enhancement 293 2941.11 Sat Nov 1 15:13:48 PST 2008 295 add test for characters not allowed by rfc952 before 296 the call to gethostbyname in sub new() for those people 297 that insist on using deprecated functionality :aton 298 and OS's that fail to notice calls to gethostbyname 299 with binary arguments 300 3011.10 Wed Oct 22 14:54:12 PDT 2008 302 add new no octal method for improperly formatted ipV4 addresses 303 304 In Util.pm v1.22, eliminated dependence on PL_sawampersand 305 thanks to Mark Martinec <Mark.Martinec@ijs.si> 306 for spotting this and submitting a patch. 307 308 In Util.pm v1.22, force -noxs mode for Win32 309 310 In Util.pm v1.22, use autoconf to configure 'C' build 311 3121.09 Thu Oct 16 19:35:33 PDT 2008 313 again... clear build bug for Win32 in Util.pm v 1.21 314 3151.08 Sat Sep 27 12:27:28 PDT 2008 316 in Util v0.19 317 updated test for ENDIANess in siteconf 318 319 add test in inet_aton to detect overange IP dot quad values 320 missed by some broken Socket implementations 321 i.e. 256.1.1.1 322 3231.07 Tue Sep 2 19:09:57 PDT 2008 324 in the off chance that NetAddr::IP::Lite objects are created 325 and the caller later loads NetAddr::IP and expects to use 326 those objects, let the AUTOLOAD routine find and redirect 327 NetAddr::IP::Lite method and subroutine calls to NetAddr::IP. 328 329 updated t/v4-wnew.t so that non-existent 330 domains are "really" not there 331 3321.06 Sat Jun 7 12:57:18 PDT 2008 333 add method "new_from_aton" and related documentation 334 335 comparisons of the form <, >, <=, >= 336 10.0.0.0/24 {operator} 10.0.0.0/16 337 return now return the comparison of the cidr value 338 when the address portion is equal. 339NOTE: this comparison returns the comparison of the NUMERIC 340 value of the CIDR. This produces the counter intuitive result 341 that /24 > /16. There is logic to this, really! For proper 342 operation of commands like "Compact" and "Coalesce", lists of 343 netaddr objects must sort in ascending order. However, this 344 conflicts with the requirement for larger netblocks to sort 345 FIRST so as to include smaller ones. This logic extends to 346 any requirement for a sort of netaddr objects. It should be 347 further noted that the mixing of netaddr objects with varying 348 IP addresses and CIDR allocations can lead to unexpected 349 results since the comparisons done first on the IP portion 350 and then on the CIDR portion. The documentation has been 351 updated appropriately. 352 Thanks to Peter DeVries for spotting this discrepancy 353 3541.05 undocumented 3551.04 undocumented 356 3571.03 Sun Aug 6 10:48:25 PDT 2006 358 update Util.pm v0.18 documentation 359 3601.02 Fri Aug 4 14:14:16 PDT 2006 361 $isV6 global converted to a lexical variable within sub "_xnew" 362 $Class global removed and replaced by calls to UNIVERSAL::isa 363 Thanks to julian@mehnle.net for spotting problems related to 364 using the Lite.pm with mod_perl 365 3661.01 Thu Jul 6 10:46:48 PDT 2006 367 update v4-wnew.t to warn user of possible long wait 368 update Util.pm v0.17 -- see Changes in that distro 369 3701.00 Mon Jun 26 13:34:00 PDT 2006 371 changed behavior of ->nth and ->num 372 to 'exactly' conform to the documentation 373 374 add :old_nth tag to preserve old behavior 375 and update tests to check both 376 3770.12 Sun Jun 25 16:13:00 PDT 2006 378 imported missing 'bcd2bin' 379 380 fixed Util->new() issues with long digit strings 381 ->new('::fffff') and non hex digits ->new('::foo'). 382 Thanks to Radoslaw Zielinski <radek42@gmail.com> 383 for spotting these 3 bugs 384 3850.11 Wed Jun 14 14:53:21 PDT 2006 386 add 'sub new6' and related functionality to methods 387 that print or return v4/6 information or text. 388 389 add $self->{isv6} flag for hint to ipV6 status 390 391 corrected bug in sub num that miscalculated the number 392 of IP's in a net for /31 /32 393 3940.10 Tue Jun 13 14:07:46 PDT 2006 395 bring 'sub new' into full compliance with NetAddr::IP, 396 correct compatibility with for ==,>,<,=>,>=,<=>,cmp 397 and update documentation to reflect actual implementation 398 399 add 'copy' function that return a completely new object 400 401 export (Zero Ones V4mask V4net) 402 403 update Util.pm v0.15 so shiftleft returns original 404 argument when the shift count is zero or undefined 405 4060.09 Tue Jun 6 08:37:01 PDT 2006 407 update Util/Makefile.PM to check for link libraries 408 that ExtUtils::MakeMaker does not find properly 409 410 remove 'use warnings' from Lite.pm for backwards 411 compatibility with older perl versions 412 4130.08 Tue Jun 6 08:33:11 PDT 2006 414 update Util.xs for build on windoze 415 4160.07 Tue Jun 6 08:21:12 PDT 2006 417 update NetAddr::IP::Util to v0.12 418 4190.06 Mon Jun 5 21:34:28 PDT 2006 420 fix Sparc problems in Util v0.11 421 1) add workaround for OS's that do not have inet_aton 422 423 2) add workaround for compilers that do not understand 424 #if MACRO1 == MACRO2 425 4260.05 Sun May 7 18:06:43 PDT 2006 427 updated UtilPP.pm v0.06 to remove unnecessary pack(unpack) sequences 428 to speed up ipv6->4, ipv4->6 conversions 429 4300.04 Fri Apr 28 17:36:28 PDT 2006 431 left Util/Makefile.pl out of the top level distro 432 4330.03 Fri Apr 28 17:26:51 PDT 2006 434 oops! left prerequisite Util 0.08 in the Makefile 435 when it is include in this distro 436 4370.02 Fri Apr 28 16:11:00 PDT 2006 438 update Lite.pm to accept ->new('addr/mask') 439 where addr and mask are both in IP address format 440 441 add test for above t/netaddr.t 442 4430.01 Wed Apr 26 19:03:18 PDT 2006 444 initial release 445