summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* fixes #1242 EADDRINUSE is not reported on Win32Garrett D'Amore2020-07-27
|
* fixes #844 WebSocket wildcard host errorsGarrett D'Amore2020-07-27
| | | | | | | | | | fixes #1224 wss fails on IPV6 address This fixes bugs and inconsistencies in the way addresses are handled for HTTP (and consequently websocket). The Host: address line needs to look at numeric IPs and treat wildcards as if they are not specified, and needs to understand the IPv6 address format using brackets (e.g. [::1]:80).
* fixes #1235 framing error in SSL/TLSGarrett D'Amore2020-07-26
| | | | | | This was first detected as a stack overrun, but in actuality the problem could have lead to corruption of TLS messages due to prematurely recording transmit completion.
* fix #1252jeikabu2020-06-16
| | | | - nng_msg_clear should only clear the message body and not the head. Add test to verify
* nng: support NNG_OPT_IPC_PEER_PID on modern macOS systemsRichard Markiewicz2020-06-15
|
* fixes #1241 SIGSEGV in RepReq's rep0 recv - use after freeGarrett D'Amore2020-05-25
| | | | | This also affects the respondent protocol. Examination of the other protocols did not turn up any evidence of the same issue.
* fixes #1230 NNG_OPT_RECONNMAXT zero does not prevent exponential back-offGarrett D'Amore2020-05-24
|
* fixes #1239 Use after free in tlsGarrett D'Amore2020-05-23
| | | | | Also, addressed a number of Clang-tidy complaints. Potential hangs in close addressed as well.
* Tests for sending large amounts of data over NNG TLS streams.Garrett D'Amore2020-05-23
| | | | | This also starts the test framework NNG streams, so that we can test those more directly.
* fixes #1236 Deadlock triggered on nng_closeGarrett D'Amore2020-05-17
| | | | fixes #1219 nng_close occasionally hang on Windows
* Fix type and object access when adding local interfaces.Jörg F. Wittenberger2020-03-28
|
* fixes #1210 Undefined reference to InterlockedAddNoFence (mingw64)Garrett D'Amore2020-02-26
|
* fixes #1171 message header could be inlined in the message structureGarrett D'Amore2020-02-26
| | | | | This uses a maximum 64-byte header and should avoid allocations and cache misses, leading to a small performance boost overall.
* fixes #1201 Unexpected error return code: NNG_ENOMEMGarrett D'Amore2020-02-25
|
* fixes #1202 More than 120 threads was started by NNGGarrett D'Amore2020-02-24
| | | | | | | | This introduces a new CMake option, NNG_MAX_TASKQ_THREADS, with a default value of 16. The number of taskq workers will generally be calculated as vcpu * 2. This new value, if not zero, sets an upper bound. Note that the value should be at least two, in order to ensure no deadlocks occur.
* fixes #1005 TLS 1.3 supportGarrett D'Amore2020-02-23
| | | | | | | | This introduces support for an external wolfSSL plugin, and generally creates the framework for pluggable TLS implementations. The wolfSSL engine is provided via an external module (git submodule), available either under a GPLv3 license or a commercial license.
* Fix typos in commentsEvgeny Ermakov2020-02-13
|
* Survey occasionally does not cancel properly.Garrett D'Amore2020-02-07
|
* fixes #1189 Extract and deprecate polyamorous modeGarrett D'Amore2020-02-07
|
* fixes #814 mq_get_error should goGarrett D'Amore2020-02-06
|
* Convert SURVEY to use lmq and avoid message queues.Garrett D'Amore2020-02-06
| | | | | | This should make survey a little faster (which may be of benefit). But it will also enable us to eliminate one of the checks in the message queue code (#814), making everything else go faster.
* inline the pipe aios for pair0Garrett D'Amore2020-02-05
|
* Fix possible use after freeEvgeny Ermakov2020-02-05
|
* more compile fixes for legacy atomicsGarrett D'Amore2020-02-05
|
* fixes #1182 v1.2.5 build fails gcc 4.8Garrett D'Amore2020-02-05
|
* Survey test rewrite.Garrett D'Amore2020-02-05
| | | | | This bumps the coverage for survey up. While here fixed a few nits in req test, and removed the now pointless legacy survey and respond tests.
* Add possibility to explicitly set a tree handler as exclusive (#1158)Robert Bielik2020-01-27
| | | | - Default tree handler behavior is now non-exclusive - Add 'longest uri first' ordering for http handlers
* fixes #1176 Unable to build latestGarrett D'Amore2020-01-27
|
* fixes #1169 survey and xsurvey could use message cloningGarrett D'Amore2020-01-20
| | | | | | | | | | | fixes #1160 Consider limiting maximum hop count to 15 fixes #1098 Maximum maxTTL should be compile time defined This doesn't expose the max-MaxTTL in the CMakeList.txt -- there is really no reason anyone should be changing it. This does not yet inline the message header into the nni_msg_t, but it is my intention to do so soon, and eliminate most of the conditional cases for failure on inserting into the header.
* fixes #1162 req_test needs to have better retry testsGarrett D'Amore2020-01-20
|
* tcp batch test is fragile.Garrett D'Amore2020-01-20
| | | | | | | | | This can depend completely on the underlying TCP stack deciding to segment -- for example if we get context away for a bit, the stack in kernel can decide to go ahead and close the segment. There isn't anything useful that this test is testing for, and it breaks randomly in CI.
* fixes #1163 compat tests are very brittleGarrett D'Amore2020-01-20
| | | | | | | This only addresses the newly rewitten compat_tcp test, but it sets the groundwork for the other tests, so that when they are updated to the new acutest.h they can use the new marry code to establish connections cleanly and safely.
* fixes #1156 Message cloning could help reduce copies a lotGarrett D'Amore2020-01-20
| | | | | | | | | | | | This introduces reference counting on messages to reduce the data copies. This should have a marked improvement when moving large messages through the system, or when publishing to many subscribers. For some transports, when using large messages, the copy time can be the dominant factor. Note that when a message is actually shared, inproc will still perform an extra copy in order to ensure that it can modify the headers. This will unfortunately always be the case with REQ, as the REQ protocol keeps a copy of the original message so it can retry.
* 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%).