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