Skip to content

Use /dev/socket/dnsproxyd on Android rather than 8.8.8.8 for MX record resolution #4887

@link2xt

Description

@link2xt

Currently the core falls back to using 8.8.8.8 resolver if /etc/resolv.conf is not found, which is the case on Android: https://github.com/deltachat/deltachat-core-rust/blob/2f5c6b5e1601427b1c343f8b385688e9e057b657/src/provider.rs#L163-L177
This fallback was added in #2852

We should fallback to using /dev/socket/dnsproxyd instead which is a stable interface maintained even on newer Android for compatibility reason and it is easy to use: hickory-dns/hickory-dns#652 (comment)
Queries can be created using hickory-proto which is the same library we use for DNS resolution now: https://docs.rs/hickory-proto/latest/hickory_proto/op/query/struct.Query.html

Related forum thread: https://support.delta.chat/t/why-connection-to-googledns-8-8-8-8/2074

For Linux platform this /dev/socket/dnsproxyd can be tried unconditionally as deltachat-rpc-server binaries do not know if they are going to be running on Linux or in Termux on Android.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions