[Dnsmasq-discuss] [PATCH] Fix --server=/#/...... which was lostin 2.86

Matus UHLAR - fantomas uhlar at fantomas.sk
Mon Aug 8 17:09:09 UTC 2022


On 08.08.22 15:35, Simon Kelley wrote:
>Testing, I did find a configuration which is broken:
>
>address=/#/1.1.1.1
>server=/some.domain/#
>
>ought to forward queries for some.domain to the default server(s) read 
>from /etc/resolv.conf (or any other default servers) but it returns 
>1.1.1.1 instead.
>
>https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=f4b281381853df6b275332d4cd0ec1d150bffa86
>
>Fixes this.

this reminds me of a discussion there the OP seemed to deliberately using 
the behaviour above:

https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2021q4/015932.html

IIUC this definitely won't work anymore.


>On 08/08/2022 11:27, Simon Kelley wrote:
>>I'm not sure what you are trying to do here.
>>
>>the /#/ domain is only defined in the man page for --address and it 
>>states that it matches any domain which doesn't have a more specific 
>>match.
>>
>>Even though,
>>
>>server=/#/<ip>
>>
>>is not defined in the documentation; by extension it is exactly the same as
>>
>>server=<ip>
>>
>>
>>Which uses that server when a more specific domain doesn't match.
>>
>>
>>
>>Please could you detail the configuration you are using, what the 
>>current behaviour is, and what behaviour you think it should have?

