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
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to