MCPcopy Create free account
hub / github.com/DNSCrypt/encrypted-dns-server / resolve_tcp

Function resolve_tcp

src/resolver.rs:185–211  ·  view source on GitHub ↗
(
    globals: &Globals,
    packet: &mut [u8],
    packet_qname: &[u8],
    tid: u16,
)

Source from the content-addressed store, hash-verified

183}
184
185pub async fn resolve_tcp(
186 globals: &Globals,
187 packet: &mut [u8],
188 packet_qname: &[u8],
189 tid: u16,
190) -> Result<Vec<u8>, Error> {
191 let mut last_error = None;
192 for upstream_addr in &globals.upstream_addrs {
193 match resolve_tcp_single(
194 *upstream_addr,
195 globals.external_addr,
196 packet,
197 packet_qname,
198 tid,
199 globals.tcp_timeout,
200 )
201 .await
202 {
203 Ok(response) => return Ok(response),
204 Err(e) => {
205 trace!("Upstream {} TCP failed: {}", upstream_addr, e);
206 last_error = Some(e);
207 }
208 }
209 }
210 Err(last_error.unwrap_or_else(|| anyhow!("No upstream servers configured")))
211}
212
213pub async fn resolve(
214 globals: &Globals,

Callers 1

resolveFunction · 0.85

Calls 1

resolve_tcp_singleFunction · 0.85

Tested by

no test coverage detected