[Dnsmasq-discuss] strict-order and EDNS0

Karel Bílek kb at karelbilek.com
Thu Jul 11 10:15:53 UTC 2024


Hello.

I have a question about interaction of strict-order and EDNS0. I am looking
at dnsmasq source code and I am not sure if I read it correctly.

When I look into source code, I see this in `src/forward.c`:

```
  /* Note: if we send extra options in the EDNS0 header, we can't recreate
     the query from the reply. */
  if ((RCODE(header) == REFUSED || RCODE(header) == SERVFAIL) &&
      forward->forwardall == 0 &&
      !(forward->flags & FREC_HAS_EXTRADATA))
```

Do I read it correctly, that FREC_HAS_EXTRADATA means that we added EDNS0
options; and therefore  forward->flags & FREC_HAS_EXTRADATA will be true;
and therefore we don't go to the code after `if` and don't retry the query
on the next server?

So that means that we don't retry the query on the next server in the
server order in case of servfail, if the query has EDNS extra options?

Karel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20240711/16cea7b7/attachment-0001.htm>


More information about the Dnsmasq-discuss mailing list