summaryrefslogtreecommitdiff
path: root/src/sp
Commit message (Collapse)AuthorAge
* Windows: Use _close instead of closeGarrett D'Amore2024-01-27
|
* fixes #1740 Public ID hash APIGarrett D'Amore2023-12-29
| | | | | | | | | This includes a manual page documenting the entire set of functions in one step. The hash is 64-bit based for now, to be maximally flexible. An internal 32-bit convenience for the common internal use is also provided (not public). The public API includes a test suite.
* tcp and tls: setting recv max on endpoint does not change pipesGarrett D'Amore2023-12-29
| | | | | Again, this was racy code, and not well tested. Set this option before starting the endpoint if you need to be sure.
* ipc: changing ep receive max should not affect established pipesGarrett D'Amore2023-12-29
| | | | This code was not well tested, and is racy as well.
* ipc: refactor get peerid support to use common POSIX codeGarrett D'Amore2023-12-29
| | | | | This eliminates some code. A test is added as well, so this should help with coverage.
* fixes #1746 Create a new socket:// transport for socketpair() based connectionsGarrett D'Amore2023-12-29
| | | | | | | | | | | | | This transport only listens, and creates connections when the application calls setopt on the lister with NNG_OPT_SOCKET_FD, to pass a file descriptor. The FD is turned into an nng_stream, and utilized for SP. The protocol over the descriptor is identical to the TCP protocol (not the IPC protocol). The options for peer information are borrowed from the IPC transport, as they may be useful for these purposes. This includes a test suite and full documentation.
* fixes #1728 surveyor could be simplified to not use timerGarrett D'Amore2023-12-17
|
* minor comment fixes for survey_testGarrett D'Amore2023-12-17
|
* fixes #1663 Request/Reply Protocol Throughput and ScalabilityGarrett D'Amore2023-12-16
| | | | | | | | | | | | | | | This eliminates the req protocols use of nni_timer (and setting a single timer node per request. This was problematic because it devolves into O(n^2) as we wind up inserting timer nodes and having to scan the list for the timer node. The solution is to use a single scan - stop worrying about insertion, but instead use a coarse granularity timer (defaults to 1 second) for retries. Then do the O(n) scan just once per interval. A new option, NNG_OPT_REQ_RESENDTICK, can be used to change the tick interval for cases (like unit tests) where more fine grained timing is required.
* fixes #1713 SP pipe_send leaks message if aio is canceledGarrett D'Amore2023-11-26
|
* fixes #1702 segfault canceling req receive while sendingGarrett D'Amore2023-11-25
|
* req: use nni_aio_completions - this is similar to #1523Garrett D'Amore2023-11-25
|
* fixes #1523 rare SEGV in sub nni_list_removeGarrett D'Amore2023-11-25
| | | | | | | | | | | | Credit goes to Wu Xuan (@willwu1217) for diagnosing and proposing a fix as part of #1695. This approach takes a revised approach to avoid adding extra memory, and it also is slightly faster as we do not need to update both pointers in the linked list, by reusing the reap node. As part of this a new internal API, nni_aio_completions, is introduced. In all likelihood we will be able to use this to solve some similar crashes in other areas of the code.
* fix: use ifdef for NNG_TEST_LIBMarco Casaroli2023-11-25
| | | | | | | In some places, we use ifdef, and others if. This normalizes for always using ifdef, so we can compile when this macro is not defined.
* Minor formatting fix.Garrett D'Amore2023-02-07
|
* Revert "fixes#1175 nng_listen occasionally fails when reusing ipc socket on ↵Garrett D'Amore2023-02-05
| | | | | | Windows (#1562)" This reverts commit 1892e1d6d102d1fbd37e2c3bbb59dc35d81c8b33.
* src: sp: tcp: Finish receive aio on close (#1636)Dmitry Shifrin2023-02-05
| | | | Finish receive aio on tcp pipe close
* fixes#1175 nng_listen occasionally fails when reusing ipc socket on Windows ↵Garrett D'Amore2023-02-05
| | | | (#1562)
* Fix PAIR v0 not finalizing the pollables when closing socket (#1640)Ricardo Catalinas Jiménez2023-02-05
| | | | This function needs to be pretty much identical between PAIR v0 and v1, it was missing just the call to release the pollable resources.
* Fill NNG_PKGS to request nng dependencies from installed location. (#1641)Garrett D'Amore2023-02-05
| | | | Signed-off-by: Andrey Vostrikov <andrey.vostrikov@cogentembedded.com> Co-authored-by: Andrey Vostrikov <andrey.vostrikov@cogentembedded.com>
* Fixes for some security complaints.Garrett D'Amore2022-12-31
| | | | | | | None of these changes are actual security bugs, but GitHub's scanner reports false positives at Critical severity for them. (There are a number of complaints from that scanner, many of which we do not necessarily agree with.)
* don't use deprecated functions in tests (#1560)Edward Rudd2021-12-29
|
* Bus socket converted to use lmq.Garrett D'Amore2021-12-27
| | | | | | | | | | This should give significant performance boosts to anyone using this protocol. Buffering on both the send and receive side is supported, with a default buffer size of 16 messages. This should help provide a reasonable default case for most users. While here updated the test for bus to much more complete NUTS style test framework, with increased coverage.
* Socket and context initialization never fails.Garrett D'Amore2021-12-25
| | | | | This makes these functions entirely bullet proof, and eliminates yet more error handling cases.
* Provide a tiny buf for lmq buffer by default.Garrett D'Amore2021-12-25
| | | | | This allows us to make nni_lmq_init() non-failing. (Although the buffer size requested at initialization might not be granted.)
* Pollables can be completely inline.Garrett D'Amore2021-12-25
| | | | | This eliminates more failure paths, and brings us still closer to eliminating the possibility of failure during socket init.
* Bus aio's can be inline.Garrett D'Amore2021-12-25
|
* ID map static initialization support.Garrett D'Amore2021-12-06
| | | | This also arranges to clean up the maps at nng_fini time.
* Use static initialization for lists and mutexes.Garrett D'Amore2021-12-05
| | | | | | This eliminates some run-time initialization, moving it to compile time. Additional follow up work will expand on this to simplify initialization and reduce the need for certain locks.
* fixes #1536 nng_sendmsg and nng_recvmsg could be fasterGarrett D'Amore2021-11-28
| | | | fixes #1535 Desire nng_ctx_sendmsg and nng_ctx_recvmsg
* fixes #1346 windows ipc winsec fails frequently in CI/CDGarrett D'Amore2021-11-02
|
* fixes #1518 Disconnect during negotiation breaks listenerGarrett D'Amore2021-10-16
|
* SP initialization cannot fail.Garrett D'Amore2021-09-06
|
* Move protocol.c into SP tree (it is SP specific.)Garrett D'Amore2021-08-21
| | | | Also, remove an extraneous initialization call.
* Fix premature transport registration. Mark it deprecated.Garrett D'Amore2021-08-01
| | | | | | | Originally the idea was to better support having the transports be separate loadable modules. This isn't needed for the builtin transports, so we make the explicit initialization of them deprecated, and document it as such.
* Simplify the SP transport initialization process.Garrett D'Amore2021-07-31
|
* Fix header guards.Garrett D'Amore2021-07-22
|
* fixes #1409 reader/writer lock desiredGarrett D'Amore2021-07-11
| | | | | | This provides the initial implementation, and converts the transport lookup routines to use it. This is probably of limited performance benefit, but rwlock's may be useful in further future work.
* More symbol renamingGarrett D'Amore2021-07-11
|
* More work on moving SP stuff out of common. Remove unused defs.Garrett D'Amore2021-07-10
|
* Move transport.[ch] to SPGarrett D'Amore2021-07-09
|
* Fix LeakAnalyzer complaints due to deferred reap.Garrett D'Amore2021-07-07
|
* Fix for ZeroTier transport (#1438)janjaapbos2021-04-10
| | | | | | | * Fix for ZeroTier transport The message must remain intact for a possible future resent. * use msg_header_len variable
* fixes #1436 Guard against UB in sub0_ctx_subscribe (#1437)Kristóf Havasi2021-04-10
| | | In case sub0_ctx_subscribe is called to subscribe to _all_ topics
* fixes #1421 Failure in tcp and tls local source handlingGarrett D'Amore2021-02-07
|
* fixes #1419 pairv0 performance workGarrett D'Amore2021-01-24
| | | | | | This takes the performance work we did for pairv1, and provides an implementation for pairv0. The upshot should be a nice performance boost for pair v0.
* fixes #1415 pair.c compiler warningGarrett D'Amore2021-01-24
|
* fixes #1413 nni_thr_setname NULL pointer dereferenceGarrett D'Amore2021-01-24
|
* fixes #808 Very slow PAIR performance compared to nanomsgGarrett D'Amore2021-01-18
| | | | | | This is only the pair v1 protocol. Pair v0 and polyamorous mode still have work to do. We probably won't "fix" the performance for poly mode since that's deprecated anyway.
* fixes #1403 http ws listeners added without a lockGarrett D'Amore2021-01-10
|