summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Windows: Use _close instead of closeGarrett D'Amore2024-01-27
|
* base64_test: fix compiler warning about castGarrett D'Amore2024-01-27
|
* tls: fix cast to integer warningGarrett D'Amore2024-01-27
|
* Mbed TLS CMake improvements.Garrett D'Amore2024-01-27
| | | | | Try to use the Mbed TLS cmake configuration data if present, and refactor our FindModule to adhere to the same basic API.
* New CMAKE option NNG_ENABLE_COMPAT (defaults ON)Garrett D'Amore2024-01-27
| | | | | | This option allows the compatibility code to be elided from the build. This saves build time, and eliminates bloat from a static library when used strictly in native NNG mode.
* Fix warning from inconsistent socket_pair prototype.Garrett D'Amore2024-01-06
|
* fix idhash not publicGarrett D'Amore2024-01-06
| | | | | | | | | We accidentally made idhash not public by not publishing its header in the right place. This is really generic utility stuff, so we have posted it in the nng/supplemental/util/ directory. We've also removed the ability to remove this -- its a very small amount of additional code, as its just a wrapper on top of mandatory functionality.
* silence compiler warning from minimum int constantGarrett D'Amore2024-01-01
|
* fixes #1572 nng creates too many threadsGarrett D'Amore2024-01-01
| | | | | | | | | | | | This further limits some of the thread counts, but principally it offers a new runtime facility, nng_init_set_parameter(), which can be used to set certain runtime parameters on the number of threads, provided it is called before the rest of application start up. This facility is quite intentionally "undocumented", at least for now, as we want to limit our commitment to it. Still this should be helpful for applications that need to reduce the number of threads that are created.
* Comment typoGarrett D'Amore2024-01-01
|
* fixes #1751 Support nng_aio_set_expire().Garrett D'Amore2023-12-30
| | | | While here fixed a number of nits in comments.
* provide NNG_MAX_POLLER_THREADSGarrett D'Amore2023-12-29
| | | | | | | This (defaults to 8) sets a limit on the number of poller threads that will be used for servicing I/Os. This is the size of the I/O completion port thread pool on Windows. POSIX pollers are generally not concurrent at present.
* fixes #1740 Public ID hash APIGarrett D'Amore2023-12-29
| | | | | | | | | This includes a manual page documenting the entire set of functions in one step. The hash is 64-bit based for now, to be maximally flexible. An internal 32-bit convenience for the common internal use is also provided (not public). The public API includes a test suite.
* tcp and tls: setting recv max on endpoint does not change pipesGarrett D'Amore2023-12-29
| | | | | Again, this was racy code, and not well tested. Set this option before starting the endpoint if you need to be sure.
* ipc: changing ep receive max should not affect established pipesGarrett D'Amore2023-12-29
| | | | This code was not well tested, and is racy as well.
* ipc: refactor get peerid support to use common POSIX codeGarrett D'Amore2023-12-29
| | | | | This eliminates some code. A test is added as well, so this should help with coverage.
* fixes #1746 Create a new socket:// transport for socketpair() based connectionsGarrett D'Amore2023-12-29
| | | | | | | | | | | | | This transport only listens, and creates connections when the application calls setopt on the lister with NNG_OPT_SOCKET_FD, to pass a file descriptor. The FD is turned into an nng_stream, and utilized for SP. The protocol over the descriptor is identical to the TCP protocol (not the IPC protocol). The options for peer information are borrowed from the IPC transport, as they may be useful for these purposes. This includes a test suite and full documentation.
* fixes #1734 websocket dialer hang on shutdownGarrett D'Amore2023-12-17
| | | | | | It's not absolutely clear that this fixes all of the possible cases, but we're hopeful that this does -- and in any event the bug does not seem to reproduce easily anymore.
* fixes #1735 websocket should send, and wait for, WS_CLOSE frames on shutdownGarrett D'Amore2023-12-17
| | | | fixes #1733 deadlock in websocket listener close
* fixes #1729 remove nni_timerGarrett D'Amore2023-12-17
|
* fixes #1728 surveyor could be simplified to not use timerGarrett D'Amore2023-12-17
|
* minor comment fixes for survey_testGarrett D'Amore2023-12-17
|
* fixes #1663 Request/Reply Protocol Throughput and ScalabilityGarrett D'Amore2023-12-16
| | | | | | | | | | | | | | | This eliminates the req protocols use of nni_timer (and setting a single timer node per request. This was problematic because it devolves into O(n^2) as we wind up inserting timer nodes and having to scan the list for the timer node. The solution is to use a single scan - stop worrying about insertion, but instead use a coarse granularity timer (defaults to 1 second) for retries. Then do the O(n) scan just once per interval. A new option, NNG_OPT_REQ_RESENDTICK, can be used to change the tick interval for cases (like unit tests) where more fine grained timing is required.
* fixes #1673 High CPU usage with TLSGarrett D'Amore2023-12-16
| | | | | | The aio for connections was meant to have an infinite sleep (no timeout), but was getting an initial value of zero, so we were spinning on accept.
* fixes #1713 SP pipe_send leaks message if aio is canceledGarrett D'Amore2023-11-26
|
* fixes #1701 compat: nn_reallocmsg is incorrectGarrett D'Amore2023-11-25
|
* fixes #1702 segfault canceling req receive while sendingGarrett D'Amore2023-11-25
|
* req: use nni_aio_completions - this is similar to #1523Garrett D'Amore2023-11-25
|
* fixes #1523 rare SEGV in sub nni_list_removeGarrett D'Amore2023-11-25
| | | | | | | | | | | | Credit goes to Wu Xuan (@willwu1217) for diagnosing and proposing a fix as part of #1695. This approach takes a revised approach to avoid adding extra memory, and it also is slightly faster as we do not need to update both pointers in the linked list, by reusing the reap node. As part of this a new internal API, nni_aio_completions, is introduced. In all likelihood we will be able to use this to solve some similar crashes in other areas of the code.
* fix: use ifdef for NNG_HAVE_BACKTRACEMarco Casaroli2023-11-25
| | | | | | | In some places, we use ifdef, and others if. This normalizes for always using ifdef, so we can compile when this macro is not defined.
* fix: use ifdef for NNG_TEST_LIBMarco Casaroli2023-11-25
| | | | | | | In some places, we use ifdef, and others if. This normalizes for always using ifdef, so we can compile when this macro is not defined.
* fix: use ifdef for NNG_ENABLE_STATSMarco Casaroli2023-11-25
| | | | | | | In some places, we use ifdef, and others if. This normalizes for always using ifdef, so we can compile when this macro is not defined.
* fixes #1675 undefined behavior in posix ipc_dialer_dialGarrett D'Amore2023-09-14
| | | | (This also affects TCP, and fixed there.)
* Update win_tcpconn.cNissimBendanan2023-09-14
| | | | | fix compile error in nano using clang version 16.0.5 fix issue: https://github.com/nanomsg/nng/issues/1676
* fixes #1619 expose expire threads tunablesPaulo Henrique Silva2023-08-27
| | | | | | | | | | | | | | | | | | This change makes expire threads tunable follows the same strategy as taskq threads tunables. Add NNG_NUM_EXPIRE_THREADS to override the default behavior (`n_cpu` expire threads). The NNG_MAX_EXPIRE_THREADS limit is always applied if > 0, even if you specify the desired number of threads using NNG_NUM_EXPIRE_THREADS. NNG_EXPIRE_THREADS is not used anymore. This was only referenced in the code but never defined on CMake. The logic to cap expire threads between 1 and 256 was removed. If users set no limits, whatever value they choose will be used instead of being silently overridden by us.
* Skip URI parameters when serving a directory (http_server)Robert Bielik2023-08-23
|
* fix the wrong size in stream xfr alloc.wangha2023-08-23
|
* fix copyrightsGarrett D'Amore2023-04-23
|
* fixes #1658 Possible use-after-free in dialerGarrett D'Amore2023-04-23
|
* fixes #1657 Use after free in listener (data race)Garrett D'Amore2023-04-23
|
* fixes #1619 Expose NNG_MAX_EXPIRE_THREADS via CMakeGarrett D'Amore2023-04-19
|
* fixes#1611 http_sconn_error() in http_server.c; use after freeGarrett D'Amore2023-04-19
|
* posix_resolv_gai.c: add AI_NUMERICSERV where undefinedSergey Fedorov2023-04-19
|
* Birth pipe object with non-zero reference.Garrett D'Amore2023-04-19
|
* fixes #1610 nni_sock_open() in socket.c: use after freeGarrett D'Amore2023-04-19
|
* Get common name and subject alternative names of peer certificate (#1617)Christian Fischbach2023-02-08
| | | Co-authored-by: Christian Fischbach <cfischbach@mac.com>
* Socket close may leak messages.Garrett D'Amore2023-02-07
| | | | | | We try to move the msgq close up earler. While here we can stop dropping and reacquiring the lock -- this is likely left over and may lead to races.
* Minor formatting fix.Garrett D'Amore2023-02-07
|
* Revert "fixes 1543 (#1616)"Garrett D'Amore2023-02-05
| | | | This reverts commit 8461c7207b440f5ba8c51b2236fcfa178f415a6f.
* Revert "fixes#1175 nng_listen occasionally fails when reusing ipc socket on ↵Garrett D'Amore2023-02-05
| | | | | | Windows (#1562)" This reverts commit 1892e1d6d102d1fbd37e2c3bbb59dc35d81c8b33.