| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
This functionality was provided principally for libnanomsg compatibility.
This saves some memory and eliminates some pointless functionality.
While here, updated the socket options documentation to remove references
to options already removed.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Applications must now call nng_init(), but they can supply
a set of parameters optionally. The code is now safe for
multiple libraries to do this concurrently, meaning nng_fini
no longer can race against another instance starting up.
The nni_init checks on all public APIs are removed now.
|
| |
|
|
| |
This is simpler, and more reliable than using socket options.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Don't emit the log for date change unless we are in debug mode.
Emit a newline when starting a new NUTS test.
Change the default log level - it was too noisy.
|
| |
|
|
|
|
|
| |
The framework for saving and replaying socket options was left
over, and should not be used. But we do need to send the initial
socket options to endpoints when creating them, so we have support
for that in a cleaner fashion that does not require memory allocations.
|
| |
|
|
|
|
|
|
| |
This also fixes a couple of minor bugs -- changing the socket name
could be incorrect as the termination was not applied properly,
and the ZeroTier code got a change -- note that it is only possible
in this revised version to pass a single moon ID for ZT orbit.
The ZT code is a bit stale, and untested anyway.
|
| | |
|
| | |
|
| |
|
|
|
| |
The underlying stream APIs have no need for untyped accessors.
Another step on the road to removal of NNI_TYPE_OPAQUE.
|
| |
|
|
| |
This is a step on the path to removing unsafe untyped option accesses.
|
| |
|
|
|
| |
The main purpose is to eliminate the NNI_TYPE_OPAQUE options,
by putting these into their own first class, protocol-specific, functions.
|
| |
|
|
| |
Similar to the other identities, this simplifies code a bit.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Essentially, we forgot to dereference as uint8_t *, which can
lead to some suprises if these are misused.
|
| |
|
|
| |
This was not really used or useful.
|
| |
|
|
|
|
|
|
|
|
|
| |
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 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.
|
| |
|
|
|
|
|
|
|
| |
Transport specific options should be configured on the end point.
This has the most impact for TLS, as TLS dialers and listeners will
need to be allocated apriori, to configure TLS options.
Some legacy tests were removed... we're going to remove the legacy
libnanomsg compatibility layer anyway.
|
| |
|
|
|
| |
This should help the compiler enforce checks, and may result
in better optimizations.
|
| |
|
|
|
| |
This starts by updating UDP to use this approach, since we already
have a convenient lock. We should look at doing the same for other stats.
|
| |
|
|
|
| |
Unfortunately for now we have the struct itsel,f but it can become
mostly empty.
|
| | |
|
| |
|
|
|
| |
If one tries to sleep indefinitely, a sign bug leads to constantly
waking calls, which causes an infinite cycle in the expire loop.
|
| |
|
|
|
|
| |
It turns out that for now this results in early wakeups, due to another
bug in the aio framework. But when that bug is fixed, this bug will
lead to hangs when redialing.
|
| |
|
|
|
| |
Actually this test appears to be broken everywhere, and the only
reason it ever worked is that we took > 50 ms to context switch.
|
| | |
|
| |
|
|
|
| |
This is expected to be useful for new transports where we need
the sock address to properly reply (think UDP with multicast).
|
| |
|
|
| |
This will be used for some follow up work (UDP).
|
| |
|
|
|
|
|
| |
This adds endian awareness at compile time, and defines some little
endian versions of some macros. We antiicpate making more use of
little endian in new protocols to reduce the "endian tax", as nearly
every modern system is little endian these days.
|
| |
|
|
|
| |
This will be used in UDP. It also lets us reduce some unnecessary
code paths for redundant library initialization.
|
| | |
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
| |
(#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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
when an `aio` has no `a_cancel_fn` and the task is in `task_prep` abort it on `nni_aio_stop` call
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| | |
|
| | |
|
| |
|
|
|
| |
The realtime clock is not (yet) exposed for user applications, but it
is used for logging timestamps accurately.
|
| | |
|
| | |
|
| |
|
| |
Fix comment typo
|