388
390
?line ResolvErr1 = filename:join(DataDir,"resolv.conf.err1"),
389
391
?line inet_parse:resolv(ResolvErr1).
393
parse_address(Config) when is_list(Config) ->
395
[{{0,0,0,0},"0.0.0.0"},
396
{{1,2,3,4},"1.2.3.4"},
397
{{253,252,251,250},"253.252.251.250"},
398
{{1,2,255,254},"1.2.255.254"}],
400
[{{0,0,0,0,0,0,0,0},"::"},
401
{{15,0,0,0,0,0,0,2},"f::2"},
402
{{15,16#f11,0,0,0,0,256,2},"f:f11::0100:2"},
403
{{0,0,0,0,0,0,0,16#17},"::17"},
404
{{16#700,0,0,0,0,0,0,0},"0700::"},
405
{{0,0,0,0,0,0,2,1},"::2:1"},
406
{{0,0,0,0,0,3,2,1},"::3:2:1"},
407
{{0,0,0,0,4,3,2,1},"::4:3:2:1"},
408
{{0,0,0,5,4,3,2,1},"::5:4:3:2:1"},
409
{{0,0,6,5,4,3,2,1},"::6:5:4:3:2:1"},
410
{{0,7,6,5,4,3,2,1},"::7:6:5:4:3:2:1"},
411
{{7,0,0,0,0,0,0,0},"7::"},
412
{{7,6,0,0,0,0,0,0},"7:6::"},
413
{{7,6,5,0,0,0,0,0},"7:6:5::"},
414
{{7,6,5,4,0,0,0,0},"7:6:5:4::"},
415
{{7,6,5,4,3,0,0,0},"7:6:5:4:3::"},
416
{{7,6,5,4,3,2,0,0},"7:6:5:4:3:2::"},
417
{{7,6,5,4,3,2,1,0},"7:6:5:4:3:2:1::"},
418
{{16#c11,16#c22,16#5c33,16#c440,16#55c0,16#c66c,16#77,16#88},
419
"c11:0c22:5c33:c440:55c0:c66c:77:0088"},
420
{{16#c11,0,16#5c33,16#c440,16#55c0,16#c66c,16#77,16#88},
421
"c11::5c33:c440:55c0:c66c:77:0088"},
422
{{16#c11,16#c22,0,16#c440,16#55c0,16#c66c,16#77,16#88},
423
"c11:0c22::c440:55c0:c66c:77:0088"},
424
{{16#c11,16#c22,16#5c33,0,16#55c0,16#c66c,16#77,16#88},
425
"c11:0c22:5c33::55c0:c66c:77:0088"},
426
{{16#c11,16#c22,16#5c33,16#c440,0,16#c66c,16#77,16#88},
427
"c11:0c22:5c33:c440::c66c:77:0088"},
428
{{16#c11,16#c22,16#5c33,16#c440,16#55c0,0,16#77,16#88},
429
"c11:0c22:5c33:c440:55c0::77:0088"},
430
{{16#c11,16#c22,16#5c33,16#c440,16#55c0,16#c66c,0,16#88},
431
"c11:0c22:5c33:c440:55c0:c66c::0088"},
432
{{16#c11,0,0,16#c440,16#55c0,16#c66c,16#77,16#88},
433
"c11::c440:55c0:c66c:77:0088"},
434
{{16#c11,16#c22,0,0,16#55c0,16#c66c,16#77,16#88},
435
"c11:0c22::55c0:c66c:77:0088"},
436
{{16#c11,16#c22,16#5c33,0,0,16#c66c,16#77,16#88},
437
"c11:0c22:5c33::c66c:77:0088"},
438
{{16#c11,16#c22,16#5c33,16#c440,0,0,16#77,16#88},
439
"c11:0c22:5c33:c440::77:0088"},
440
{{16#c11,16#c22,16#5c33,16#c440,16#55c0,0,0,16#88},
441
"c11:0c22:5c33:c440:55c0::0088"},
442
{{16#c11,0,0,0,16#55c0,16#c66c,16#77,16#88},
443
"c11::55c0:c66c:77:0088"},
444
{{16#c11,16#c22,0,0,0,16#c66c,16#77,16#88},
445
"c11:0c22::c66c:77:0088"},
446
{{16#c11,16#c22,16#5c33,0,0,0,16#77,16#88},
447
"c11:0c22:5c33::77:0088"},
448
{{16#c11,16#c22,16#5c33,16#c440,0,0,0,16#88},
449
"c11:0c22:5c33:c440::0088"},
450
{{16#c11,0,0,0,0,16#c66c,16#77,16#88},
451
"c11::c66c:77:0088"},
452
{{16#c11,16#c22,0,0,0,0,16#77,16#88},
453
"c11:0c22::77:0088"},
454
{{16#c11,16#c22,16#5c33,0,0,0,0,16#88},
455
"c11:0c22:5c33::0088"},
456
{{16#c11,0,0,0,0,0,16#77,16#88},
458
{{16#c11,16#c22,0,0,0,0,0,16#88},
460
{{0,0,0,0,0,65535,258,65534},"::FFFF:1.2.255.254"},
461
{{16#ffff,16#ffff,16#ffff,16#ffff,16#ffff,16#ffff,16#ffff,16#ffff},
462
"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"}
463
|[{{D2,0,0,0,0,P,(D1 bsl 8) bor D2,(D3 bsl 8) bor D4},
464
erlang:integer_to_list(D2, 16)++"::"++Q++S}
465
|| {{D1,D2,D3,D4},S} <- V4Strict,
466
{P,Q} <- [{0,""},{16#17,"17:"},{16#ff0,"0ff0:"}]]],
468
[{{10,1,16#98,16#76},"10.0x019876"},
469
{{8#12,1,8#130,8#321},"012.01.054321"},
470
{{255,255,255,255},"255.255.255.0377"},
471
{{255,255,255,255},"0Xff.000000000377.0x0000ff.255"},
472
{{255,255,255,255},"255.255.65535"},
473
{{255,255,255,255},"255.0xFF.0177777"},
474
{{255,255,255,255},"255.16777215"},
475
{{255,255,255,255},"00377.0XFFFFFF"},
476
{{255,255,255,255},"4294967295"},
477
{{255,255,255,255},"0xffffffff"},
478
{{255,255,255,255},"00000000000037777777777"},
479
{{16#12,16#34,16#56,16#78},"0x12345678"},
480
{{16#12,16#34,16#56,16#78},"0x12.0x345678"},
481
{{16#12,16#34,16#56,16#78},"0x12.0X34.0x5678"},
482
{{16#12,16#34,16#56,16#78},"0x12.0X34.0x56.0X78"},
486
{{0,0,0,0},"00.00.00"},
487
{{0,0,0,0},"0.00.0.0"},
488
{{0,0,0,0},"0.0.000000000000.0"}],
490
[{{0,0,0,0,0,65535,(D1 bsl 8) bor D2,(D3 bsl 8) bor D4},S}
491
|| {{D1,D2,D3,D4},S} <- V4Strict++V4Sloppy],
529
"fec0::fFfF:127.0.0.1."],
532
V6Strict++V6Sloppy++V6Err++V4Err),
535
V6Strict++V6Err++V4Err++[S || {_,S} <- V6Sloppy]),
538
V4Strict++V4Sloppy++V4Err++V6Err++[S || {_,S} <- V6Strict]),
541
V4Strict++V4Err++V6Err++[S || {_,S} <- V4Sloppy++V6Strict]).
543
t_parse_address(Func, []) ->
544
io:format("~p done.~n", [Func]),
546
t_parse_address(Func, [{Addr,String}|L]) ->
547
io:format("~p = ~p.~n", [Addr,String]),
548
{ok,Addr} = inet_parse:Func(String),
549
t_parse_address(Func, L);
550
t_parse_address(Func, [String|L]) ->
551
io:format("~p.~n", [String]),
552
{error,einval} = inet_parse:Func(String),
553
t_parse_address(Func, L).
391
557
t_gethostnative(suite) ->[];
392
558
t_gethostnative(doc) ->[];
393
559
t_gethostnative(Config) when is_list(Config) ->