aboutsummaryrefslogtreecommitdiff
path: root/src/sp
Commit message (Collapse)AuthorAge
...
* udp: implement endpoint stop functionsGarrett D'Amore2024-12-11
|
* sockfd: implement endpoint stop functionsGarrett D'Amore2024-12-11
|
* endpoints: add transport ep stop functionsGarrett D'Amore2024-12-11
| | | | | | This should allow us to stop the endpoints early, without freeing them. This ensures that pipe creation has ended before we start tearing down pipes.
* windows ipc: significant refactorGarrett D'Amore2024-12-09
| | | | | | | | | | | This refactors a lot of the IPC code to hopefully address various hangs on shutdown, etc. The problem is that named pipes are not terrifically reliable when it comes to aborting ConnectNamedPipe. Additionally there were some logic errors in some of our code that left things rather brittle. Ultimately this all needs to be replaced with UNIX domain sockets which are superior in many ways.
* udp transport: convert to using inline pipes and endpointsGarrett D'Amore2024-12-08
| | | | | This allows us to eliminate some extra reference counting and reaping related complexity.
* socket transport: convert to using inline pipe and endpoint allocationsGarrett D'Amore2024-12-08
| | | | | | | This eliminates the need for separate reap operations, and it also eliminates a few failure modes, further simplifying the code. This is the first transport to get this treatment. The others will follow.
* pipes and endpoints: support for inline allocations of transport dataGarrett D'Amore2024-12-08
| | | | | | | | | | | | | | | | | | | | | | This is a new transport API, which should make it easier for transports to rely upon lifetime guarantees made by the common SP framework, thus eliminating the need for transport specific reference counters, reap lists, and similar. The transport declares the size of the object in the ops vector (for pipe, dialer, or listener), and the framework supplies one allocated using the associated allocator. For now these add the pipe object to the socket and endpoint using linked linked lists. The plan is to transition those to reference counts which should be lighter weight and free form locking issues. The pipe teardown has been moved more fully to the reaper, to avoid some of the deadlocks that can occur as nni_pipe_close can be called from almost any context. For now the old API is retained as well, but the intention is to convert all the transports and then remove it.
* socket transport: No need for a cool down for this transport.Garrett D'Amore2024-12-07
| | | | | | If an error occurs, the application gets to know about it. There cannot be external factors that cause us to spin for memory, since this is not accessible via the network.
* tests: add sockfd test for multiple acceptsGarrett D'Amore2024-12-07
| | | | While here initialize the message to avoid valgrind complaints.
* websocket: inline the aiosGarrett D'Amore2024-12-07
| | | | This covers both the ttransport and the supplemental layers.
* ctx: Simplify handling for closed contexts.Garrett D'Amore2024-12-07
| | | | | | Once a context has started the process of close, further attempts to close it will return NNG_ECLOSED. What was I thinking to ever do anything else?
* udp: hang on close after sending too largeGarrett D'Amore2024-12-07
|
* inproc: add pipe stop.Garrett D'Amore2024-12-07
| | | | | This is not needed for this, but it is the only transport that does not have it, and adding it simplifies logic in the common code.
* Add forgotten license boilerplateAleksei Solovev2024-12-07
|
* fixes #1959 Occasional SIGSEGV in nng_recv_aio() on a respondent socketAleksei Solovev2024-12-07
|
* tests: convert scalability test to NUTSGarrett D'Amore2024-11-30
|
* tests: convert nonblock test to NUTSGarrett D'Amore2024-11-30
|
* tests: fix type mismatch on htonlGarrett D'Amore2024-11-30
|
* tests: convert ws transport test to NUTSGarrett D'Amore2024-11-30
|
* tests: convert TCPv6 transport test to NUTS (and consolidate with v4)Garrett D'Amore2024-11-30
|
* tests: tcp test converted to NUTSGarrett D'Amore2024-11-30
| | | | | TCPv6 not done yet since that needs special work to be conditionalized. Also tcpsupp remains to be converted.
* tests: inproc converted to NUTSGarrett D'Amore2024-11-30
| | | | | | | | This actually represents a conversion of the transport tests implemented in Convey terms to NUTS. As part of this, have implemented a simple round trip performance test, using PAIR. The rest of the transport tests will shortly be converted to this as well.
* tests: Convert device test to NUTSGarrett D'Amore2024-11-30
| | | | | This also adds more tests for additional test cases (aio, and more validations of incompatible device configurations).
* tests: req stress test converted to NUTSGarrett D'Amore2024-11-30
|
* tests: multistress test converted to NUTSGarrett D'Amore2024-11-30
|
* tests: Convert pipe test suite to NUTSGarrett D'Amore2024-11-30
|
* tests: fix data race getting resultsGarrett D'Amore2024-11-30
|
* sockfd: inline aio structsGarrett D'Amore2024-11-24
|
* tls: don't use an extra resolver step in the listener.Garrett D'Amore2024-11-24
| | | | This was centralized in the stream layer a while ago.
* sockfd: we can use NULL for dialer opsGarrett D'Amore2024-11-24
|
* Remove the NNG_OPT_IPC_SECURITY_DESCRIPTOR option.Garrett D'Amore2024-11-24
| | | | | | | | This is now replaced with nng_listener_set_security_descriptor and nng_stream_listener_set_security_descriptor functions. We may elect to remove these entirely, but for named pipe users they are probably still quite useful. Moving towards UNIX domain sockets would obsolete this functionality.
* ws: add some more test casesGarrett D'Amore2024-11-24
|
* ipc: Add NNG_OPT_REMADDR for dialer.Garrett D'Amore2024-11-23
|
* tls: add a mutual authentication testGarrett D'Amore2024-11-23
| | | | | | | | Also, make it clearer that TLS keys and certificates can only be set once on a configuration. (mbedTLS makes this confusing!) This mutual test is only fully validated on mbed, because wolfSSL seems to not properly validate this in many configurations.
* tls: include error code from mbed in log messagesGarrett D'Amore2024-11-23
| | | | Also add a test case for mismatch verify.
* socket: fds can never be negativeGarrett D'Amore2024-11-23
|
* dialers: add nng_dial_url and nng_dialer_create_urlGarrett D'Amore2024-11-23
| | | | | This allows a URL object to be used for dialing, which may be easier than using a string if you already have the URL object.
* Remove u_rawurl member of URL.Garrett D'Amore2024-11-23
| | | | | This means that most URLs can now be used without any allocations needed. It eliminates some failure paths.
* tls: remove NNG_OPT_URLGarrett D'Amore2024-11-23
|
* tcp: remove NNG_OPT_URLGarrett D'Amore2024-11-23
|
* udp: remove NNG_OPT_URLGarrett D'Amore2024-11-23
|
* tests: eliminate use of NNG_OPT_URLGarrett D'Amore2024-11-23
|
* tests: Avoid NNG_OPT_URL in tcp test.Garrett D'Amore2024-11-23
|
* Convert UDP test to use URL functions.Garrett D'Amore2024-11-22
|
* Fix socket:// hostname should be null, and add test caseGarrett D'Amore2024-11-22
|
* Select transport using raw URL string.Garrett D'Amore2024-11-22
| | | | | | This is done so that we can provide transport specific logic for URL parsing later (we're going to want this for ZeroTier for example.)
* Collect the bound port as part of the URL at bind time.Garrett D'Amore2024-11-21
| | | | This is a step on cleaning up our logic around NNG_OPT_URL.
* TCPv6 test suite fixes for addresses.Garrett D'Amore2024-11-18
| | | | | We moved some of the tests out of the older Convey framework into the NUTS framework.
* Merge internal and external URL APIs. No need forGarrett D'Amore2024-11-18
| | | | the separation of nni_url and nng_url.
* URL refactor part 1.Garrett D'Amore2024-11-18
| | | | | | | This eliminates most (but not all) of the dynamic allocations associated with URL objects. A number of convenience fields on the URL are removed, but we are able to use common buffer for most of the details.