summaryrefslogtreecommitdiff
path: root/src/sp/protocol
Commit message (Collapse)AuthorAge
* fixes #1959 Occasional SIGSEGV in nng_recv_aio() on a respondent socketAleksei Solovev2024-12-08
|
* Add nng_sub0_subscribe and friends.Garrett D'Amore2024-11-11
| | | | | | These are new functions that replace `NNG_OPT_SUBSCRIBE` and `NNG_OPT_UNSUBSCRIBE`. They are provided here as a transition aid before those options are removed in NNG 2.0.
* Add new functions for socket identity.Garrett D'Amore2024-11-11
| | | | | | | | | | These functions were added in the main branch for NNG 2.0, and we add them here to facilitate converting any code that happened to use the options (`NNG_OPT_PROTO`, `NNG_OPT_PROTONAME`, `NNG_OPT_PEER`, `NNG_OPT_PEERNAME`, and `NNG_OPT_RAW`. Its unlikely that many applications need this, but providing these as a transition aid may help applications start adopting new APIs now.
* Log protocol connections rejected by protocol.Garrett D'Amore2024-04-14
|
* Add support for socket:// in NUTS marry function.Garrett D'Amore2024-02-18
| | | | | This also adds a HUGE test for REP using socket so that we can discriminate failures that might exist using sockets instead of inproc.
* Add REP huge reply (10MB) testGarrett D'Amore2024-02-18
|
* 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.
* 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 #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.
* 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.
* 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
|
* 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
|
* Fix LeakAnalyzer complaints due to deferred reap.Garrett D'Amore2021-07-07
|
* 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 #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 #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 #1345 Restructure the source treeGarrett D'Amore2021-01-01
This is not quite complete, but it sets the stage for other protocols (such as zmq or mqtt) to be added to the project.