Module sys/dns
DNS resolution operations.
Provides async DNS resolution wrapping getaddrinfo/getnameinfo, plus
accessors for iterating the linked list of addrinfo results.
All async operations return IoFuture which resolves to:
- 0: success
- Non-zero: raw
gai_errorcode (EAI_NONAME,EAI_AGAIN, etc.)
Stability
unstable — a raw wrapper over getaddrinfo/getnameinfo whose results
are a linked list walked through accessor functions and whose errors are
raw gai_error codes, not IoError. std/net/dns's lookup_host is the
typed face and is what callers want.
It is also where a real open question lives rather than just a rough edge: a plaintext connect uses the FIRST address this returns and does not fall back to the next on failure, so a host whose IPv6 route is dead fails instead of reaching its IPv4 address. There is no happy-eyeballs, and the resolver's order decides. Fixing that will change what the typed layer asks of this one.
Functions
Parameters
| Name | Type | Notes |
|---|---|---|
node | *u8 | |
service | ?*u8 | |
hints | ?*u8 | |
result | *?*u8 |
Returns: IoFuture
Parameters
| Name | Type | Notes |
|---|---|---|
addr | *u8 | |
addrlen | u32 | |
host | *u8 | |
hostlen | usize | |
service | *u8 | |
servlen | usize | |
flags | i32 |
Returns: IoFuture
Parameters
| Name | Type | Notes |
|---|---|---|
res | *u8 |
Returns: unit
Returns: *?*u8
Parameters
| Name | Type | Notes |
|---|---|---|
result | *?*u8 |
Returns: ?*u8
Parameters
| Name | Type | Notes |
|---|---|---|
result | *?*u8 |
Returns: unit
Returns: usize
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: i32
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: i32
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: i32
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: i32
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: u32
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: *u8
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: ?*u8
Parameters
| Name | Type | Notes |
|---|---|---|
ai | *u8 |
Returns: ?*u8
Returns: *u8
Parameters
| Name | Type | Notes |
|---|---|---|
hints | *u8 |
Returns: unit