aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* fixes #1159 inproc could skip message queueGarrett D'Amore2020-01-20
| | | | | | In addition, the message queue code is rather heavy weight, so this may make the inproc code a bit leaner. It also makes backpressure conditions much more reliable since it now is completely unbuffered.
* fixes #1154 perf programs could use options to select different protocolsGarrett D'Amore2020-01-19
| | | | | | | | | | | This allows --reqrep0, --pair0, --pair1, and --bus0 to be used with the inproc_lat, and also inproc_thr (though only with pair options for that for now). It also introduced --url for both programs to support testing over different transports. Also, we no longer pass out the header for REQ reply -- that is an error, and led to some unfortunate failures when reusing the message.
* fixes #1145 nng_msg options should be removedGarrett D'Amore2020-01-19
|
* fixes #1151 minor pairv1 optimizations possibleGarrett D'Amore2020-01-19
| | | | | | | We've also finished fleshing out the statistics for pairv1, addressed a possible race around the TTL, and added additional test cases to validate things. We also have tightened up the send logic to ensure we do not send a bad message on the wire (drop the malformed message on the send side).
* fixes #1142 raw mode use of message headers is inconsistentGarrett D'Amore2020-01-18
| | | | | | | | This correctly moves the entire protocol header for XREQ and XRESPONDENT protocols to the message header (not the body). This is where it should always have been. There is some small chance that applications which were coded to parse the header from the body will break. We don't think there are any such applications in use.
* Fix HTTP server root URI handling (#1140)Robert Bielik2020-01-18
| | | - Fixes #751
* TTL reads could be fewer.Garrett D'Amore2020-01-18
| | | | | | | Specifically, we don't need to read the atomic value each loop iteration. We can just get it when a message is first received, and then use that value. This should make receiving through proxies a little more efficient.
* xrespond should use atomic TTL.Garrett D'Amore2020-01-18
|
* inproc can use msg_header_clear to save a branch.Garrett D'Amore2020-01-16
|
* RESPOND needs to use atomic for TTL.Garrett D'Amore2020-01-16
| | | | | Also, add a test to cover the RESPOND protocol. This gets about 95% of the coverage.
* XSURVEY test suite added.Garrett D'Amore2020-01-13
|
* Give time for REQ backpressure to ease in test suite.Garrett D'Amore2020-01-13
|
* Remove the old PUB/SUB tests.Garrett D'Amore2020-01-13
| | | | | | The new tests are more exhaustive, and cover everything. We also added a case for testing that posting messages that we didn't subscribe too doesn't raise the pollable flag.
* fixes #1131 (openindiana) compile errorGarrett D'Amore2020-01-12
|
* Add PUB/SUB test suite.Garrett D'Amore2020-01-12
| | | | | | | This gets near 100% coverage of the PUB/SUB protocols. The remaining uncovered bits will need to have a mock protocol that runs slower, so that we can inject both back pressure, and also so that we can inject "erroroneous" messages.
* fixes #1132 Masking error in LMQ leads to corruptionGarrett D'Amore2020-01-12
|
* Test coverage improvements for REQ/REP.Garrett D'Amore2020-01-12
| | | | | | | | This also fixes a possible bug if mixing poll file descriptors and contexts on the same socket. Most folks are unlikely to ever run into this bug. At this point the REQ/REP coverage is nearly complete (over 95%).
* XREQ and others race on TTL.Garrett D'Amore2020-01-11
| | | | | | | | | | The TTL in these cases should have been atomic. To facilitate things we actually introduce an atomic int for convenience. We also introduce a convenience nni_msg_must_append_u32() and nni_msg_header_must_append_u32(), so that we can eliminate some failure tests that cannot ever happen. Combined with a new test for xreq, we have 100% coverage for xreq and more coverage for the other REQ/REP protocols.
* fixes #1124 data race on ttl in xrepGarrett D'Amore2020-01-09
|
* fixes #1094 Consider in-lining task and aioGarrett D'Amore2020-01-08
| | | | | This only does it for rep, but it also has changes that should increase the overall test coverage for the REP protocol
* fixes #1117 task structures should be inlinedGarrett D'Amore2020-01-06
|
* fixes #1116 task_reap can be eliminatedGarrett D'Amore2020-01-05
|
* fixes #1112 POSIX pollq finalizers could be simplerGarrett D'Amore2020-01-05
| | | | | | | | | | | We reap the connections when closing, to ensure that the clean up is done outside the pollq thread. This also reduces pressure on the pollq, we think. But more importantly it eliminates some complex code that was meant to avoid deadlocks, but ultimately created other use-after-free challenges. This work is an enabler for further simplifications in the aio/task logic. While here we converted some potentially racy locking of the dialers and reference counts to simpler lock-free reference counting.
* fixes #1096 inline all 16 iovs in aio (also consider reducing -- to 8?)Garrett D'Amore2020-01-04
| | | | fixes #1097 aio prov_data not used at all
* fixes #1105 pollable can be inlined, and use atomicsGarrett D'Amore2020-01-04
| | | | | This also introduces an nni_atomic_cas64 to help with lock-free designs. Some mechanical renaming was done in some of the protocols for spelling.
* fixes #1104 move allocation of protocol objects to common coreGarrett D'Amore2020-01-03
| | | | fixes #1103 respondent could inline backtrace
* More REP protocol coverage tests.Garrett D'Amore2020-01-02
|
* Limit the batch size, and set some timeouts for compat_tcp.Garrett D'Amore2020-01-02
|
* fixes #1099 Should inline backtrace buffer in REPGarrett D'Amore2020-01-02
|
* Fixes broken win32 build. (#1092)Cody Piersall2020-01-02
| | | | | | When using the 32-bit Windows compiler, the functions InterlockedIncrementAcquire64() and and InterlockedDecrementRelease64() are not defined. So we fall back to the more generic InterlockedAcquire64() and InterlockedDecrement64() on 32-bit Windows.
* fixes #1090 nni_strlcat is unusedGarrett D'Amore2020-01-02
|
* fixes #1088 REP protocol does not signal SENDFD properlyGarrett D'Amore2020-01-01
| | | | | We've also added some TEST_NNG_SEND_STR and TEST_NNG_RECV_STR to help with convenience when writing test code.
* fixes #1083 Random number improvementsGarrett D'Amore2020-01-01
|
* Add error message for NNG_ECONNSHUT (#1084)Robert Bielik2020-01-01
| | | | | | * Add error message for NNG_ECONNSHUT * Added missing space after string.
* Fixup a few codacy complaints.Garrett D'Amore2020-01-01
|
* fixes #1081 Use after free possible in statsGarrett D'Amore2020-01-01
| | | | | | | fixes #1080 Desire better way to access statistics for NNG objects We've also added a test that uses some of this, in order to verify that the req protocol rejects invalid peers.
* fixes #1079 Use after free panic in tcp_dialerGarrett D'Amore2019-12-30
|
* fixes #1075 WebSocket heap use after freeGarrett D'Amore2019-12-30
| | | | | This also introduces a new atomic boolean type, so we can use that to trigger whether we've added the HTTP handler or not.
* Fix compilation errors and warnings when NNG_ENABLE_STATS is OFFRobert Bielik2019-12-30
|
* Add http server method for getting addressRobert Bielik2019-12-29
|
* fixes #1059 compat_tcp test sometimes times outGarrett D'Amore2019-12-29
|
* fixes #1064 Potential deadlock in statistics codeGarrett D'Amore2019-12-29
| | | | | | | | fixes #1063 Include sanitizer runs in CI fixes #1068 Wssfile test sometimes fails with wrong error code While here, addressed a number of clang-tidy items, and some light cleanup of code we were already in.
* Silence a few clang-tidy complaints.Garrett D'Amore2019-12-29
|
* Remove some unused includes from POSIX resolver.Garrett D'Amore2019-12-29
|
* fixes #1065 resolver leaks work structuresGarrett D'Amore2019-12-29
| | | | | | This includes changes to support setting the sanitizer *correctly* (the old code CMake stuff didn't quite get it right), and addresses a number of failures in the test code found by the address sanitizer.
* fixes #1062 Windows client connections cannot get NNG_OPT_LOCADDRGarrett D'Amore2019-12-28
|
* fixes #986 ws_read_finish_str free invalid pointerGarrett D'Amore2019-12-28
| | | | | | Also, this has refactored the websocket stream test to the new acutest.h, and includes a much deeper test of fragmentation and reassembly of websocket streams.
* Brittleness in pair1 mono faithful test.Garrett D'Amore2019-12-27
|
* fixes #1057 reqpoll test fails (bad test logic) sometimesGarrett D'Amore2019-12-27
| | | | The reqpoll test is now moved into the common req/rep logic.
* Bind to IP address -- localhost might not go where you think.Garrett D'Amore2019-12-27
| | | | Seeing this failure in the cloud on Darwin.