aboutsummaryrefslogtreecommitdiff
path: root/src/sp/transport
Commit message (Collapse)AuthorAge
* 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
|
* 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.
* 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.
* ipc: minor adjustments for ECLOSED and loggingGarrett D'Amore2025-01-03
|
* fixes #2061 Move IPC parameters from uint64 to intGarrett D'Amore2025-01-03
|
* socket: rename nng_close to nng_socket_closeGarrett D'Amore2024-12-31
|
* websocket tests: more resilience against EADDRINUSEGarrett D'Amore2024-12-31
|
* udp: use a bounce buffer if we lack sendmsg or recvmsgGarrett D'Amore2024-12-29
| | | | | This includes checks to determine if those functions are present, and a test case to verify that scatter gather with UDP works.
* resolver: use explicit resolver item provided by callerGarrett D'Amore2024-12-28
| | | | | | This avoids the need to perform multiple allocations for dialing, eliminating additional potential failures. Cancellation is also made simpler and more perfectly robust.
* zerotier: removedGarrett D'Amore2024-12-26
| | | | | | | | | | All vestiges of ZeroTier have been removed. Also, as consequence, some binary values have changed (specifically the number of the address family used for NNG_AF_ABSTRACT.) We may create a new ZeroTier transport that makes use of lwIP to provide for ZeroTier and native host network coexistence, without requiring ZeroTier to participate in the native networking stack.
* fix for potential leaking connectionsGarrett D'Amore2024-12-26
|
* udp: more nni_aio_startGarrett D'Amore2024-12-26
|
* tls: use nni_aio_beginGarrett D'Amore2024-12-26
|
* udp: use nni_aio_startGarrett D'Amore2024-12-26
| | | | | | This also moves the close of the UDP socket later, to avoid a potential use after free while the aio's are still in-flight. Unfortunately we cannot unbind cleanly without a hard close.
* ipc: use nni_aio_startGarrett D'Amore2024-12-26
|
* tcp: use nni_aio_startGarrett D'Amore2024-12-26
|
* websocket: use nni_aio_startGarrett D'Amore2024-12-26
|
* inproc: use nni_aio_startGarrett D'Amore2024-12-26
|
* sockfd: convert to use nni_aio_startGarrett D'Amore2024-12-26
|
* aio: introduce NNG_ESTOPPEDGarrett D'Amore2024-12-26
| | | | | | | | | | | This error code results when an AIO is stopped permanently, as a result of nni_aio_close or nni_aio_stop. The associated AIO object cannot be used again. This discrimantes against a file being closed, or a temporary cancellation which might allow the aio to be reused. Consumers must check for this error status in their callbacks, and not resubmit an operation that failed with this error. Doing so, will result in an infinite loop of submit / errors.
* aio: introduce nni_aio_deferGarrett D'Amore2024-12-22
| | | | | | | | This will replace nni_aio_schedule, and it includes finishing the task if needed. It does so without dropping the lock and so is more efficient and race free. This includes some conversion of some subsystems to it.
* test: fix valgrind complaint about unitialized test data in ipc testGarrett D'Amore2024-12-22
|
* websocket: stop trying to accept once we're closedGarrett D'Amore2024-12-16
|
* tls: fix deadlock in error pathGarrett D'Amore2024-12-16
|
* transports: all transports use the new inline approachGarrett D'Amore2024-12-15
| | | | | | We can retire the old approach that used separate allocations, and all of the supporting code. This also gives us a more natural signature for the end point initializations.
* websocket transport: use inline SP objectsGarrett D'Amore2024-12-15
| | | | | | | | | This also fixes a possible race in the listener that may cause connections to be dropped incorrectly, if the connection arrives before the common layer has posted an accept request. Instead we save the connection and potentially match later, like we do for the other protocols that need to negotiate.
* tls transport: use inline SP structuresGarrett D'Amore2024-12-15
|
* tls transport: inline aiosGarrett D'Amore2024-12-15
|
* inproc: use inline data structures for SP blocksGarrett D'Amore2024-12-15
| | | | | The pair is still a separate allocation, but this overall does reduce the number of allocations as well as a failure paths.
* inproc: use nni_refcntGarrett D'Amore2024-12-15
|
* test: fix uninitialized complaint from tcp recv max testGarrett D'Amore2024-12-15
|