resolveHost: Check expected address family on returned address
The code as is never checks the requested address family when doing a DNS query, so resolving an IPv6 only host with AddressFamily.INET would still return an IPv6.
This commit is contained in:
parent
eef6be673b
commit
467c6a0996
2 changed files with 47 additions and 4 deletions
39
tests/pull-218-resolvehost-dns-address-family.d
Normal file
39
tests/pull-218-resolvehost-dns-address-family.d
Normal file
|
@ -0,0 +1,39 @@
|
|||
/+ dub.sdl:
|
||||
name "test"
|
||||
dependency "vibe-core" path=".."
|
||||
+/
|
||||
module test;
|
||||
|
||||
import std.socket: AddressFamily;
|
||||
|
||||
import vibe.core.core;
|
||||
import vibe.core.net;
|
||||
|
||||
void main()
|
||||
{
|
||||
runTask({
|
||||
scope(exit) exitEventLoop();
|
||||
|
||||
auto addr = resolveHost("ip6.me", AddressFamily.INET);
|
||||
assert(addr.family == AddressFamily.INET);
|
||||
|
||||
addr = resolveHost("ip6.me", AddressFamily.INET6);
|
||||
assert(addr.family == AddressFamily.INET6);
|
||||
|
||||
try
|
||||
{
|
||||
resolveHost("ip4only.me", AddressFamily.INET6);
|
||||
assert(false);
|
||||
}
|
||||
catch(Exception) {}
|
||||
|
||||
try
|
||||
{
|
||||
resolveHost("ip6only.me", AddressFamily.INET);
|
||||
assert(false);
|
||||
}
|
||||
catch(Exception) {}
|
||||
});
|
||||
|
||||
runEventLoop();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue