<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libubox, branch master</title>
<subtitle>C utility functions for OpenWrt</subtitle>
<id>https://git.openwrt.org/project/libubox/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/libubox/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/'/>
<updated>2026-03-21T04:01:38Z</updated>
<entry>
<title>uloop: revert my flag changes from the ULOOP_PRIORITY change</title>
<updated>2026-03-21T04:01:38Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-03-21T03:59:28Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=f9b1f3ff17baeb490cc896a037f176c0240ae776'/>
<id>urn:sha1:f9b1f3ff17baeb490cc896a037f176c0240ae776</id>
<content type='text'>
ULOOP_ERROR_CB was accidentally renumbered because it was declared after
the internal flags. Move the flags, and preserve the bit values in order
to avoid unnecesary ABI churn

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>uloop: add ULOOP_PRIORITY support for EPOLLPRI events</title>
<updated>2026-03-20T19:55:30Z</updated>
<author>
<name>Matthew Cather</name>
</author>
<published>2026-02-16T19:44:37Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=895f92164b665ef84ca804873ddb03fb6f7c8b37'/>
<id>urn:sha1:895f92164b665ef84ca804873ddb03fb6f7c8b37</id>
<content type='text'>
Add a new ULOOP_PRIORITY flag to enable subscription to and
delivery of EPOLLPRI events from the Linux kernel.

These interfaces include:

- /proc/pressure/{cpu,memory,io} — PSI threshold monitoring
- /proc/mounts — mount/unmount change notifications
- /proc/mdstat — software RAID state changes
- sysfs attributes using sysfs_notify() (GPIO, hwmon, etc.)

Signed-off-by: Matthew Cather &lt;mattbob4@gmail.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>CMakeLists.txt: remove -Werror=format-nonliteral</title>
<updated>2026-03-12T23:02:08Z</updated>
<author>
<name>Hauke Mehrtens</name>
</author>
<published>2026-03-12T22:39:56Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=815633847cd32ffe6da28943cbeb37edc88265c8'/>
<id>urn:sha1:815633847cd32ffe6da28943cbeb37edc88265c8</id>
<content type='text'>
The musl libc fortify source headers are using a nonliteral format
string in the sprintf() and snprintf() function. Do not fail in libubox.

Not everyone is using the workaround in fortify source headers.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</content>
</entry>
<entry>
<title>usock: implement RFC 8305 Happy Eyeballs for usock_inet_timeout()</title>
<updated>2026-02-13T09:02:57Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-02-13T08:55:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=1aa36ee774c8db4d7a396903e0d2e1fb79ee8bf1'/>
<id>urn:sha1:1aa36ee774c8db4d7a396903e0d2e1fb79ee8bf1</id>
<content type='text'>
Replace the two-slot (one v6 + one v4) connection attempt logic with
a multi-address interleaved approach per RFC 8305:

- Collect all resolved addresses and interleave them by family (v6
  first, then alternating v4/v6) using up to 8 candidates
- Stagger connection attempts with 250ms delay between each
- On connection error (SO_ERROR), immediately remove the failed
  socket and continue with remaining candidates
- First successful connection wins; all other sockets are closed

This handles hosts with multiple addresses per family, which the
previous code discarded.

Fixes: https://github.com/openwrt/uclient/issues/8
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>usock: fix timeout handling in usock_inet_timeout()</title>
<updated>2026-02-13T09:02:45Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-02-13T08:52:09Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=1a73ded9f738d403784aa448910cf5c9f9b05e18'/>
<id>urn:sha1:1a73ded9f738d403784aa448910cf5c9f9b05e18</id>
<content type='text'>
Replace relative timeout arithmetic with an absolute CLOCK_MONOTONIC
deadline computed once at function entry. This avoids the case where
the IPv6 head-start delay subtraction produces a negative timeout for
the subsequent combined poll, causing it to return immediately.

Also give IPv6 a head start of min(300ms, remaining_timeout) instead
of skipping the head start entirely when the total timeout is &lt;= 300ms.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>usock: check SO_ERROR after poll in usock_inet_timeout()</title>
<updated>2026-02-13T09:02:45Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-02-13T08:50:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=0efa2cd3b74ca295362341f7b21f0449066141f5'/>
<id>urn:sha1:0efa2cd3b74ca295362341f7b21f0449066141f5</id>
<content type='text'>
After poll() returns with POLLOUT on a non-blocking connect, the
connection may have failed (ECONNREFUSED, ENETUNREACH, etc.). Check
the socket error via getsockopt(SO_ERROR) before accepting the
connection as successful.

Without this, a fast-failing IPv6 connection would be returned to
the caller instead of falling back to IPv4.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>uloop: use volatile sig_atomic_t for do_sigchld flag</title>
<updated>2026-02-13T09:02:45Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-01-02T20:19:42Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=5ec7ff2effb36bed32de122629b8c1404bd5157a'/>
<id>urn:sha1:5ec7ff2effb36bed32de122629b8c1404bd5157a</id>
<content type='text'>
This flag is written from signal handler context and read from main loop.
Using plain bool violates POSIX signal safety requirements.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>libubox: add anonymous strings, ints, et al in arrays</title>
<updated>2026-02-12T15:57:28Z</updated>
<author>
<name>Philip Prindeville</name>
</author>
<published>2023-09-15T18:35:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=8c7b489daa029b3841584f6ac76e2a0b68d74ef3'/>
<id>urn:sha1:8c7b489daa029b3841584f6ac76e2a0b68d74ef3</id>
<content type='text'>
You can have a "name" in an array member without an associated value.

Signed-off-by: Philip Prindeville &lt;philipp@redfish-solutions.com&gt;
Link: https://github.com/openwrt/libubox/pull/12
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>libubox: document positional arguments</title>
<updated>2026-02-12T15:57:28Z</updated>
<author>
<name>Philip Prindeville</name>
</author>
<published>2023-09-15T19:53:02Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=5a65cb5a79b757d24beeab4144333b012a4935ec'/>
<id>urn:sha1:5a65cb5a79b757d24beeab4144333b012a4935ec</id>
<content type='text'>
Use local variables for positional arguments where they're captured,
and provide comments for position arguments.

Signed-off-by: Philip Prindeville &lt;philipp@redfish-solutions.com&gt;
Link: https://github.com/openwrt/libubox/pull/12
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>libubox: send warnings to stderr</title>
<updated>2026-02-12T15:57:28Z</updated>
<author>
<name>Philip Prindeville</name>
</author>
<published>2023-09-16T21:13:06Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/libubox/commit/?id=d324c0503040914dd125298093c83fd07bf9f012'/>
<id>urn:sha1:d324c0503040914dd125298093c83fd07bf9f012</id>
<content type='text'>
Errors are sent to stderr in all but once place.

Signed-off-by: Philip Prindeville &lt;philipp@redfish-solutions.com&gt;
Link: https://github.com/openwrt/libubox/pull/12
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
</feed>
