<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nng, branch v2.0.0-alpha.6</title>
<subtitle>A mirror of https://github.com/nanomsg/nng
</subtitle>
<id>https://cogarr.net/source/cgit.cgi/nng/atom?h=v2.0.0-alpha.6</id>
<link rel='self' href='https://cogarr.net/source/cgit.cgi/nng/atom?h=v2.0.0-alpha.6'/>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/'/>
<updated>2025-10-05T15:38:19Z</updated>
<entry>
<title>Various header file fixes... also fix compilation errors when HTTP is disabled.</title>
<updated>2025-10-05T15:38:19Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-10-05T15:25:50Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=d1bd64c8251171ac8e1d4e71ab8726c2a64fd55a'/>
<id>urn:sha1:d1bd64c8251171ac8e1d4e71ab8726c2a64fd55a</id>
<content type='text'>
Also, some instances nni_aio are changed to nng_aio.  We think we want to harmonize
some of these types going forward as it will reduce the need to include headers
hopefully letting us get away with just "defs.h" in more places.
</content>
</entry>
<entry>
<title>fixes #2158 Implement support for NNG_OPT_TLS_PEER_CN for WolfSSL</title>
<updated>2025-10-05T15:28:01Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-10-05T14:19:24Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=883e0289cdab5a81312b0593b098f70114b61f88'/>
<id>urn:sha1:883e0289cdab5a81312b0593b098f70114b61f88</id>
<content type='text'>
This also provides an implementation for getting ALT names, although
nothing uses that yet.  We plan to provide a new certificate API to
replace these with a nicer API, as obtaining the full list of certs
may be unreasonable.
</content>
</entry>
<entry>
<title>adds nng_dialer_start_aio (#2163)</title>
<updated>2025-10-05T00:59:35Z</updated>
<author>
<name>Jon Gjengset</name>
<email>jon.gjengset@helsing.ai</email>
</author>
<published>2025-10-05T00:59:35Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=05d06eff66ad0fffa1e26cde1278144196ac37f3'/>
<id>urn:sha1:05d06eff66ad0fffa1e26cde1278144196ac37f3</id>
<content type='text'>
* adds nng_dialer_start_aio

This change adds `nng_dialer_start_aio` (if you have a better name, I'm
happy to change it), whose docs read:

&gt; `nng_dialer_start_aio` starts the endpoint dialing asynchronously.
&gt; This is only possible if the dialer is not already dialing. Unlike
&gt; `nng_dialer_start`, this accepts an AIO such that the caller can learn
&gt; when the dialing eventually succeeds or fails. The supplied AIO must
&gt; have been initialized, and is only triggered with the result of the
&gt; first dial attempt.

This new function makes it possible for applications to perform a
non-blocking dial, but still later be notified of the result of that
dial. Arguably, this obviates the need for `NNG_FLAG_NONBLOCK` in
`dialer_start` altogether, but no need to break backwards compatibility.

There is technically a functional change here, which is that the
"Starting dialer for socket" message now gets printed _before_ the dial
is complete in the blocking case, rather than after. It's possible to
change this if we're willing to make the code slightly more complicated,
but given it says "Starting", not "Started", this change felt fine.

</content>
</entry>
<entry>
<title>tests: Add test for serving http static binary</title>
<updated>2025-10-05T00:57:56Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-10-05T00:41:06Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=cfcc004cff8f6e11c545070ed0e9ba0253227e44'/>
<id>urn:sha1:cfcc004cff8f6e11c545070ed0e9ba0253227e44</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fixes #2165 nng_http_handler_alloc_static crashes if content type is null</title>
<updated>2025-10-05T00:57:56Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-10-05T00:17:59Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=d6eeff578cc8e2ada1a80f4d1ddaa098931f9a7d'/>
<id>urn:sha1:d6eeff578cc8e2ada1a80f4d1ddaa098931f9a7d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remaps EAI_AGAIN to NNG_EADDRINVAL (#2169)</title>
<updated>2025-10-05T00:10:07Z</updated>
<author>
<name>Jon Gjengset</name>
<email>jon@thesquareplanet.com</email>
</author>
<published>2025-10-05T00:10:07Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=37fe4eff0e23ffbc251034b8001a1065c55f9951'/>
<id>urn:sha1:37fe4eff0e23ffbc251034b8001a1065c55f9951</id>
<content type='text'>
When running nng tests in CI under nix on Linux, I would see
`nng_dialer_start` fail with `NNG_EAGAIN` when invoked with `flags = 0`
and a URL of `tcp://999.888.777.666:8080` (this is in a test that is
supposed to check that dialing that gives you `NNG_EINVAL` or
`NNG_EADDRINVAL`).

This can happen if `nni_resolv_ip` in `posix_resolv_gai.c` gets
`EAI_AGAIN` from `getaddrinfo`, which the man pages suggest _can_ happen
due to "a temporary failure in name resolution". In the nix case, this
is due to the nix build sandbox, but it can also arise simply due to DNS
overload or misconfiguration.

In either case, nng should not bubble up `EAI_AGAIN` `as `NNG_EAGAIN`
from `nng_dialer_start`, as `NNG_EAGAIN` has a different semantic
meaning. `NNG_EAGAIN` is more equivalent to "would block", and should
only be generated through calls with the `NONBLOCK` flag. We don't have
a perfect mapping for `EAI_AGAIN`, but the closest is probably
`NNG_ADDRINVAL` to indicate that we failed to resolve the given address
(even if it's temporary). Another option would be to introduce another
error variant like `NNG_ENAMELOOKUP`, but that felt excessive to cover
this case.
</content>
</entry>
<entry>
<title>dtls: Add a test for "large" (1K) messages</title>
<updated>2025-09-29T06:40:32Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-09-29T05:41:52Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=ef8e535c441f116f653e327cc66c21286a4104ec'/>
<id>urn:sha1:ef8e535c441f116f653e327cc66c21286a4104ec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix nuts colors to match acutest.</title>
<updated>2025-09-29T05:34:02Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-09-29T05:34:02Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=159ac495db4cb32f40870e19ee8a87ec77fc3482'/>
<id>urn:sha1:159ac495db4cb32f40870e19ee8a87ec77fc3482</id>
<content type='text'>
</content>
</entry>
<entry>
<title>defs: Fix incorrect define of NNI_PUTLEXX macros.</title>
<updated>2025-09-29T05:21:04Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-09-29T05:21:04Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=35ad85188b28bcfd13c4e286eb797df6779281ad'/>
<id>urn:sha1:35ad85188b28bcfd13c4e286eb797df6779281ad</id>
<content type='text'>
This was responsible for breaking DTLS, and likely other things we
never noticed, if the pointer passed in was not already a uint8_t *.
</content>
</entry>
<entry>
<title>Fix dtls reconnect attempts.</title>
<updated>2025-09-15T00:21:00Z</updated>
<author>
<name>Garrett D'Amore</name>
<email>garrett@damore.org</email>
</author>
<published>2025-09-15T00:21:00Z</published>
<link rel='alternate' type='text/html' href='https://cogarr.net/source/cgit.cgi/nng/commit/?id=f716f61c81a5f120d61b58ee9b4a52b33b2ecb16'/>
<id>urn:sha1:f716f61c81a5f120d61b58ee9b4a52b33b2ecb16</id>
<content type='text'>
Once a DTLS client is started and has reasonably resolved things, it
will restart message connections; this way we can restart after a
failed connection attempt (e.g. if the CERT was bad or something.)
</content>
</entry>
</feed>
