summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* UDP: Introduce an experimental (undocumented for now) public API for UDP. ↵Garrett D'Amore2024-06-02
| | | | | | | | (#1838) This exposes the UDP methods as nng_ methods, and adds support for Multicast Membership, which is useful in a variety of situations. No documentation is provided, and applications should consider thios API experimental.
* Fixes problem that causing it unable to pass compile when ↵Peter Wang2024-06-01
| | | | | | NNG_TRANSPORT_ZEROTIER is enabled. It seems that there are typo in the struct type naming. And the wrong function name in `nni_sp_zt_register` that will cause link error.
* windows: refactor IPC to avoid possible hangs and use after free.Garrett D'Amore2024-05-30
|
* Free SP protocol streams before discarding aio objects.Garrett D'Amore2024-05-30
| | | | | | | | This seems to alleviate the use after free crashes, although it does not seem like it should. Current theory is that this closes the handle ensuring that it is unregistered from the I/O subsystem, thus preventing callbacks from firing and referring to objects that have been freed.
* Safer initialization of aiosGarrett D'Amore2024-05-30
|
* fix for pipe statistic crashGarrett D'Amore2024-05-30
|
* windows: TCP connection use-after-free fixesGarrett D'Amore2024-05-30
|
* windows: ipc listen use after freeGarrett D'Amore2024-05-30
|
* windows: ipc conn conn_aio not usedGarrett D'Amore2024-05-30
|
* windows: fix TCP use-after-free in listenerGarrett D'Amore2024-05-30
| | | | | | | The logic with overlapped structures was fragile as it used overlapped ios for the connections rather than a single common one for the listener. This changes it to be more like POSIX, and robust against this error.
* windows: drop the hEvent initialization for win_io structures.Garrett D'Amore2024-05-30
| | | | We use overlapped I/O, so we don't need a separate hEvent.
* windows: IPC conn->conn_io is unusedGarrett D'Amore2024-05-30
|
* Another attempt at the close deadlock, fix use-after-free.Garrett D'Amore2024-05-30
| | | | | | | | When closing pipes, we defer them to be reaped, but also leave them in the match list where they might be picked up by ep_match, or leak. It's best to reap these proactively and ensure that they are not allowed to life longer once they have errored during the negotiation phase.
* fixes #1827 Windows a deadlock on nng_close()Garrett D'Amore2024-05-30
|
* fixes #1825 Compiler warning due to unused variable in win_clock.cGarrett D'Amore2024-05-22
|
* Windows: add a check for broken legacy environments without timespec_get.Garrett D'Amore2024-05-22
| | | | | | | | | | If you want to build on Windows use a toolchain that supports modern APIs. This means, for Microsoft, UCRT (Universal C Runtime), which is supported by default on modern Visual Studio. MinGW users may have to go out of their way to enable it. (New -D_UCRT flag or something.) The supported toolchain for building on Windows is Visual Studio. Use of other tool chains is not officially supported or guaranteed to work. YMMV.
* fix deadlock on socket closeAlexander Zilberkant2024-04-24
| | | | when an `aio` has no `a_cancel_fn` and the task is in `task_prep` abort it on `nni_aio_stop` call
* fixes #1808 nng_msg_insert: munmap_chunk(): invalid pointerGarrett D'Amore2024-04-24
| | | | | | | With specific message sizes, we the shuffle of data for msg insert can calculate the wrong value, leading to heap corruption. This includes a stress test for msg insert to hopefully exercise every reasonable edge case.
* Move the rest of the functionality from platform.h into core.Garrett D'Amore2024-04-23
| | | | This also deprecates supplemental/util/platform.h.
* Move some supplemental APIs to reduce friction in using them.Garrett D'Amore2024-04-23
| | | | | | The supplemental/util/platform.h is kind of a pain, so we move move the prototypes for commonly used functions out of there, into nng.h proper.
* Prep for 1.8.0 releasev1.8.0Garrett D'Amore2024-04-21
|
* Logging improvements (#1816)Garrett D'Amore2024-04-21
| | | | | | | | | | | | * Add nng_str_sockaddr to get string representation of socket address. * Added nng_log_get_level() is meant to allow users to obtain the current level and avoid some possibly expensive operations just to collect debugging information when debugging is not in effect. We use a custom logger for NUTS, and this fits within the NUTS test framework well, so that if -v is supplied we get more content. All tests now get this by default.
* Bump golang.org/x/net from 0.19.0 to 0.23.0 in /etc/pubrefmandependabot[bot]2024-04-20
| | | | | | | | | | | | Bumps [golang.org/x/net](https://github.com/golang/net) from 0.19.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.19.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
* Log messages when peer sends too large message.Garrett D'Amore2024-04-17
| | | | | Also while here, remove unused sockaddr members from some structs. This should save a bit of memory for servers with a lot of conns.
* [tls_common] finish conn lock in tls_reapMoi Ran2024-04-14
|
* fixes #1588 TLS should log errorsGarrett D'Amore2024-04-14
| | | | | This isn't complete, but it should go much further in assisting debugging TLS related errors.
* Announce NNG version in log.Garrett D'Amore2024-04-14
|
* Log rejects by app, bind/listen/connect failures.Garrett D'Amore2024-04-14
|
* Log protocol connections rejected by protocol.Garrett D'Amore2024-04-14
|
* Log transports as they are initialized.Garrett D'Amore2024-04-14
|
* Added realtime clock support, and better timestamping.Garrett D'Amore2024-04-14
| | | | | The realtime clock is not (yet) exposed for user applications, but it is used for logging timestamps accurately.
* Add clarification about logged content.Garrett D'Amore2024-04-14
|
* minor include fixGarrett D'Amore2024-04-14
|
* Add missing `nng_tls_config_hold` stub functionMarc Lasch2024-04-13
| | | | | | | | | | | Add the missing stub function implementation for `nng_tls_config_hold`. Fixes an error when loading the library and expecting to have this symbol available. The availability of the symbol can be checked with nm: ``` nm -D cmake-build-release/libnng.so.1.7.3 | grep nng_tls_config_hold ```
* add header to posix_rand_getrandom.cshikokuchuo2024-04-13
|
* fixes #543 Add logging support frameworkGarrett D'Amore2024-04-13
|
* Update UKRAINE.adocGarrett D'Amore2024-03-16
| | | Updates for March 16, 2024.
* Update protocol.hBrian Carcich2024-03-16
| | | Fix comment typo
* Update nng_ctx.5.adocBrian Carcich2024-03-16
| | | Fix typos in example.
* Bump version to 1.7.3.v1.7.3Garrett D'Amore2024-03-01
|
* fixes #1771 cmake: respect CMAKE_FIND_PACKAGE_PREFER_CONFIG if presentGarrett D'Amore2024-02-28
|
* Convert UDP platform test to NUTS.Garrett D'Amore2024-02-25
| | | | | | This also restores the IPv6 sanity check. Note that UDP is still not supported as a transport, but this can be used to implement higher level transports such as ZeroTier (or later QUIC).
* Disable (for now) the UDPv6 test.Garrett D'Amore2024-02-25
|
* windows: marry - warning about HANDLE vs intGarrett D'Amore2024-02-25
|
* fixes #1496 Provide NNG_ENABLE_IPV6 option (disabled by default)Garrett D'Amore2024-02-25
| | | | | | | | | This also checks if the build system has the definitions for AF_INET6, which might help in some embedded IPv4 only settings. The resolver test is enhanced to include a check for IPv6 enabled in the kernel. IPv6 support is enabled by default, of course.
* fixes #1543 Deadlock in nng_close(socket)Garrett D'Amore2024-02-25
| | | | | | This looks like a possible problem that may be windows specific involving the flow for IO completion ports. This simplifies the logic a little bit, and should ensure that canceled requests on pipes do not restart.
* windows: Add missing header for string.hGarrett D'Amore2024-02-25
|
* build: Mbed TLS should use MBEDTLS_ROOT first.Garrett D'Amore2024-02-25
| | | | | The old MBEDTLS_ROOT_DIR is still honored for legacy compat, but the version 4.3 find script won't use it by default.
* Use dockerized asciidoctor to generate contentGarrett D'Amore2024-02-22
|
* 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.