summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAge
* fixes #1232 EVFILT_USER is not available on NetBSDGarrett D'Amore2020-07-26
| | | | | | This means that NetBSD and OpenBSD cannot benefit from kqueue, and will need to use poll(). The best answer for those platforms is that someone contribute a working EVFILT_USER implementation.
* Print NNG configuring message to STATUS mode.Indy2020-07-06
| | | | The default mode under default configration prints to stderr, some build tools take this to mean an error has occured incorrectlly.
* nng: support NNG_OPT_IPC_PEER_PID on modern macOS systemsRichard Markiewicz2020-06-15
|
* fixes #1237 atomic library check is backwardsGarrett D'Amore2020-05-04
|
* fixes #1225 atomic check operation fails with android cross toolchainGarrett D'Amore2020-03-29
|
* Fix cmake file.v1.3.0Garrett D'Amore2020-02-29
|
* 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.
* Added atomic check for building on ARMs (#1196)Ken Haase2020-02-14
|
* fixes #1134 CMake should use nng.h to determine SOVERSION etc.Garrett D'Amore2020-01-27
|
* fixes #1090 nni_strlcat is unusedGarrett D'Amore2020-01-02
|
* fixes #1083 Random number improvementsGarrett D'Amore2020-01-01
|
* fixes #1073 Bump minor versionGarrett D'Amore2019-12-30
| | | | | | This increases the minor version to 1.3.0. This is not yet an official release, so you can't rely on it, and we will probably add more API features before we finalize 1.3.0.
* Release 1.2.2.v1.2.2Garrett D'Amore2019-12-28
|
* fixes #1031 Code coverage is bustedGarrett D'Amore2019-12-26
|
* fixes #1040 Convert rest of the protocols to new CMake infraGarrett D'Amore2019-12-25
|
* fixes #1038 Linux should use getentropy or getrandomGarrett D'Amore2019-12-24
|
* fixes #1036 Forgot to change the semver for v1.2!!v1.2.1Garrett D'Amore2019-12-24
|
* 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.
* Address complaints found by lgtm.com.Garrett D'Amore2019-12-11
|
* fixes #989 Errors when compiling for iOS platformGarrett D'Amore2019-09-22
|
* fixes #956 pthread_atfork error on Arm processorGarrett D'Amore2019-06-27
|
* fix define mismatchSpencer Sutton2019-04-15
|
* Fix eventfd configuration bug. (#820)steve-scott2018-12-22
|
* fixes #769 How to limit worker threadsMatt Gigli2018-12-16
| | | | | * Expose cmake variable to set number of DNS resolver threads: NNG_RESOLV_CONCURRENCY * Expose cmake variable to set number of taskq threads: NNG_NUM_TASKQ_THREADS
* fixes #780 travis-ci cmake fails with `No VERSION specified...`Garrett D'Amore2018-11-08
|
* fixes #779 Bump ABI version for v1.1v1.1.0-rcGarrett D'Amore2018-11-05
|
* fixes #577 target library dependencies should be publicGarrett D'Amore2018-11-05
| | | | | | | | | | | This is a significant refactor of the library configuration. We use the modern package configuration helper, with a template script that also does the find_package dance for any of our dependencies. We also have restructured the code so that most protocols and transports have their configuration isolated to their own CMakeLists file, reducing the size of the global CMakeLists file.
* fixes #767 Want tunable stack sizeGarrett D'Amore2018-10-31
|
* fixes #735 Configuring ZeroTier for a unified build is too hardGarrett D'Amore2018-09-24
| | | | | | | This changes the code to make use of a different project we have created (libzerotiercore) that is "CMake clean". This should make using and configuring this code *much* better. It may also have the benefit of making this configuration work better for Windows systems.
* fixes #4 Statistics supportGarrett D'Amore2018-09-03
| | | | | | | | | | | | | | | | This introduces new public APIs for obtaining statistics, and adds some generic stats for dialers, listeners, pipes, and sockets. Also added are stats for inproc and pairv1 protocol. The other protocols and transports will have stats added incrementally as time goes on. A simple test program, and man pages are provided for this. Start by looking at nng_stat(5). Statistics does have some impact, and they can be disabled by using the advanced NNG_ENABLE_STATS (setting it to OFF, it's ON by default) if you need to build a minimized configuration.
* fixes #684 CentOS 5 broken -- has epoll but not eventfdGarrett D'Amore2018-08-30
|
* fixed compilation error on OpenBSD, missing sockpeercred (#659)Francisc Simon2018-08-19
| | | fixed compilation error on OpenBSD, missing sockpeercred
* Added QNX build support for cmake.Mike Bush2018-07-24
|
* 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 #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.
* 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.
* 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 #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.
* fixes #476 Crank the library ABI versionGarrett D'Amore2018-05-22
|
* 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 #444 Stop looking for asciidoctor by defaultGarrett D'Amore2018-05-18
| | | | | | | | | | | While here, we have actually cleaned this up and enabled documentation building to work, for folks that want it. We default to off, because frankly folks should just use the website and be happy. If docs are enabled, then both man pages and html are generated. The man pages are noticably inferior (only so much you can do with 80 columns of text), but some people have indicated they prefer to be able to type "man" something.
* fixes #393 panic on illumos - epoll assertion errorGarrett D'Amore2018-05-06
| | | | | | | | This replaces the epoll support with proper illumos/SunOS port events. The port event support is structured so that it actually is superior to epoll and kqueue, because it avoids a single master lock on the poller. In the future we will explore this for macOS and Linux pollers.
* fixes #396 illumos doesn't build (missing NNG_PLATFORM_POSIX ON)Garrett D'Amore2018-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #397 Need to cast zoneid fixes #395 sun is predefined on illumos/Solaris fixes #394 alloca needs to #include <alloca.h> fixes #399 Cannot use SVR4.2 specific msghdr fixes #402 getpeerucred needs a NULL initialized ucred fixes #403 syntax error in posix_tcp - attempt to return void fixes #407 illumos getegid wrong fixes #406 nni_idhash_count is dead code fixes #404 idhash typedef redeclared fixes #405 warning: newline not last character in file This is basically a slew of related bug fixes required to make this work on illumos. Note that the fixes are not "complete", because more work is required to support port events given that epoll is busted on illumos. We also fixed a bunch of things that aren't actually "bugs" per se, but really just warnings. Silencing them makes things better for everyone. Apparently not all compilers are equally happy with redundant (but otherwise identical) typedefs; we use structs in some places instead of shorter type names to silence these complaints. Note that IPC permissions (the mode bits on the socket vnode) are not validated on SunOS systems. This change includes documentation to reflect that.
* fixes #383 Would like peerid for IPCGarrett D'Amore2018-05-03
| | | | | We offer uid, gid, process id, and even zone id where we have them. Docs and tests are provided.
* Remove .version file -- we use git tags.Garrett D'Amore2018-03-18
|
* epoll: add epoll-based pollq implementationLiam Staskawicz2018-03-15
| | | | fixes #33
* fixes #262 NNG_OPT_URL should be resolvedGarrett D'Amore2018-03-04
| | | | | | | | This causes TCP, TLS, and ZT endpoints to resolve any wildcards, and even IP addresses, when reporting the listen URL. The dialer URL is reported unresolved. Test cases for this are added as well, and nngcat actually reports this if --verbose is supplied.
* kqueue: add kqueue-based pollq implementationLiam Staskawicz2018-03-02
|
* fixes #240 nngcat is MIAGarrett D'Amore2018-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is intended to provide compatibility with, and has been tested against, legacy nanocat. There are a few differences though. At this time support for the alias names (where argv[0] is set to something like nngreq or somesuch) is missing. By default this library operations without NNG_FLAG_NONBLOCK on dial and listen, so that failures here are immediately diagnosable. (This behavior can be changed with the --async flag.) By default --pair means PAIRv1, but you can specify --pair0 or --pair1 explicitly. (There is also a --compat mode, and in that mode --pair means PAIRv0. The --compat mode also turns on NNG_FLAG_NONBLOCK by default.) The "quoted" mode also quotes tabs. (Legacy nanocat did not.) It is possible to connect to *multiple* peers by using the --dial or --listen (or similar) options multiple times. Shorthands can be used for long options that are not ambiguous. For example, --surv can be used to mean surveyor, but --re is invalid because it can mean req, rep, or respondent. We assume you have a reasonable standard C environment. This won't work in embedded environments without support for FILE *. TLS options are missing but to be added soon. A man page is still to be written.