aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* chore: drop unused includeGarrett D'Amore2025-11-09
|
* chore: IWYU for stream.cGarrett D'Amore2025-11-09
|
* test: make DTLS test parallelism tunable (compile-time)Garrett D'Amore2025-11-09
|
* Remove unused variable.Garrett D'Amore2025-10-27
|
* Remove the ability to get sockaddrs from endpoints.Garrett D'Amore2025-10-27
| | | | | There is no valid use for this, once we added the ability to query the bound port.
* Replace nng_pipe_get_addr, nng_stream_get_addr, and the NNG_OPT_REMADDR option.Garrett D'Amore2025-10-27
| | | | | | | | | | | More direct access methods are provided instead. This results in much lower friction when using, and is a step on the path to removing NNG_OPT_LOCADDR as well. We need to figure a solution for NNG_OPT_LOCADDR for dialers; for listeners there is little use in it either, and it will be removed. (Dialers will probably get a new NNG_OPT_BIND_IP option.)
* Remove unnecesary includes from pollq.hGarrett D'Amore2025-10-27
|
* NNG_OPT_BOUND_PORT replaces NNG_OPT_TCP/UDP_BOUND_PORT.Garrett D'Amore2025-10-26
| | | | | | | | | | This is easier and agnostic about the underlying L3 protocol. We plan to remove direct NNG_OPT_LOCADDR support from listeners (and probably both NNG_OPT_LOCADDR and NNG_OPT_REMADDR have numbered days left in their lifetime. They will be replaced with more direct typed access functions as has been done for pipes already.) While here fixed some include for IWYU in the POSIX platform.
* Fix docs for nng_stream_xxx_addr.Garrett D'Amore2025-10-25
|
* Plumb sockaddrs all the way through pipes, make them failsafe.Garrett D'Amore2025-10-25
| | | | These functions can no longer fail.
* Drop the protocol version for internal implementations.Garrett D'Amore2025-10-25
| | | | | | The ops vector / protocol API/ABI were meant to support external implementations, but we have moved away from having pluggable protocols, and we aren't likely to support it any time soon.
* Add stream direct address functions for socket addresses.Garrett D'Amore2025-10-25
| | | | | | | | This is going to be used to facilitate debugging, and eliminate some inconveniences around these things. We plan to move the pipe functions to use these directly, hopefully moving away from the pipe_getopt hack. (The transport API will need to grow these. For now this is just the streams.)
* dtls: add multi pub sub test (does not pass reliably)Garrett D'Amore2025-10-25
| | | | This test lets us observe failures in the transport, which we need resolve.
* openssl - handle NULL SSL objectGarrett D'Amore2025-10-20
|
* Suppress KTLS requests, we do not support it.Garrett D'Amore2025-10-20
|
* Add openssl workflowGarrett D'Amore2025-10-19
|
* Add support for OpenSSL v3.5 and newer.Garrett D'Amore2025-10-19
| | | | | | | | | | | We are *only* supporting 3.5 (or newer 3.x releases) as its the newest LTS version of OpenSSL. This supports the full set of TLS features with NNG, including DTLS, PSK, TLS 1.3, etc. Future work will explore making using of the QUIC support in OpenSSL. Note that this OpenSSL work sits on top of NNG's TCP streams, so it cannot benefit from Linux in-kernel TLS or other features such as TCP fast open at this time.
* Test certificate / key for RSA do not match.Garrett D'Amore2025-10-19
| | | | | | It turns out that somehow these values are not compatible. Noticed with work in progress to use OpenSSL, which refuses to configure if the key and certificate do not match.
* Document subscribe details in new docs.Garrett D'Amore2025-10-12
|
* wording fixupGarrett D'Amore2025-10-11
|
* docs: convert http_handler_free docGarrett D'Amore2025-10-11
|
* fix includes for coreGarrett D'Amore2025-10-11
|
* fixes #2183 docs: convert AIO provider docsGarrett D'Amore2025-10-10
|
* nng_aio_start should imply resetGarrett D'Amore2025-10-10
|
* aio.c - include file fixesGarrett D'Amore2025-10-10
|
* nng_aio_finish should take nng_err rather than intGarrett D'Amore2025-10-10
|
* header file refactoring for IWYU (protocols)Garrett D'Amore2025-10-10
| | | | | | | This changes the header files mostly in the protocols to include directly rather than through the commmon nng_impl.h header. This should lead to faster compiles, and by properly making all includes relative should reduce friction with language servers and other tooling.
* fixes #1868 Add nng_http_[remote,local]_address APIs.Garrett D'Amore2025-10-09
|
* header file fixesGarrett D'Amore2025-10-09
|
* Remove the IPC option asciidoc, they are already moved into the IPC ↵Garrett D'Amore2025-10-09
| | | | transport markdown.
* Numerous link fixups - protocols now use xrefs.md properly.Garrett D'Amore2025-10-08
|
* Remove documentation references to ZeroTier.Garrett D'Amore2025-10-08
|
* Minor doc fixups.Garrett D'Amore2025-10-08
|
* Another run at the docs.Garrett D'Amore2025-10-08
|
* Another attempt at gh-pages fix for linksGarrett D'Amore2025-10-08
|
* Make xref relative to fix gh pagesGarrett D'Amore2025-10-08
|
* More doc fixes for http (link fixes).Garrett D'Amore2025-10-08
|
* HTTP markdown doc fixesGarrett D'Amore2025-10-08
|
* docs: Document new HTTP header iteration options.Garrett D'Amore2025-10-08
|
* fixes #2133 websocket: new header iteration optionsGarrett D'Amore2025-10-08
|
* options: string options are passed by referenceGarrett D'Amore2025-10-07
| | | | | | | This avoids needless allocations, and we offer for pipes (which need this because they might be ephemeral) the get_strdup, get_strcpy, and get_strlen forms. (Those do the copying or allocations while holding the pipe reference.)
* http: implement nng_http_next_headerGarrett D'Amore2025-10-07
|
* fixes #2175 FindMbedTLS.cmake missing includeGarrett D'Amore2025-10-07
|
* fixes #2173 New TLS cert API - replaces the properties for CN and ALTNAMES.Garrett D'Amore2025-10-05
| | | | | | This will replace the NNG_OPT_TLS_PEER_ALTNAMES and NNG_OPT_TLS_PEER_CN properties, and gives a bit more access to the certificate, as well as direct access to the raw DER form, which should allow use in other APIs.
* Various header file fixes... also fix compilation errors when HTTP is disabled.v2.0.0-alpha.6Garrett D'Amore2025-10-05
| | | | | | 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.
* fixes #2158 Implement support for NNG_OPT_TLS_PEER_CN for WolfSSLGarrett D'Amore2025-10-05
| | | | | | | 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.
* adds nng_dialer_start_aio (#2163)Jon Gjengset2025-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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: > `nng_dialer_start_aio` starts the endpoint dialing asynchronously. > This is only possible if the dialer is not already dialing. Unlike > `nng_dialer_start`, this accepts an AIO such that the caller can learn > when the dialing eventually succeeds or fails. The supplied AIO must > have been initialized, and is only triggered with the result of the > 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.
* tests: Add test for serving http static binaryGarrett D'Amore2025-10-04
|
* fixes #2165 nng_http_handler_alloc_static crashes if content type is nullGarrett D'Amore2025-10-04
|
* remaps EAI_AGAIN to NNG_EADDRINVAL (#2169)Jon Gjengset2025-10-04
| | | | | | | | | | | | | | | | | | | | | | | | 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.