summaryrefslogtreecommitdiff
path: root/src/supplemental
Commit message (Collapse)AuthorAge
* 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.
* 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 #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
|
* 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
* Fix HTTP server root URI handling (#1140)Robert Bielik2020-01-18
| | | - Fixes #751
* 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 #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.
* 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.
* Add http server method for getting addressRobert Bielik2019-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.
* 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 #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.
* Bind to IP address -- localhost might not go where you think.Garrett D'Amore2019-12-27
| | | | Seeing this failure in the cloud on Darwin.
* Allow more time for the listener to get going in the cloud.Garrett D'Amore2019-12-27
|
* Move the WSS file test, and hopefully provide more debuggability.Garrett D'Amore2019-12-27
|
* Add possibility to use mbedtls cmake target if availableRobert Bielik2019-12-27
|
* fixes #1040 Convert rest of the protocols to new CMake infraGarrett D'Amore2019-12-25
|
* fixes #1032 Figure out Darwin bustednessGarrett D'Amore2019-12-24
| | | | | | | | | | | | | | | | | | | | | | | | fixes #1035 Convey is awkward -- consider acutest.h This represents a rather large effort towards cleaning up our testing and optional configuration infrastructure. A separate test library is built by default, which is static, and includes some useful utilities design to make it easier to write shorter and more robust (not timing dependent) tests. This also means that we can cover pretty nearly all the tests (protocols etc.) in every case, even if the shipped image will be minimized. Subsystems which are optional can now use a few new macros to configure what they need see nng_sources_if, nng_headers_if, and nng_defines_if. This goes a long way to making the distributed CMakefiles a lot simpler. Additionally, tests for different parts of the tree can now be located outside of the tests/ tree, so that they can be placed next to the code that they are testing. Beyond the enabling work, the work has only begun, but these changes have resolved the most often failing tests for Darwin in the cloud.
* Fix typo in websocket/CMakeLists.txtEvgeny Ermakov2019-12-10
|
* fixes #1004 Warning found by clang --analyzeGarrett D'Amore2019-11-11
| | | | | It's possible for an empty chunk to have a NULL data pointer. Even when copying zero bytes, this makes clang somewhat unhappy.
* fixes #976 websocket stream calls incorrect completion callbackGarrett D'Amore2019-08-12
|
* fixes #975 nng_http_res_alloc does not init status code properlyGarrett D'Amore2019-08-09
|
* fixes #948 TLS listener leaks underlying TCP stream listenerGarrett D'Amore2019-05-19
|
* fix #946 Use after free in TLSGarrett D'Amore2019-05-19
| | | | | This also introduces a more efficient reference counting usage based on atomics, rather than locks.
* fixes #937 Memory Leak in wsstreamGarrett D'Amore2019-05-19
|
* Fix for http chunked transferJanjaap Bos2019-05-17
|
* Introduce nni_plat_printf()Garrett D'Amore2019-05-07
| | | | | This permits the stats dump to avoid some extra buffering, and resolves a complaint about possible format buffer overruns.
* set txn->client in nni_http_transactJanjaap Bos2019-04-24
| | | | Otherwise connections are not closed in reaper.
* fixes #907 WebSocket ephemeral port cannot be reusedGarrett D'Amore2019-03-13
|
* fixes #905 Small typo. error in HTTP msgGarrett D'Amore2019-03-09
|
* fixes #848 server hang waiting for client handshakeGarrett D'Amore2019-02-23
| | | | | | | | | | | | | | | | | | | | | | | fixes #698 Need TCP stats fixes #699 Need IPC stats fixes #701 Need TLS stats This commit addresses a problem when negotiating using one of the stream based negotiation APIs -- a slow or misbehaving peer can prevent well behaved ones from establishing a connection. The fix is a fairly significant change in how these transports link up, and it does rely on the fact that the socket only has a single accept() or connect() pending at a time (on a given endpoint that is). While here, we have completely revamped the way transport statistics are done, offering a standard API for collecting these statistics. Unfortunately, this completely borks the statistics for inproc. As we are planning to change the way inproc works soon, in order to provide more control and work on performance fixes for the message queue, we feel this is an acceptable trade-off. Furthermore, almost nobody uses inproc for anything, and even fewer people are making use of the statistics at this time.
* fixes #869 nng_http_handler_set_tree fails match if path is /Garrett D'Amore2019-02-17
|
* fixes #821 http_server crash when using url without hostnameGarrett D'Amore2019-02-17
|
* fixes #882 websocket stream mode doesn't copy received dataGarrett D'Amore2019-02-17
|
* fixes #879 Desire NNG_OPT_TCP_BOUND_PORTGarrett D'Amore2019-02-16
| | | | | | We also have made some support changes, including new APIs for printing URLs, and some improvements to the NNG_OPT_URL to make use of this new property.
* fixes #872 create unified nng_stream APIGarrett D'Amore2019-02-16
| | | | | | | | | This is a major change, and includes changes to use a polymorphic stream API for all transports. There have been related bugs fixed along the way. Additionally the man pages have changed. The old non-polymorphic APIs are removed now. This is a breaking change, but the old APIs were never part of any released public API.
* fixes #839 TCP listener_start API should use constant sockaddrGarrett D'Amore2019-01-06
|
* fixes #847 Define public TLS APIGarrett D'Amore2019-01-06
|
* fixes #825 TCP public API should use generic setopt/getoptGarrett D'Amore2018-12-31
| | | | | | | | | | | | This changes much of the internal API for TCP option handling, and includes hooks for some of this in various consumers. Note that the consumers still need to have additional work done to complete them, which will be part of providing public "raw" TLS and WebSocket APIs. We would also like to finish addressing the call sites of nni_tcp_listener_start() that assume the sockaddr is modified -- it would be superior to use the NNG_OPT_LOCADDR option. Thaat will be addressed in a follow up PR.
* fixes #834 Simplify IPC internal API & updateGarrett D'Amore2018-12-31
| | | | | This also makes some smaller related changes to use the new nni_type instead of nni_opt_type.
* IPC option rework (pipe/conn) to reduce code duplication.Garrett D'Amore2018-12-29
|
* fixes #823 Define public IPC (#824)Garrett D'Amore2018-12-22
| | | | | | | This introduces a basic IPC API, modeled on the TCP API, for direct access. Only connection options are exposed at present -- we need to add options for dialers and listeners (and particularly listener settings for permissions and security attributes.) Documentation is still outstanding, but a very limited test suite exists.
* Remove some compilation warnings (cannot return in void func).Garrett D'Amore2018-12-20
|
* fixes #680 Public TCP APIGarrett D'Amore2018-11-27
|
* move all public headers to include/nng/ folderGregor Burger2018-11-22
| | | | | | | | | | This change makes embedding nng + nggpp (or other projects depending on nng) in cmake easier. The header files are moved to a separate include directory. This also makes installation of the headers easier, and allows clearer identification of private vs public heade files. Some additional cleanups were performed by @gedamore, but the main credit for this change belongs with @gregorburger.