<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-07-23T14:28:21+00:00</updated>
<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>
<entry>
<title>firewall: T5493: Implement remote-group</title>
<updated>2025-03-21T20:08:50+00:00</updated>
<author>
<name>Alex W</name>
<email>embezzle.dev@proton.me</email>
</author>
<published>2025-01-30T20:22:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=9e2bdc96ea63e7ee1adb002df17e0d9ecc1cd410'/>
<id>urn:sha1:9e2bdc96ea63e7ee1adb002df17e0d9ecc1cd410</id>
<content type='text'>
</content>
</entry>
</feed>