>>On 23/07/2022 17:06, 谢致邦(XIE Zhibang) via Dnsmasq-discuss wrote:
>>> > If the proposed change is related to commit 26bbf5a314d833bea say so.
>>> > (Yes, I'm asking for an even better commit message.)
>>>I don't think the two are related, the only connection is that 
>>>they are both victims.
>>>
>>> > Why the reshuffle?  What about SERV_DEFAULT 65536 and avoiding 
>>>the reshuffle?
>>>Then the order will be default server, IPv6 literal, IPv4 literal, 
>>>all-zero literal......
>>>Just check the order_qsort() in domain-match.c.
>>>
>>>---Original---
>>>*From:* "Geert Stappers via 
>>>Dnsmasq-discuss"<dnsmasq-discuss at lists.thekelleys.org.uk>
>>>*Date:* Sat, Jul 23, 2022 23:08 PM
>>>*To:* "dnsmasq-discuss"<dnsmasq-discuss at lists.thekelleys.org.uk>;
>>>*Subject:* Re: [Dnsmasq-discuss] [PATCH] Fix --server=/#/...... 
>>>which was lostin 2.86
>>>
>>>On Sat, Jul 23, 2022 at 02:02:31PM +0000, 谢致邦 (XIE Zhibang) via 
>>>Dnsmasq-discuss wrote:
>>> > A victim of the domain-search rewrite.
>>> > --server=/#/...... means to use the server for default. The new
>>> > implementation orders the default server first, but because of the
>>> > rewrote domain-search, it needs strict-order to ensure the default.
>>>
>>>
>>>Much better as only the "git commit summary".
>>>
>>>
>>>If the proposed change is related to commit 26bbf5a314d833bea say so.
>>>(Yes, I'm asking for an even better commit message.)
>>>
>>>
>>> > Signed-off-by: 谢致邦 (XIE Zhibang) <Yeking at Red54.com>
>>> > ---
>>> >  src/dnsmasq.h      | 34 ++++++++++++++++++----------------
>>> >  src/domain-match.c | 15 +++++++++++----
>>> >  src/network.c      |  2 +-
>>> >  3 files changed, 30 insertions(+), 21 deletions(-)
>>> >
>>> > diff --git a/src/dnsmasq.h b/src/dnsmasq.h
>>> > index a8937ce..7512756 100644
>>> > --- a/src/dnsmasq.h
>>> > +++ b/src/dnsmasq.h
>>> > @@ -534,23 +534,24 @@ union mysockaddr {
>>> >
>>> >
>>> >  /* The actual values here matter, since we sort on them to get 
>>>records in the order
>>> > -   IPv6 addr, IPv4 addr, all zero return, resolvconf servers, 
>>>upstream server, no-data return  */
>>> > +   IPv6 addr, IPv4 addr, all zero return, default server, 
>>>resolvconf servers, upstream server, no-data return */
>>> >  #define SERV_LITERAL_ADDRESS    1  /* addr is the answer, or 
>>>NoDATA is the answer, depending on the next four flags */
>>> >  #define SERV_USE_RESOLV         2  /* forward this domain in 
>>>the normal way */
>>> > -#define SERV_ALL_ZEROS          4  /* return all zeros for A 
>>>and AAAA */
>>> > -#define SERV_4ADDR              8  /* addr is IPv4 */
>>> > -#define SERV_6ADDR             16  /* addr is IPv6 */
>>> > -#define SERV_HAS_SOURCE        32  /* source address defined */
>>> > -#define SERV_FOR_NODOTS        64  /* server for names with no 
>>>domain part only */
>>> > -#define SERV_WARNED_RECURSIVE 128  /* avoid warning spam */
>>> > -#define SERV_FROM_DBUS        256  /* 1 if source is DBus */
>>> > -#define SERV_MARK             512  /* for mark-and-delete and 
>>>log code */
>>> > -#define SERV_WILDCARD        1024  /* domain has leading '*' */
>>> > -#define SERV_FROM_RESOLV     2048  /* 1 for servers from 
>>>resolv, 0 for command line. */
>>> > -#define SERV_FROM_FILE       4096  /* read from --servers-file */
>>> > -#define SERV_LOOP            8192  /* server causes forwarding 
>>>loop */
>>> > -#define SERV_DO_DNSSEC      16384  /* Validate DNSSEC when 
>>>using this server */
>>> > -#define SERV_GOT_TCP        32768  /* Got some data from the 
>>>TCP connection */
>>> > +#define SERV_DEFAULT            4  /* Use the server for 
>>>default (need strict-order) */
>>> > +#define SERV_ALL_ZEROS          8  /* return all zeros for A 
>>>and AAAA */
>>> > +#define SERV_4ADDR             16  /* addr is IPv4 */
>>> > +#define SERV_6ADDR             32  /* addr is IPv6 */
>>> > +#define SERV_HAS_SOURCE        64  /* source address defined */
>>> > +#define SERV_FOR_NODOTS       128  /* server for names with no 
>>>domain part only */
>>> > +#define SERV_WARNED_RECURSIVE 256  /* avoid warning spam */
>>> > +#define SERV_FROM_DBUS        512  /* 1 if source is DBus */
>>> > +#define SERV_MARK            1024  /* for mark-and-delete and 
>>>log code */
>>> > +#define SERV_WILDCARD        2048  /* domain has leading '*' */
>>> > +#define SERV_FROM_RESOLV     4096  /* 1 for servers from 
>>>resolv, 0 for command line. */
>>> > +#define SERV_FROM_FILE       8192  /* read from --servers-file */
>>> > +#define SERV_LOOP           16384  /* server causes forwarding 
>>>loop */
>>> > +#define SERV_DO_DNSSEC      32768  /* Validate DNSSEC when 
>>>using this server */
>>> > +#define SERV_GOT_TCP        65536  /* Got some data from the 
>>>TCP connection */
>>>
>>>Why the reshuffle?  What about SERV_DEFAULT 65536 and avoiding the 
>>>reshuffle?

-- 
Matus UHLAR - fantomas, uhlar at fantomas.sk ; http://www.fantomas.sk/
Warning: I wish NOT to receive e-mail advertising to this address.
Varovanie: na tuto adresu chcem NEDOSTAVAT akukolvek reklamnu postu.
Support bacteria - they're the only culture some people have.



More information about the Dnsmasq-discuss mailing list