aboutsummaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAge
...
* Replace `NNG_OPT_RAW` with `nng_socket_raw`.Garrett D'Amore2024-11-02
| | | | Similar to the other identities, this simplifies code a bit.
* Replace `NNG_OPT_PROTO`, `NNG_OPT_PROTONAME`, and friends with functions.Garrett D'Amore2024-11-02
| | | | | | Socket options were a little awkward, and these are core properties of the socket. Few if any applications need these. This also avoids some dynamic allocations.
* Remove nng_ctx/socket_set/get_addrGarrett D'Amore2024-11-02
| | | | | Support for setting or getting sockaddrs on sockets or on contexts makes little sense, since these are always transport specific.
* NNG_OPT_RECVFD and NNG_OPT_SENDFD converted to functions.Garrett D'Amore2024-11-02
| | | | | | | | | | These options are removed entirely, and their functionality is now available via special functions, `nng_socket_get_send_poll_fd` and `nng_socket_get_recv_poll_fd`, making these first class methods on the socket. This eliminates a bit of wasteful code, and provides type safety for these methods.
* Remove nng_stream_set function family.Garrett D'Amore2024-10-28
| | | | This was not really used or useful.
* streams: drop some stream set functionsGarrett D'Amore2024-10-28
| | | | | | | | | | | We don't need nng_stream_set_addr nor nng_stream_set_ptr. These methods are simply not useful for streams, which have their properties established at creation time. Arguably in fact, all of nng_stream_set_* could go away -- the only properties it is implemented for are TCP keepalive and nodelay tuning, and those should be reasonably set by the creator of the stream.
* tls: move definitions to core nng.hGarrett D'Amore2024-10-28
| | | | | | TLS is not really merely supplemental anymore. Its pretty fundamental. Let's make it accessible directly. This will allow us to define typed property access functions.
* tls: Remove the individual TLS configuration optionsGarrett D'Amore2024-10-28
| | | | | | | | This is a breaking change. TLS configuration changes are to be made using TLS configuration objects, and then set on a listener or dialer with NNG_OPT_TLS_CONFIG. This should be a bit less racy, and allows for simpler code.
* Use `const` for nng_stat when possible.Garrett D'Amore2024-10-20
| | | | | This should help the compiler enforce checks, and may result in better optimizations.
* UDP: numerous fixes, added test for copy breakGarrett D'Amore2024-10-13
| | | | | | There were several bugs here, including use-after-free, a problem when the copy limit was exceeded, and uninitialized receive thresholds.
* UDP: add some statisticsGarrett D'Amore2024-10-12
|
* Remove the last of the legacy option handling functions.Garrett D'Amore2024-10-06
|
* Remove deprecated context option functions.Garrett D'Amore2024-10-06
|
* Drop the legacy listener option functionsGarrett D'Amore2024-10-06
|
* Remove dialer legacy option functionsGarrett D'Amore2024-10-06
|
* Drop unused nng_msg_getoptGarrett D'Amore2024-10-06
|
* Remove unused legacy nng_closeall.Garrett D'Amore2024-10-06
|
* Remove deprecated `nng_pipe_getopt` and friends.Garrett D'Amore2024-10-06
|
* Remove the legacy transport registration functions.Garrett D'Amore2024-10-06
| | | | | | This also allows to remove most of the transport headers. Only zerotier.h sticks around, and only for now. (We expect to eject it into a separate module.)
* Flag build packages as 2.0.0-dev.Garrett D'Amore2024-10-06
|
* idhash: add nng_id_visit APIGarrett D'Amore2024-08-11
| | | | | | This allows an efficient way to iterate over the entries stored in an ID hash. The iteration is fast, and requires no additional storage. The order of iteration is not guaranteed.
* fixes #1846 Add support for TLS PSKGarrett D'Amore2024-07-21
| | | | | | This also adds an SP layer transport test for TLS, based on the TCP test but with some additions; this test does not cover all the edge cases for TLS, but it does at least show how to use it.
* 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.
* 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.
* fixes #543 Add logging support frameworkGarrett D'Amore2024-04-13
|
* Bump version to 1.7.3.v1.7.3Garrett D'Amore2024-03-01
|
* idhash: Add missing C++ linkage guards.Garrett D'Amore2024-02-04
|
* bump version to 1.7.2.v1.7.2Garrett D'Amore2024-02-03
|
* Bump to version 1.7.1.v1.7.1Garrett 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.
* Start of version 1.7.1Garrett D'Amore2024-01-06
|
* Bump version to 1.7.0 official.Garrett D'Amore2024-01-06
|
* 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.
* fixes #1751 Support nng_aio_set_expire().Garrett D'Amore2023-12-30
| | | | While here fixed a number of nits in comments.
* 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.
* Bump version to 1.7.0preGarrett D'Amore2023-12-17
| | | | | | (This should avoid folks thinking master represents 1.6.0.) The next release needs to bump the minor because of the new option NNG_OPT_REQ_RESENDTICK.
* 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.
* Bump version to 1.6.0v1.6.0Garrett D'Amore2023-11-26
|
* Get common name and subject alternative names of peer certificate (#1617)Christian Fischbach2023-02-08
| | | Co-authored-by: Christian Fischbach <cfischbach@mac.com>
* fixes #1574 Non-blocking version of nng_aio_wait / nng_aio_resultGarrett D'Amore2022-04-18
| | | | | | | This introduces a new API, nng_aio_busy(), that can be used to query the status of the aio without blocking. Some minor documentation fixes are included.
* mark deprecated functions as deprecated so they show as warnings during ↵Edward Rudd2021-12-28
| | | | compile (#1532)
* Bus socket converted to use lmq.Garrett D'Amore2021-12-27
| | | | | | | | | | This should give significant performance boosts to anyone using this protocol. Buffering on both the send and receive side is supported, with a default buffer size of 16 messages. This should help provide a reasonable default case for most users. While here updated the test for bus to much more complete NUTS style test framework, with increased coverage.
* Introduce nng_device_aio().Garrett D'Amore2021-12-27
| | | | | | This function is like nng_device(), but runs asynchronously. Also, this fixes #1503 nng_device causes nng_close to blocking
* Restore legacy nng_getopt_ptr.Garrett D'Amore2021-12-25
| | | | closes #1553
* fixes #1536 nng_sendmsg and nng_recvmsg could be fasterGarrett D'Amore2021-11-28
| | | | fixes #1535 Desire nng_ctx_sendmsg and nng_ctx_recvmsg
* Bump version v1.5.2v1.5.2Garrett D'Amore2021-08-10
|
* Fix premature transport registration. Mark it deprecated.Garrett D'Amore2021-08-01
| | | | | | | Originally the idea was to better support having the transports be separate loadable modules. This isn't needed for the builtin transports, so we make the explicit initialization of them deprecated, and document it as such.