summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Convert list to new test framework; detached node fixes.Garrett D'Amore2020-11-24
| | | | | List nodes that are not part of a list should return NULL when asking for the next or previous item.
* fixes #1358 nni_strtou64 and nni_strtox64 could be replaced with strtoullGarrett D'Amore2020-11-23
|
* New NUTS test framework (NNG Unit Test Support).Garrett D'Amore2020-11-23
| | | | | | | | | | | | | This is based on testutil/acutest, but is cleaner and fixes some short-comings. We will be adding more support for additional common paradigms to better facilitate transport tests. While here we added some more test cases, and fixed a possible symbol collision in the the stats framework (due to Linux use of a macro definition of "si_value" in a standard OS header). Test coverage may regress slightly as we are no longer using some of the legacy APIs.
* Work for test refactoring.Garrett D'Amore2020-11-18
| | | | | | | | | | | | | | | | | | | | | | There are a few major areas in this change. * CMake options are now located in a common cmake/NNGOptions.cmake file. This should make it easier for folks to figure out what the options are, and how they are used. * Tests are now scoped with their directory name, which should avoid possible name collisions with test names. * A number of tests have been either moved or incorporated into the newer testutil/acutest framework. We are moving away from my old c-convey framework to something easier to debug. * We use CMake directories a bit more extensively leading to a much cleaner CMake structure. It's not complete, but a big step in the right direction, and a preview of future work. * Tests are now run with verbose flags, so we get more test results in the CI/CD logs.
* Centralize the scheme handling for HTTP schemes.Garrett D'Amore2020-11-17
|
* fixes #1200 Shouldn't nng_http_server_stop be synchronous?Garrett D'Amore2020-11-17
|
* fixes #1355 wss4 and wss6 don't work as they shouldGarrett D'Amore2020-11-17
| | | | This also properly reenables the wssfile_test.
* fixes #1353 Move recvmax test for IPC into ipc testGarrett D'Amore2020-11-15
|
* fixes #1351 Move IPC dialer and listener props tests into new test suiteGarrett D'Amore2020-11-15
|
* fixes #1071 tran_chkopt can be cleaned upGarrett D'Amore2020-11-15
| | | | | | | | | | | | | | | | | This is a sweeping cleanup of the transport logic around options, and also harmonizes the names used when setting or getting options. Additionally, legacy methods are now moved into a separate file and can be elided via CMake or a preprocessor define. Fundamentally, the ability to set to transport options via the socket is deprecated; there are numerous problems with this and my earlier approaches to deal with this have been somewhat misguided. Further these approaches will not work with future protocol work that is planned (were some options need to be negotiated with peers at the time of connection establishment.) Documentation has been updated to reflect this. The test suites still make rather broad use of the older APIs, and will be converted later.
* fixes #1087 CMakeLists structural improvements desiredGarrett D'Amore2020-11-14
| | | | | This doesn't modularize all the tests yet, but it goes a long way in the right direction.
* *Fix Add missing #define when disabling NNG_ENABLE_STATS (#1342)JaylinYu2020-11-13
| | | Co-authored-by: Jaylin <oblivionangel@sina.com>
* Fix build regression on non-Windows platform (sorry!)Garrett D'Amore2020-11-12
|
* Base64 nits (code quality) fixed.Garrett D'Amore2020-11-12
| | | | | This also contains the start of some CMakefile refactoring and clean ups.
* fixes #1323 stats framework is *way* to heavyGarrett D'Amore2020-11-11
| | | | | | This should reduce the amount of copying, and the overall size used by pipes and other objects quite a bit. (On my system, the sizeof nni_pipe shrank by 400 bytes, for example.)
* Remove left over function prototypes.Garrett D'Amore2020-11-10
|
* fixes #1337 nni aio user data could be removedGarrett D'Amore2020-11-10
|
* Fix minor incorrect comment.Garrett D'Amore2020-11-10
|
* fixes #1335 nni_taskq_thread grabs task lock unnecessarilyGarrett D'Amore2020-11-10
|
* Minor spelling tweaks for the aio framework.Garrett D'Amore2020-11-09
|
* fixes #1332 Test nng.ws failed, "Incorrect URL paths do not work"Garrett D'Amore2020-11-09
| | | | | | This moves some of the fragile tests to a new test suite that is a bit more careful with IPv4 vs. IPv6. Hopefully it will be a bit more resilient as a result.
* Add callback form of receive test for rep.Garrett D'Amore2020-11-09
|
* fixes #1329 stats could lose parent and private fieldsGarrett D'Amore2020-11-08
|
* Clean up warnings, and panic if epoll fd expectations fail.Garrett D'Amore2020-11-08
|
* Clean up some warnings.Garrett D'Amore2020-11-08
|
* Fix incorrect type warning in idhash.Garrett D'Amore2020-11-08
|
* Add test case for close of socket with pending REP.Garrett D'Amore2020-11-08
|
* fixes #1041 Abstract socket address for IPCGarrett D'Amore2020-11-08
| | | | | | | | | | | | | | | | | | | | | | | | fixes #1326 Linux IPC could use fchmod fixes #1327 getsockname on ipc may not work This introduces an abstract:// style transport, which on Linux results in using the abstract socket with the given name (not including the leading NULL byte). A new NNG_AF_ABSTRACT is provided. Auto bind abstract sockets are also supported. While here we have inlined the aios for the POSIX ipc pipe objects, eliminating at least one set of failure paths, and have also performed various other cleanups. A unix:// alias is available on POSIX systems, which acts just like ipc:// (and is fact just an alias). This is supplied so that in the future we can add support for AF_UNIX on Windows. We've also absorbed the ipcperms test into the new ipc_test suite. Finally we are now enforcing that IPC path names on Windows are not over the maximum size, rather than just silently truncating them.
* fixes #1311 reduce wasted use for nni_aioGarrett D'Amore2020-10-31
| | | | | | | | | | fixes #1317 IPv6 listener get port is incorrect fixes #1319 Want symbolic service names This is phase 1 of reducing the memory foot-print of aios, and also of pipes. This removes the largest consumer the socket address information, from the aio, which was only used by a few consumers.
* fixes #1300 REQ should fast fail if retry timer is zero (on disconnect)Garrett D'Amore2020-10-31
|
* fixes #1022 Support tcp6 link local addressesGarrett D'Amore2020-10-29
|
* fixes #1308 Sub contexts/AIOs can share a single nng_msgGarrett D'Amore2020-10-29
|
* fixes #914 websocket stream mode should support TEXTGarrett D'Amore2020-10-26
| | | | | | | This adds new options, NNG_OPT_WS_SEND_TEXT and NNG_OPT_WS_RECV_TEXT that permit communication with WebSocket peers that insist on using TEXT frames (stream mode only). The support is limited, as NNG does no validation of the frame contents to check for UTF-8 compliance.
* fixes #1304 Non-blocking send on rep sockets always fails (#1305)Garrett D'Amore2020-10-25
|
* fixes #1289 zerotier should have it's own copy of the id hashing codeGarrett D'Amore2020-08-16
| | | | | | | | | | | fixes #1288 id allocation can overallocate fixes #1126 consider removing lock from idhash This substantially refactors the id hash code, giving a cleaner API, and eliminating a extra locking as well as some wasteful allocations. The ZeroTier code has it's own copy, that is 64-bit friendly, as the rest of the consumers need only a simpler 32-bit API.
* fixes #1167 zerotier needs a chkoptGarrett D'Amore2020-08-09
|
* Implement wss4 and wss6 transports.Garrett D'Amore2020-08-09
|
* fixes #960 NNG threads inherit application thread nameGarrett D'Amore2020-08-08
| | | | | | This also exposes an nng_thread_set_name() function for applications to use. All NNG thread names start with "nng:". Note that support is highly dependent on the operating system.
* fixes #1279 Add support for ws4:// and ws6:// style websocket urlsGarrett D'Amore2020-08-08
| | | | fixes #1277 FreeBSD errors due to bad v4 vs. v6 assumptions
* fixes #1275 Test timeouts on FreeBSDGarrett D'Amore2020-08-08
| | | | | | | | | | This was responsible for hangs in close on FreeBSD. Apparently our use of EVFILT_USER was incorrect, and rather than fix it, we have switched to using a notification pipe for synchronizing closing pipes. In addition to fixing this problem, it should significantly improve things for NetBSD and OpenBSD, which will now be able tbenefit from kqueue(), since we no longer depend on EVFILT_USER.
* Fix build on FreeBSD (#1272)Steve Wills2020-08-04
|
* 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.