summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Releasing version 1.0.1.v1.0.1Garrett D'Amore2018-07-05
|
* fixes #576 IPC listen unlinks UNIX socket on failureGarrett D'Amore2018-07-05
|
* fixes #574 nng_close should indicate warning against transmit truncationGarrett D'Amore2018-07-04
|
* fixes #575 kqueue spins hardGarrett D'Amore2018-07-04
| | | | | This sets the kqueue events to autoclear, reducing CPU usage to normal sane levels, and eliminating the hard spin.
* fixes #572 Several locking errors foundGarrett D'Amore2018-07-03
| | | | | | | | | | fixes #573 atomic flags could help This introduces a new atomic flag, and reduces some of the global locking. The lock refactoring work is not yet complete, but this is a positive step forward, and should help with certain things. While here we also fixed a compile warning due to incorrect types.
* fixes #564 Race regression caused by#522Garrett D'Amore2018-07-02
| | | | | | fixes #565 Option getting should validate sizes more aggressively fixes #563 Reconnect timeouts should be settable on dialers fixes #562 pipe test is fragile
* nni_url_parse does not handle ipc and inproc David Horsley2018-06-28
| | | a missing return causes ipc and inproc URLs to be parsed as usual. Results in a memory leak.
* fixes #522 Separate out the endpoint plumbingGarrett D'Amore2018-06-27
| | | | | | | | | | This separates the plumbing for endpoints into distinct dialer and listeners. Some of the transports could benefit from further separation, but we've done some rather larger separation e.g. for the websocket transport. IPC would be a good one to update later, when we start looking at exposing a more natural underlying API.
* fixes #552 man pages do not document NNG_ETIMEDOUTGarrett D'Amore2018-06-25
|
* fixes #539 Feature request: customizable http error pageGarrett D'Amore2018-06-15
|
* fixes #545 uaio assertion error in wsGarrett D'Amore2018-06-14
|
* fixes #518 Panic in compat_ws -- use after free?Garrett D'Amore2018-06-14
|
* fixes #540 nni_ep_opttype serves no purposeGarrett D'Amore2018-06-13
| | | | | | | | | | | | fixes #538 setopt should have an explicit chkopt routine fixes #537 Internal TCP API needs better name separation fixes #524 Option types should be "typed" This is a rework of the option management code, to make it both clearer and to prepare for further work to break up endpoints. This reduces a certain amount of dead or redundant code, and actually saves cycles when setting options, as some loops were not terminated that should have been.
* fixes #535 aio->a_closed and aio->a_stop could be consolidatedGarrett D'Amore2018-06-12
|
* fixes #533 nni_aio_begin should not dispatch task on NNG_ECLOSED.Garrett D'Amore2018-06-12
| | | | | | | | | | This changes nni_aio_begin so that it immediately terminates when it encounters aio->a_closed, much like it does for aio->a_stop. The semantic for nni_aio_close() is supposed to be like nni_aio_stop(), but without blocking. I suspect that this might be responsible for use-after-free bugs that seem to have been rearing their head lately.
* fixes #527 http_res_set_reason crash in exampleGarrett D'Amore2018-06-12
|
* fixes #32 autoscale based on CPUs availableGarrett D'Amore2018-06-12
| | | | | | This should work on both Windows and the most common POSIX variants. We will create at least two threads for running completions, but there are numerous other threads in the code.
* fixes #525 posix nni_plat_tcp_ep_init should not mark mode unusedGarrett D'Amore2018-06-11
|
* fixes #521 ep_stop is not actually usedGarrett D'Amore2018-06-11
|
* fixes #511 Want to be able to have deferred destroy of tasks and aiosGarrett D'Amore2018-06-09
| | | | | | | | | | Essentially, if we're destroying an aio, and we are doing so from the thread that is running the callback, then we should defer the destruction of the task until it returns. Note that calling nni_aio_wait() or anything else that calls it from the callback is still verboten and will result in a single party deadlock.
* Remove tag - version 1.0.0 fcs now.v1.0.0Garrett D'Amore2018-06-08
|
* fixes #517 nng_recv needs to document NNG_FLAG_NONBLOCKGarrett D'Amore2018-06-08
|
* fixes #509 We need "relative" IPC URLsGarrett D'Amore2018-06-08
| | | | | | This special cases the URL parser for inproc and IPC urls, changing so that they no longer parse the thing after the :// as anything special. This allows IPC URLs to be relative.
* Fix spelling errors in README.Garrett D'Amore2018-06-08
|
* fixes #510 HTTP and TLS man pages refer to private symbolsGarrett D'Amore2018-06-08
|
* fixes #514 Need documentation updates for 1.0Garrett D'Amore2018-06-08
|
* fixes #512 ZeroTier can use master branch of ZeroTierOne nowGarrett D'Amore2018-06-08
|
* fixes #508 nng_aio_free blocks during callbackGarrett D'Amore2018-06-07
| | | | | | | | | | | | | | | | This recycles the job structures, and so the demo seems to work. If you have sufficient concurrency, these aio structures will ultimately leak (with the level of concurrency), but for this demo that's fine. (To keep them from leaking, you'd walk the freelist and discard them just before exiting. The actual growth of the list should be quite small.) There are other strategies that could be used to avoid uncontrolled growth, but they aren't useful for our demo purposes. Also, when we have a fix for 511, we can go ahead and just do a deferred discard. As aios are used *heavily* in the code, the strategy of a deferred cache may help reduce presssure on the heap, andd might be something we want to explore for the core.
* Adding sys/stat.h to src/platform/posix/posix_aio.h for building with muslMark Stevens2018-06-04
|
* 1.0.0 rc.1v1.0.0-rc.1Garrett D'Amore2018-06-01
|
* fixes #496 nngcat tests fail in Xcode buildGarrett D'Amore2018-06-01
| | | | | | | | | | | | This avoids copying the tests, but runs them with bash from the source directory, and passes the path to the built nngcat binary to the script. It also permits these to run if we find bash, so that systems without bash won't run it and fail. We still only do this on POSIX though, because Windows bash is too broken to use for some of the tests.
* Use IMPORTANT instead of WARNING for consistent icons and messaging.Garrett D'Amore2018-05-30
|
* Fix numerous spelling errrors.Garrett D'Amore2018-05-30
| | | | | | | These were found with the help of "aspell". Additionally, while reviewing the output from the spell checker, several content errors were noticed and fixed.
* fixes #499 Eliminate the unused nni_plat_home_dir...Garrett D'Amore2018-05-30
|
* Fix warning in Windows build.Garrett D'Amore2018-05-30
|
* fixes #477 Android NDK build configurationGarrett D'Amore2018-05-30
| | | | | | | | | | | | This enables the software to be built for Android, going back to at least Android SDK r15 (IceCreamSandwich) and at least up to SDK r27 (Oreo). Older versions of Android may work, but we have no way to build them to test. While here we have changed our CMake configuration to disable building tools or tests when we detect a cross-compile situation. Documentation for cross-compilation is updated as well.
* Provide some information for building on iOS.Garrett D'Amore2018-05-29
|
* fixes #495 SEE ALSO should use [align=left]Garrett D'Amore2018-05-29
| | | | | | | | | | | | fixes #494 ERRORS section should use [horizontal] These changes address some basic formatting consistency things, and ultimately (when combined with other tooling changes that are not part of this repo) lead to vastly improved layout in the printed documentation. While here we removed trailing whitespace, and did certain other minor markup tweaks.
* fixes #484 crashes in websocket transportGarrett D'Amore2018-05-29
| | | | | | | | | | | | | | | | | | | | | | | fixes #490 posix_epdesc use-after-free bug fixes #489 Sanitizer based testing would help fixes #492 Numerous memory leaks found with sanitizer This introduces support for compiler-based sanitizers when using clang or gcc (and not on Windows). See NNG_SANITIZER for possible settings such as "thread" or "address". Furthermore, we have fixed the issues we found with both the thread and address sanitizers. We believe that the thread issues pointed to a low frequency use-after-free responsible for rare crashes in some of the tests. The tests generally have their timeouts doubled when running under a sanitizer, to account for the extra long times that the sanitizer can cause these to take. While here, we also changed the compat_ws test to avoid a particularly painful and time consuming DNS lookup, and we made the nngcat_unlimited test a bit more robust by waiting before sending traffic.
* fixes #419 Remove the "convey" meta testGarrett D'Amore2018-05-29
| | | | | The test itself is not sanitizer friendly, and we don't need to do this meta testing; convey already does it in it's own repo.
* fixes #488 pthread mutex initializer could be simplerGarrett D'Amore2018-05-29
| | | | | | | The fallback logic was unnecessarily complicated, and found to be somewhat data-racy; on modern systems initializing these things never fails, and on BSD systems that only occurs under extreme memory shortage.
* fixes #486 Revisit SOVERSION and VERSIONGarrett D'Amore2018-05-25
| | | | | | | | | | | | | | | | | | | | | | fixes #485 Honor BUILD_SHARED_LIBS fixes #483 Don't expose private symbols in shared library fixes #481 Export CMake target This is a "large" commit involving changes that don't affect the code directly, but which have an impact on how we package and build our project. The most significant of these changes is that we now build only either a shared or a static library, depending on the setting of the BUILD_SHARED_LIBS option. We also suppress private symbols from being exposed when the underlying toolchain lets us do so. Minor updates to the way we version the ABI are used, and we now have a nice exported CMake project. To import this project in another, simply do find_package(nng) and you can add target_link_libraries(nng::nng) to your targets. CMake does the rest for you.
* Add webhook for gitter notifications.Garrett D'Amore2018-05-23
|
* Update for 1.0.0-beta.2v1.0.0-beta.2Garrett D'Amore2018-05-22
|
* fixes #476 Crank the library ABI versionGarrett D'Amore2018-05-22
|
* fixes #474 websocket listen on ws://*:<x> failsGarrett D'Amore2018-05-22
| | | | | | | | | | | | fixes #464 Support NN_WS_MSG_TYPE option (compat) fixes #415 websocket does not honor recv maxsize This fixes a significant (and security) issue in websocket, where the code does not honor a maximum receive size. We've exposed new API (internal) to set the limit on the frame size, and we've changed the default to *unlimited* for that internal API. (But the default for SP sockets, which are the only consumers at present, is still 1MB just like all other SP transports.)
* fixes #473 Bug 460 is too aggressiveGarrett D'Amore2018-05-21
|
* fixes #471 Linux resolver truncates port number silentlyGarrett D'Amore2018-05-21
|
* fixes #469 SO_REUSEADDR should be enabledGarrett D'Amore2018-05-21
| | | | | | | | | | | | | | | | | | | fixes #468 TCP nodelay and keepalive should start usable fixes #467 NN_RCVMAXSZ option does not work (compat) fixes #465 Support NN_OPT_TCPNODELAY (compat) This is a rather larger change set than I'd like, but when adding support for legacy TCP keepalive, I found a number if issues using the legacy TCP test (which we are introducing with this commit.) This fixes the concerns that are relevant and addressible. We have elected not to try to support to local address binding at this time, and the IPv6 test case in the old code was wrong, so changes relevant to that are commented out. I've also updated the nng_compat manual page to reflect additional caveats that folks should be aware of, including the previously undocumented caveat around the NN_SNDBUF and NN_RCVBUF options.
* fixes #472 Test for pub/sub fails due to not waiting long enoughGarrett D'Amore2018-05-21
|