<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
{font-family:HelveticaNeue;
panose-1:2 0 5 3 0 0 0 2 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
span.apple-converted-space
{mso-style-name:apple-converted-space;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<div>
<div>
<p class="MsoNormal">Looks like I sent my question too soon! I decided to test with 2.91-rc4 and it doesn’t have this problem. Going back through the git history, I see this exact issue was addressed last October:<o:p></o:p></p>
<p class="MsoNormal"> <a href="https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2024q4/017764.html">
https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2024q4/017764.html</a><o:p></o:p></p>
<p class="MsoNormal">And fixed:<o:p></o:p></p>
<p class="MsoNormal"> <a href="https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=f006be7842104a9f86fbf419326b7aad08ade61d">
https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=f006be7842104a9f86fbf419326b7aad08ade61d</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ll move forward with that fix and upgrade to 2.91 when it’s released. Thanks for your time!<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">-- Sam Clippinger <o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">From:
</span></b><span style="color:black">Dimitry Andric <dimitry@unified-streaming.com><br>
<b>Date: </b>Thursday, February 13, 2025 at 12:26</span><span style="font-family:"Arial",sans-serif;color:black"> </span><span style="color:black">PM<br>
<b>To: </b>Clippinger, Sam <Sam.Clippinger@garmin.com><br>
<b>Cc: </b>dnsmasq-discuss@lists.thekelleys.org.uk <dnsmasq-discuss@lists.thekelleys.org.uk><br>
<b>Subject: </b>Re: [Dnsmasq-discuss] dnsmasq v2.90 crashes on reload</span><span lang="EN"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-line-height-alt:.75pt"><span style="font-size:1.0pt;color:white">ZjQcmQRYFpfptBannerEnd<o:p></o:p></span></p>
</div>
<p class="MsoNormal">It looks like glibc's heap checker aborts on a bad free() call, so this is probably due to a double free or a corrupted pointer. If you can recompile dnsmasq, I would attempt to use AddressSanitizer, otherwise run the dnsmasq binary under
valgrind, with --track-origins=yes. It will help if you install debug symbols.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Dimitry<o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On 13 Feb 2025, at 18:14, Clippinger, Sam via Dnsmasq-discuss <dnsmasq-discuss@lists.thekelleys.org.uk> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hello everyone,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">I have found an issue in dnsmasq v2.90 that is causing problems in our Openstack environments. When our Neutron agents rewrite the configs and send a SIGHUP to trigger a reload, dnsmasq will (usually) crash
with a SIGABRT signal. This only seems to happen in our busiest Openstack regions where VMs are coming and going constantly, causing dnsmasq to reload many times per minute. In other regions where there are no new VMs being created, the reloads work fine
with no crashes.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">I investigated in a very busy region where I see dozens of crashes per minute. It is only using dnsmasq for DHCP, it is not receiving DNS queries. This is a production environment, but I rebuilt dnsmasq
with debug symbols and managed to capture this with gdb when it crashes. I tried it a few times and the crash always has the same stack trace.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">################################################################################</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Reading symbols from /usr/lib/debug/usr/sbin/dnsmasq-2.90-1.el9.x86_64.debug...</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Attaching to program: /usr/lib/debug/usr/sbin/dnsmasq-2.90-1.el9.x86_64.debug, process 3075598</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"><snip loading messages></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">[Thread debugging using libthread_db enabled]</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Using host libthread_db library "/lib64/libthread_db.so.1".</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">0x00007ff1c8c62ac7 in poll () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">(gdb) c</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Continuing.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Program received signal SIGHUP, Hangup.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">0x00007ff1c8c62ac7 in poll () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">(gdb) c</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Continuing.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Program received signal SIGABRT, Aborted.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">0x00007ff1c8beca6c in __pthread_kill_implementation () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">(gdb) where</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#0 0x00007ff1c8beca6c in __pthread_kill_implementation () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#1 0x00007ff1c8b9f686 in raise () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#2 0x00007ff1c8b89833 in abort () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#3 0x00007ff1c8b8a170 in __libc_message.cold () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#4 0x00007ff1c8bf6b17 in malloc_printerr () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#5 0x00007ff1c8bf8800 in _int_free () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#6 0x00007ff1c8bfae55 in free () from target:/lib64/libc.so.6</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#7 0x000055f6521e0c18 in dhcp_netid_free (nid=0x7ff1c8bfae55 <free+85>) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:1333</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#8 dhcp_netid_list_free (netid=0x0) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:1363</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#9 dhcp_config_free (config=0x55f652b51a60) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:1381</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#10 0x000055f652b51930 in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#11 0x000055f6529eb1f8 in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#12 0x0000000000000fa4 in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#13 0x000055f6529eaf60 in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#14 0x000055f6529eaf60 in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#15 0x000055f6521f5259 in clear_dynamic_conf () at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:5777</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#16 reread_dhcp () at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/option.c:5818</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#17 clear_cache_and_reload (now=94516438056960) at /usr/src/debug/dnsmasq-2.90-1.el9.x86_64/src/dnsmasq.c:1742</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#18 0x4141414141414141 in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#19 0x0000000067ae1dbd in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">#20 0x0000000000000000 in ?? ()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">(gdb)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">################################################################################</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">The dnsmasq command line looks like this (lightly redacted):</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">dnsmasq --no-hosts --no-resolv \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --pid-file=/var/lib/neutron/dhcp/xxx/pid \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-hostsfile=/var/lib/neutron/dhcp/xxx/host \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --addn-hosts=/var/lib/neutron/dhcp/xxx/addn_hosts \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-optsfile=/var/lib/neutron/dhcp/xxx/opts \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-leasefile=/var/lib/neutron/dhcp/xxx/leases \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-match=set:ipxe,175 \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-userclass=set:ipxe6,iPXE \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --local-service \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --bind-dynamic \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-range=set:subnet-yyy,10.1.1.0,static,255.255.248.0,86400s \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-range=set:subnet-zzz,10.2.1.0,static,255.255.252.0,86400s \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-option-force=option:mtu,1500 \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --dhcp-lease-max=3072 \</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> --conf-file=/etc/neutron/dnsmasq-neutron.conf</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">The /etc/neutron/dnsmasq-neutron.conf file only sets these options (lightly redacted):</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">dhcp-boot=smsboot\<a href="https://urldefense.com/v3/__http:/pxelinux.com/__;!!EJc4YC3iFmQ!SP39hF6YUUH1hXabOudNJJ5wQOQeI2lJZDTLvJcQBOu4ElP5kIeVCUfRTHro-5q1MfhSYmts6NL9A6ZvvHaT1lajMMK7$">pxelinux.com</a>,boothost,10.0.1.2</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">dhcp-option=option:ntp-server,10.0.0.1,10.0.1.1,10.0.2.1</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">The /var/lib/neutron/dhcp/xxx/host file contains between 800-3000 entries, depending on the time of day. They each look something like this (lightly redacted):</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">fa:16:3e:3b:ad:b9,set:16a8f84b90f640f7a2c9a133d844985e,host-10-1-2-3,10.1.2.3</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">The /var/lib/neutron/dhcp/xxx/addn_hosts file contains between 800-3000 entries, depending on the time of day. They each look something like this (lightly redacted):</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">10.1.9.9 <span class="apple-converted-space"> </span><a href="https://urldefense.com/v3/__http:/np0006812233.subdomain.subdomain.mycorp.com/__;!!EJc4YC3iFmQ!SP39hF6YUUH1hXabOudNJJ5wQOQeI2lJZDTLvJcQBOu4ElP5kIeVCUfRTHro-5q1MfhSYmts6NL9A6ZvvHaT1gIMzqkv$">np0006812233.subdomain.subdomain.mycorp.com</a>.
np0006812233</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">The /var/lib/neutron/dhcp/xxx/opts file contains about 190 entries. The top of the file looks like this, the rest of the entries are just like the last two lines, defining more domain-name and domain-search
values for additional subdomains (lightly redacted):</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-xxx,option:dns-server,10.0.0.10,10.0.0.11</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-xxx,option:classless-static-route,10.1.1.0/22,0.0.0.0,169.254.169.254/32,10.2.1.30,0.0.0.0/0,10.2.1.1</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-xxx,249,10.1.1.0/22,0.0.0.0,169.254.169.254/32,10.2.1.30,0.0.0.0/0,10.2.1.1</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-xxx,option:router,10.2.1.1</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-yyy,option:dns-server,0.0.10,10.0.0.11</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-yyy,option:classless-static-route,10.2.1.0/21,0.0.0.0,169.254.169.254/32,10.1.1.30,0.0.0.0/0,10.1.1.1</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-yyy,249,10.2.1.0/21,0.0.0.0,169.254.169.254/32,10.1.1.30,0.0.0.0/0,10.1.1.1</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:subnet-yyy,option:router,10.1.1.1</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:16a8f84b90f640f7a2c9a133d844985e,option:domain-name,<a href="https://urldefense.com/v3/__http:/subdomain.subdomain.mycorp.com/__;!!EJc4YC3iFmQ!SP39hF6YUUH1hXabOudNJJ5wQOQeI2lJZDTLvJcQBOu4ElP5kIeVCUfRTHro-5q1MfhSYmts6NL9A6ZvvHaT1iLcs3Ug$">subdomain.subdomain.mycorp.com</a></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">tag:16a8f84b90f640f7a2c9a133d844985e,option:domain-search,subdomain.subdomain.<span class="apple-converted-space"> </span><a href="https://urldefense.com/v3/__http:/mycorp.com/__;!!EJc4YC3iFmQ!SP39hF6YUUH1hXabOudNJJ5wQOQeI2lJZDTLvJcQBOu4ElP5kIeVCUfRTHro-5q1MfhSYmts6NL9A6ZvvHaT1mKpSkl7$">mycorp.com</a>,subdomain.<span class="apple-converted-space"> </span><a href="https://urldefense.com/v3/__http:/mycorp.com/__;!!EJc4YC3iFmQ!SP39hF6YUUH1hXabOudNJJ5wQOQeI2lJZDTLvJcQBOu4ElP5kIeVCUfRTHro-5q1MfhSYmts6NL9A6ZvvHaT1mKpSkl7$">mycorp.com</a>,<span class="apple-converted-space"> </span><a href="https://urldefense.com/v3/__http:/mycorp.com/__;!!EJc4YC3iFmQ!SP39hF6YUUH1hXabOudNJJ5wQOQeI2lJZDTLvJcQBOu4ElP5kIeVCUfRTHro-5q1MfhSYmts6NL9A6ZvvHaT1mKpSkl7$">mycorp.com</a></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">The /var/lib/neutron/xxx/leases file contains between 800-3000 entries, depending on the time of day. They each look something like this (lightly redacted):</span><o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">1739552375<span class="apple-converted-space"> </span><span style="font-size:11.0pt">fa:16:3e:3b:ad:b9<span class="apple-converted-space"> </span></span>10.1.2.3<span class="apple-converted-space"> </span><span style="font-size:11.0pt">np0006812233<span class="apple-converted-space"> </span></span>*<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">What can I do to help troubleshoot this? I know C but I’m not familiar with the dnsmasq code. Thanks in advance!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-- Sam Clippinger<span class="apple-converted-space"> </span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:HelveticaNeue">_______________________________________________<br>
Dnsmasq-discuss mailing list<br>
</span><a href="mailto:Dnsmasq-discuss@lists.thekelleys.org.uk"><span style="font-size:9.0pt;font-family:HelveticaNeue">Dnsmasq-discuss@lists.thekelleys.org.uk</span></a><span style="font-size:9.0pt;font-family:HelveticaNeue"><br>
</span><a href="https://urldefense.com/v3/__https:/lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss__;!!EJc4YC3iFmQ!SP39hF6YUUH1hXabOudNJJ5wQOQeI2lJZDTLvJcQBOu4ElP5kIeVCUfRTHro-5q1MfhSYmts6NL9A6ZvvHaT1rlZa2mF$"><span style="font-size:9.0pt;font-family:HelveticaNeue">https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss</span></a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>