| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This represents a major change in the HTTP code base, consisting
of a complete revamp of the HTTP API. The changes here are too
numerous to mention, but the end result should be a vastly
simpler API for both server and client applications.
Many needless allocations were removed by providing fixed buffers
for various parameters and headers when possible.
A few bugs were fixed. Most especially we have fixed some bugs
around very large URIs and headers, and we have also addressed
conformance bugs to more closely conform to RFCs 9110 and 9112.
As part of this work, the APIs for WebSockets changed slightly
as well. In particular the properties available for accessing
headers have changed.
There is still documentation conversion work to do, and additional
functionality (such as proper support for chunked transfers), but
this is a big step in the right direction.
|
| |
|
|
| |
This aligns more closely with the nng_ctx functions.
|
| |
|
|
|
|
|
|
| |
This flag failed to provide real zero copy that it was intended for,
and it also involved extra allocations. Further, the API for it was
brittle and error prone.
Modern code should just work directly with nng_msg structures.
|
| |
|
|
|
| |
The CMAKE framework does this properly now by ensuring that
nng uses nng_find_package for any of its own dependencies.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This is tested and shown to work now.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
demo/async/client.c
- Enable client, on dial, to wait for server that has not yet started
demo/async/arun.sh
- Run async demo with arbitrary start order of server wrt clients
|
| |
|
|
|
|
|
| |
This fixes problems finding the threads library. There may
still be problems building these with TLS libraries added,
as those dependencies may not be satisfied if the library lacks
a cmake configuration file.
|
| |
|
|
|
|
|
|
|
|
| |
All vestiges of ZeroTier have been removed. Also, as consequence,
some binary values have changed (specifically the number of the
address family used for NNG_AF_ABSTRACT.)
We may create a new ZeroTier transport that makes use of lwIP to
provide for ZeroTier and native host network coexistence, without
requiring ZeroTier to participate in the native networking stack.
|
| | |
|
| |
|
|
|
| |
This saves yet another allocation. It also no longer returns a value
making this a breaking change.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This allows us to explicitly stop streams, dialers, and listeners,
before we start tearing down things. This hopefully will be useful
in resolving use-after-free bugs in http, tls, and websockets.
The new functions are not yet documented, but they are
nng_stream_stop, nng_stream_dialer_stop, and nng_stream_listener_stop.
They should be called after close, and before free. The close
functions now close without blocking, but the stop function is
allowed to block.
|
| | |
|
| |
|
| |
change message to function name
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Change all shebangs to use '#!/usr/bin/env bash'.
This increases portability to platforms which do not cohere to the FHS.
|
| |
|
|
|
| |
* Extend the reqdep demo with ZeroTier transport
* tab indentation
|
| | |
|
| |
|
|
| |
Most error codes in `nng_errno_enum` are positve values, so the existing error check would not catch something like `NNG_ECONNREFUSED`.
|
| |
|
|
| |
from being compiled on Windows.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
We enabled verbose compiler warnings, and found a lot of issues.
Some of these were even real bugs. As a bonus, we actually save
some initialization steps in the compat layer, and avoid passing
some variables we don't need.
|
| | |
|
| |
|