aboutsummaryrefslogtreecommitdiff
path: root/src/sp
Commit message (Collapse)AuthorAge
* refactor/dtls: Use message oriented send/receive for DTLS.Garrett D'Amore2025-11-10
| | | | The protocol here needs to know and respect message boundaries.
* 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.)
* 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.
* 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.
* 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.
* 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.
* 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.
* header file fixesGarrett D'Amore2025-10-09
|
* fixes #2133 websocket: new header iteration optionsGarrett D'Amore2025-10-08
|
* 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.
* dtls: Add a test for "large" (1K) messagesGarrett D'Amore2025-09-28
|
* Fix dtls reconnect attempts.Garrett D'Amore2025-09-14
| | | | | | 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.)
* dtls - additional test casesGarrett D'Amore2025-09-14
|
* dtls: use nng_err instead of int everywhereGarrett D'Amore2025-09-14
|
* Bump socket common socket stats for PUBGarrett D'Amore2025-09-09
|
* Add zone.h for illumos zones.Garrett D'Amore2025-08-24
|
* fixes #2146 need statistics for PUB protocolGarrett D'Amore2025-08-24
|
* dtls: only run the completion if we actually cancelledv2.0.0-alpha.5Garrett D'Amore2025-07-13
|
* DTLS: hold tls configurationGarrett D'Amore2025-07-13
|
* Hold the pipe across for the DTLS rx cb.Garrett D'Amore2025-06-22
|
* dtls: stop the pipe to solve use after freeGarrett D'Amore2025-06-21
|
* UDP: Signficant refactoring and simplification.Garrett D'Amore2025-06-08
| | | | | | | | | | | | | | This work is inspired by the DTLS work, and harmonizes the UDP implementation with DTLS somewhat. This should make it more resilient to failures, although there is no longer any attempt to guard against sequencing (reorders, dupes) errors. Applications that need such protection should either add it themselves, or use a transport which provides that guarantee (such as TCP). Note that with devices and and such in the way, such guarantees have never been perfect with SP anyway. The UDP transport header sizes for this are now just 8 bytes (beyond the UDP header itself.
* UDP: constify sockaddrs in some placesGarrett D'Amore2025-06-07
|
* Fix typos across docs, comments, and CMakemochalins2025-06-02
|
* Introduce DTLS transport for NNG.Garrett D'Amore2025-06-01
| | | | | | | | | | | | | This introduces a new experimental transport for DTLS, that provides encryption over UDP. It has a simpler protocol than the current UDP SP protocol (but we intend to fix that by making the UDP transport simpler in a follow up!) There are a few other fixes in the TLS layer itself, and in the build, that were needed to accomplish this work. Also there was an endianness bug in the UDP protocol handling, which is fixed here.
* Fix valgrind uninitialized complaint in UDP test.Garrett D'Amore2025-05-26
|
* Converted rest of transports to nng_err.Garrett D'Amore2025-04-27
|
* Converted property functions to use nng_err.Garrett D'Amore2025-04-27
|
* Transport listen: use nng_errGarrett D'Amore2025-04-27
|
* AIO: Use nng_err for cancellation callback instead of int.Garrett D'Amore2025-04-27
| | | | | | This is part of our work to improve type safety/awareness, and also improve debugger support, for NNG error codes. There are still quite a few more but this should help.
* tests: Add wss_test following pattern of TLS test.Garrett D'Amore2025-04-27
| | | | This replaces the convey style test.
* Fix typos in TLS test names.Garrett D'Amore2025-04-27
|
* Set server name for TLS test.Garrett D'Amore2025-04-19
|
* fix source formattingshikokuchuo2025-03-16
|
* req protocol: free msg early if no retriesshikokuchuo2025-03-16
|
* api: pipes should use nng_errGarrett D'Amore2025-01-14
|
* http: The big HTTP API refactoring of January 2025.v2.0.0-alpha.3http-client-transGarrett D'Amore2025-01-09
| | | | | | | | | | | | | | | | | | | | | | This represents a major change in the HTTP code base, consisting of a complete revamp of the HTTP API. The changes here are too numerous to mention, but the end result should be a vastly simpler API for both server and client applications. Many needless allocations were removed by providing fixed buffers for various parameters and headers when possible. A few bugs were fixed. Most especially we have fixed some bugs around very large URIs and headers, and we have also addressed conformance bugs to more closely conform to RFCs 9110 and 9112. As part of this work, the APIs for WebSockets changed slightly as well. In particular the properties available for accessing headers have changed. There is still documentation conversion work to do, and additional functionality (such as proper support for chunked transfers), but this is a big step in the right direction.
* platform: remove reader/writer locksGarrett D'Amore2025-01-05
| | | | | | The only thing using this was the transport lookups, but as those transports are now fully initialized in nng_init, we no longer need to lock that at all.
* Liberally apply some UWYI (use what you include) to header filesGarrett D'Amore2025-01-05
|
* args: Convert nng_opts_parse into a header only library using `nng_args_parse`.Garrett D'Amore2025-01-04
| | | | | | | | The API is identical, except that some names have changed, and this is now a header library in `nng/args.h` - so the core library does not need to carry this code in binaries. Being a header library also means it is not necessary to link against NNG, and it does not include any parts of NNG; it only depends on a standard C99 or C11 environment.
* tests: TLS transport test resilience against EADDRINUSEGarrett D'Amore2025-01-04
| | | | This was occasionally causing "sigabrt" and similar failures in the tests.
* api: fold TLS supplemental headers into nng.hGarrett D'Amore2025-01-04
|
* api: remove old protocol headersGarrett D'Amore2025-01-04
|
* api: rename nng_send_aio and nng_recv_aio to nng_socket_send and nng_socket_recvGarrett D'Amore2025-01-04
| | | | This aligns more closely with the nng_ctx functions.