aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* websocket: inline the aiosGarrett D'Amore2024-12-07
| | | | This covers both the ttransport and the supplemental layers.
* performance: reference counters can use relaxed order when incrementingGarrett D'Amore2024-12-07
|
* 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?
* aio: make sure aio is initialized before certain operationsGarrett D'Amore2024-12-07
| | | | | | | | Operations that might be performed during teardown, such as reaping, waiting, closing, freeing, should only be done if the aio has properly been initialized. This is important for certain simple cases where inline aio objects are used, and initialization of an outer object can fail before the enclosed aio is initialized.
* 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.
* Pipe protocol data is never null.Garrett D'Amore2024-12-07
|
* reap: thread exits prematurely after reinitializationGarrett D'Amore2024-12-07
|
* aio: stop has to wait for expirations to finishGarrett D'Amore2024-12-07
|
* fini: add drain mechanism for aio, reap, and task subsystemsGarrett D'Amore2024-12-07
| | | | | Make sure *everything* is drained before proceeding all the way to deallocation.
* aio: separate stop / shutdown from fini (deallocate)Garrett D'Amore2024-12-07
| | | | | | | | | | | | | | Probably other subsystems should get the same treatment. We need to basically start the process of shutting down so that subsystems know to cease operation before we rip memory out from underneath them. This ensures that no new operations can be started as well, once we have begun the process of teardown. We also enhanced the completion of sleep to avoid some extra locking contention, since the expiration *is* the completion. Includes a test for this case.
* aio: do not reschedule or start operations when expire queue is exitingGarrett D'Amore2024-12-07
| | | | | We do not want to let operations restart if we're in the process of shutting down. This ensures that they get a reasonable hard failure.
* Add forgotten license boilerplateAleksei Solovev2024-12-07
|
* fixes #1408 Reference count as a first class typeGarrett D'Amore2024-12-07
| | | | | | | | | | This starts by using this for the nni_pipe, but we will use it for the other primary objects as well. This should simplify the tear down and hopefully eliminate some races. It does mean that pipe destruction goes through an additional context switch, for now at least. This shouldn't be on the hot data path anyway.
* fixes #1959 Occasional SIGSEGV in nng_recv_aio() on a respondent socketAleksei Solovev2024-12-07
|
* tests: convert http server test to NUTSGarrett D'Amore2024-12-06
|
* url: add nng_url_resolve_portGarrett D'Amore2024-12-06
| | | | | | This API exists to support tests and similar cases where port 0 is used to choose a dynamic port. Once the port is bound, and an actual value is known, it can be patched in using this API.
* sockfd: check the result of nni_aio_scheduleGarrett D'Amore2024-12-03
| | | | This fixes a possible failure condition on teardown.
* windows ipc: check the return value of nni_aio_scheduleGarrett D'Amore2024-12-03
| | | | | This hopefully addresses a long standing bug with Windows IPC sometimes hanging on shut down.
* tests: void instead of empty parameter listGarrett D'Amore2024-12-01
|
* http server: sprintf is considered deprecatedGarrett D'Amore2024-12-01
| | | | | | | | | | Because it is typically associated with insecure code, use of sprintf is discouraged. Note that our usage was actually quite careful and not insecure, but its mere presence raises concern especially by parties who are unwilling or unable to assess the actual code for correctness. A better choice here would be strlcat, but strlcat is not universally available.
* http server: fix race condition for server->closedGarrett D'Amore2024-12-01
|
* tests: convert files test to NUTSGarrett D'Amore2024-12-01
|
* tests: convert ipcsupp tests to NUTSGarrett D'Amore2024-11-30
|
* tests: convert tcpsupp test to NUTSGarrett D'Amore2024-11-30
| | | | Also renamed this to tcp_stream_test.
* tests: convert scalability test to NUTSGarrett D'Amore2024-11-30
|
* tests: convert nonblock test to NUTSGarrett D'Amore2024-11-30
|
* tests: convert synch test to NUTS.Garrett D'Amore2024-11-30
| | | | | While here we added a test for nng_cv_wake1 to demonstrate it does not fall afoul of the thundering herd.
* tests: fix sign bug in comparing timesGarrett D'Amore2024-11-30
|
* tests: Allow more time for larger messagesGarrett D'Amore2024-11-30
|
* tests: incompletely initialized address in has_ipv6 checkGarrett 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: time collection overhead might be zero for coarse timers (Windows)Garrett D'Amore2024-11-30
|
* tests: convert TCPv6 transport test to NUTS (and consolidate with v4)Garrett D'Amore2024-11-30
|
* tests: better reporting of timing overheadGarrett D'Amore2024-11-30
|
* tests: add a couple more transport specific testsGarrett 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 all the get_ptr option accessors.Garrett D'Amore2024-11-24
| | | | | Temporarily we have removed access to the peer alt names, but that was never used and was not tested (it also didn't work with WolfSSL.)
* Remove all the set_ptr option functions.Garrett D'Amore2024-11-24
| | | | | This hopefully ensures that we have good typed functions instead of just passing around pointers blithely.
* 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.