<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/services/vyos-domain-resolver, branch rolling</title>
<subtitle>VyOS command definitions, scripts, and utilities (mirror of https://github.com/vyos/vyos-1x.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-09-26T07:46:08+00:00</updated>
<entry>
<title>vyos.utils: T8977: let a caller accept a non-local address as assigned</title>
<updated>2026-09-26T07:46:08+00:00</updated>
<author>
<name>Michael Pardatscher</name>
<email>michael.pardatscher@studyly.com</email>
</author>
<published>2026-09-25T17:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=733c07f3f9da8bca45f97abbd4521fc61b4a3812'/>
<id>urn:sha1:733c07f3f9da8bca45f97abbd4521fc61b4a3812</id>
<content type='text'>
Whether an address may be bound is not the same question as whether it is
currently configured somewhere: the kernel permits binding a foreign address
once the non-local bind sysctl is set, which is how a failover address is
commonly handed over after the commit. Callers can now opt into that, the
default is unchanged.

A lookup no longer skips the VRF device itself, which carries the addresses
of its own L3 domain, and an interface name can be retrieved for an address
without the caller asking a yes/no question in the first place.

Address and range validation is split into separate checks, so a caller no
longer has to accept ranges where only an address is meaningful. The two
duplicated version checks are dropped in favour of the existing ones.

Co-authored-by: Christian Breunig &lt;christian@breunig.cc&gt;
</content>
</entry>
<entry>
<title>Merge pull request #5327 from BradKollmyer/T9076-remote-group-interval</title>
<updated>2026-07-23T14:28:21+00:00</updated>
<author>
<name>Daniil Baturin</name>
<email>daniil@vyos.io</email>
</author>
<published>2026-07-23T14:28:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=3668d1eec819d545ec29bd56a98e22ce4775156e'/>
<id>urn:sha1:3668d1eec819d545ec29bd56a98e22ce4775156e</id>
<content type='text'>
firewall: T9076: add per-remote-group update interval</content>
</entry>
<entry>
<title>utils: T9008: migrate remaining cmd() callers to cmdl() and remove cmd()</title>
<updated>2026-07-17T16:10:08+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-07-09T20:21:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=e0684c0c343835c7674a94424d847592511915b0'/>
<id>urn:sha1:e0684c0c343835c7674a94424d847592511915b0</id>
<content type='text'>
Complete the safer-subprocess migration started by the cmdl()/ifconfig
refactoring and convert every remaining vyos.utils.process.cmd() call site to
the list-based cmdl().

Drop the vyos.utils.process.cmd() implementation as it is no longer in use.
</content>
</entry>
<entry>
<title>firewall: T9076: add per-remote-group update interval</title>
<updated>2026-07-10T23:31:18+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-07-10T21:54:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=91850ce83561cdd24f21a0dfa67d0754b0ff5e80'/>
<id>urn:sha1:91850ce83561cdd24f21a0dfa67d0754b0ff5e80</id>
<content type='text'>
Add 'set firewall group remote-group &lt;name&gt; interval &lt;value&gt;' to
control how often each remote group list is re-downloaded,
independent of the global resolver-interval that also drives
domain-group/FQDN resolution.

The value accepts plain seconds or time-unit suffixes s/m/h/d/w
(e.g. 4h), range 60 seconds to 4 weeks, enforced at commit time
after conversion. When unset, the group keeps following
'firewall global-options resolver-interval', so existing
configurations are unaffected.

vyos-domain-resolver now tracks a last-update timestamp per
remote group and sleeps until the next due update instead of a
fixed resolver-interval tick, honoring per-group intervals both
shorter and longer than the global one. A group is only stamped
as updated after a successful download; failed downloads fall
back to the cached list and are retried at the resolver cadence
rather than after the full group interval.

human_to_seconds() now treats a plain number as seconds instead
of returning 0.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>remote: T8829: fall back to GET when HEAD is not supported</title>
<updated>2026-06-21T22:42:29+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-06-21T22:31:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=516eccd41b75bbfd237440d919ef5292215ba30d'/>
<id>urn:sha1:516eccd41b75bbfd237440d919ef5292215ba30d</id>
<content type='text'>
HttpC.download() always probed remote URLs with HEAD before GET to
discover redirects and Content-Length. Some APIs (e.g. AbuseIPDB)
reject HEAD with 405 Method Not Allowed, causing firewall remote-group
downloads to fail and leave empty cached list files.

Treat HEAD 405/501 as unsupported and proceed with GET using the
original URL. When HEAD does not provide Content-Length, read it from
the GET response headers instead. Validate available storage after
determining file size and before opening the destination file.

Log sanitized download errors in vyos-domain-resolver when a remote-
group list-file fetch fails. Add unit tests with mock servers that
return 405 or 501 on HEAD and 200 on GET.
</content>
</entry>
<entry>
<title>firewall: T8991: Fix IndexError with domain resolver mishandling blank lines</title>
<updated>2026-06-17T08:31:08+00:00</updated>
<author>
<name>sarthurdev</name>
<email>965089+sarthurdev@users.noreply.github.com</email>
</author>
<published>2026-06-17T08:31:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=0802000d23b9b3b9d91953ba3e71a290a197a0b0'/>
<id>urn:sha1:0802000d23b9b3b9d91953ba3e71a290a197a0b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wlb: T114: Add firewall group support for WAN load balancer</title>
<updated>2025-09-10T10:09:09+00:00</updated>
<author>
<name>sarthurdev</name>
<email>965089+sarthurdev@users.noreply.github.com</email>
</author>
<published>2025-09-10T08:44:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=ae732fb0eb1dd352ba0b97b07aaf3db9c514ea19'/>
<id>urn:sha1:ae732fb0eb1dd352ba0b97b07aaf3db9c514ea19</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T7591: remove copyright years from source files</title>
<updated>2025-06-28T21:16:52+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2025-06-28T18:51:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=1478516ae437f19ebeb7d6ff9b83dd74f8e76758'/>
<id>urn:sha1:1478516ae437f19ebeb7d6ff9b83dd74f8e76758</id>
<content type='text'>
The legal team says years are not necessary so we can go ahead with it, since
it will simplify backporting.

Automatically removed using: git ls-files | grep -v libvyosconfig | xargs sed -i -E \
's/^# Copyright (19|20)[0-9]{2}(-[0-9]{4})? VyOS maintainers.*/# Copyright VyOS maintainers and contributors &lt;maintainers@vyos.io&gt;/g'

In addition we will error-out during "make" if someone re-adds a legacy
copyright notice
</content>
</entry>
<entry>
<title>T7386: firewall: allow mix of IPv4 and IPv6 addresses/prefixes/ranges in remote groups</title>
<updated>2025-05-07T14:55:00+00:00</updated>
<author>
<name>Mark Hayes</name>
<email>mark.hayes0338@gmail.com</email>
</author>
<published>2025-04-25T15:10:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=02c63e7ded23ea90d55638f768ff943671c2c574'/>
<id>urn:sha1:02c63e7ded23ea90d55638f768ff943671c2c574</id>
<content type='text'>
</content>
</entry>
<entry>
<title>firewall: T7333: Use separate cache keys per inet family</title>
<updated>2025-04-08T20:36:07+00:00</updated>
<author>
<name>sarthurdev</name>
<email>965089+sarthurdev@users.noreply.github.com</email>
</author>
<published>2025-04-08T20:36:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=8ca2d3486e2c0b3fde944a46086a625928814a79'/>
<id>urn:sha1:8ca2d3486e2c0b3fde944a46086a625928814a79</id>
<content type='text'>
Cache keys were shared by IPv4/IPv6 resolution, causing script to try populate ipv6 sets with ipv4 addresses
</content>
</entry>
</feed>
