aboutsummaryrefslogtreecommitdiff
path: root/src/core
Commit message (Collapse)AuthorAge
...
* fixes #841 Calling nng_stats_get() before creating socket panicsGarrett D'Amore2019-01-01
| | | | | While here fixed a spelling error in the description of the global statistics structure.
* fixes #825 TCP public API should use generic setopt/getoptGarrett D'Amore2018-12-31
| | | | | | | | | | | | This changes much of the internal API for TCP option handling, and includes hooks for some of this in various consumers. Note that the consumers still need to have additional work done to complete them, which will be part of providing public "raw" TLS and WebSocket APIs. We would also like to finish addressing the call sites of nni_tcp_listener_start() that assume the sockaddr is modified -- it would be superior to use the NNG_OPT_LOCADDR option. Thaat will be addressed in a follow up PR.
* fixes #835 inproc should use new option APIGarrett D'Amore2018-12-31
| | | | | Some more changes to use nni_type instead of nni_opt_type are included as well.
* fixes #834 Simplify IPC internal API & updateGarrett D'Amore2018-12-31
| | | | | This also makes some smaller related changes to use the new nni_type instead of nni_opt_type.
* progress on IPC endpointsGarrett D'Amore2018-12-29
|
* IPC option rework (pipe/conn) to reduce code duplication.Garrett D'Amore2018-12-29
|
* fixes #831 Unify option structures, o_type is unusedGarrett D'Amore2018-12-29
|
* fixes #823 Define public IPC (#824)Garrett D'Amore2018-12-22
| | | | | | | This introduces a basic IPC API, modeled on the TCP API, for direct access. Only connection options are exposed at present -- we need to add options for dialers and listeners (and particularly listener settings for permissions and security attributes.) Documentation is still outstanding, but a very limited test suite exists.
* 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 #812 message queue put_error unusedGarrett D'Amore2018-12-11
|
* fixes #799 Compile error on Windows with disabled statsGarrett D'Amore2018-11-23
|
* move all public headers to include/nng/ folderGregor Burger2018-11-22
| | | | | | | | | | This change makes embedding nng + nggpp (or other projects depending on nng) in cmake easier. The header files are moved to a separate include directory. This also makes installation of the headers easier, and allows clearer identification of private vs public heade files. Some additional cleanups were performed by @gedamore, but the main credit for this change belongs with @gregorburger.
* fixes #794 nng bug report URL wrongGarrett D'Amore2018-11-16
|
* fixes #782 stat namespace collision on QNXGarrett D'Amore2018-11-09
|
* fixes #772 ineffectual assignment in aio_initGarrett D'Amore2018-11-01
|
* fixes #766 NNG asserts when setting socket nameGarrett D'Amore2018-11-01
| | | | Reported by @TBastiani (with suggested fix). Test validation added.
* Add local IP address tuning for ZeroTier.Garrett D'Amore2018-10-25
| | | | | These options are undocumented -- for now. We need to get some experience with them to ensure that they are worth keeping.
* fixes #761 idhash work to factor in upper bits is pointlessGarrett D'Amore2018-10-23
|
* remove unused function declarationQXSoftware2018-10-12
|
* remove redundant zero memory operationsQXSoftware2018-10-12
|
* fix function "int nni_msg_alloc(nni_msg **mp, size_t sz)" allocates the ↵QXSoftware2018-10-02
| | | | underlying buffer twice under some circumstance, say, sz = 1024 or 2048
* use index together with increment operator(postfix form)QXSoftware2018-10-02
|
* update the comment (nng_msgq_put_until doesn't exists anymore)QXSoftware2018-10-02
|
* fixes #721 stale #if 0 block in stats.hGarrett D'Amore2018-09-12
|
* fixes #713 stats warnings from WindowsGarrett D'Amore2018-09-09
|
* fixes #710 idhash has nasty performance bugGarrett D'Amore2018-09-09
| | | | fixes #709 idhash bug on duplicate add
* remove unused typedefQXSoftware2018-09-09
|
* remove redundant zero memsetQXSoftware2018-09-09
|
* 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 #693 Failed dial results in hard spinGarrett D'Amore2018-08-31
|
* fixes #691 Desire 16 and 64 bit message manipulatorsGarrett D'Amore2018-08-31
| | | | | | We use macros to generate message bodies for each of the various variants, reducing source code size (but not compiled size). The documentation is updated to indicate each of these variants.
* fixes #686 strtoull() not present on WindowsGarrett D'Amore2018-08-30
| | | | | | This both makes new functions available to the core, and addresses a bug which would have prevented building the ZeroTier transport on Windows.
* fixes #673 transports could benefit from access to upper layerGarrett D'Amore2018-08-27
|
* fixes #674 want 64-bit atomics (for stats)Garrett D'Amore2018-08-27
|
* fixes #608 Add TCP support to specify local network interfaceGarrett D'Amore2018-08-27
| | | | | This also fixes a leaked TCP connection on a failure path, which we noticed while working this change.
* fixes #669 pipe.c type conversion warningGarrett D'Amore2018-08-20
|
* fixes #664 aio cancellation could be betterGarrett D'Amore2018-08-20
| | | | | | | | | This changes the signature of the aio cancellation routines to take the argument for cancellation directly, so we do not need to lookup the argument using the nni_aio_get_prov_data. We should probably consider eliminating nni_aio_get_prov_data, and co, and changing the prov_extra to reflect prov_data. Later.
* Remove dead #if 0 code in dialer.Garrett D'Amore2018-08-19
|
* fixes #654 use aio for synchronous connectGarrett D'Amore2018-08-15
|
* fixes #648 REQ protocol can hang on closeGarrett D'Amore2018-08-14
| | | | | | | | | | | Actually the problem was in socket core, in particular in the shutdown code. The socket shutdown is supposed to ensure that no pipes were present on the socket, so that protocols need not concern themselves with this. The code unfortunately was busted, due to an ordering problem compounded by a race condition. This fixes that, and changes the REQ protocol to avoid the blocking condition altogether, and sprinkles a few assertions to validate these rules are being adhered to.
* fixes #208 pipe start should occur before connect / acceptGarrett D'Amore2018-08-14
| | | | | | | | | | fixes #599 nng_dial sync should not return until added to socket This reintroduces the changes for the above fixes, building upon the transport modifications that we have made to eliminate the separate transport pipe start entry point. It also includes slightly reworked code during start to put a hold on the pipe when it is created, which we we drop at the end, hopefully fixing a use-after-free.
* fixes #625 aio->a_stop/aio_begin may be too severeGarrett D'Amore2018-08-07
|
* fixes #623 nni_aio_stop could be betterGarrett D'Amore2018-08-06
|
* Revert "fixes #599 nng_dial sync should not return until added to socket"Garrett D'Amore2018-08-06
| | | | | This changeset needs work. We are seeing errors described by This reverts commit d7f7c896c0ede24249ef63b1e45b1878bf4bd473.
* fixes #599 nng_dial sync should not return until added to socketGarrett D'Amore2018-08-05
| | | | | | | | | | fixes #208 pipe start should occur before connect / accept fixes #616 Race condition closing between header & body This refactors the transports to handle their own connection handshaking before passing the pipe to the socket. This changes and simplifies the setup. This also fixes a rather challenging race condition described by #616.
* fixes #605 NNI_ALLOC_STRUCT/NNI_ALLOC_STRUCTS should zero memoryGarrett D'Amore2018-07-24
|
* fixes #604 pipe free does not finalize cvGarrett D'Amore2018-07-20
|
* fixes #601 pipe destroy can fail to close pipeGarrett D'Amore2018-07-18
|
* fixes #595 mutex leak and other minor errors in TCPGarrett D'Amore2018-07-18
| | | | | | | | | | | | | | | | fixes #596 POSIX IPC should move away from pipedesc/epdesc fixes #598 TLS and TCP listeners could support NNG_OPT_LOCADDR fixes #594 Windows IPC should use "new style" win_io code. fixes #597 macOS could support PEER PID This large change set cleans up the IPC support on Windows and POSIX. This has the beneficial impact of significantly reducing the complexity of the code, reducing locking, increasing concurrency (multiple dial and accepts can be outstanding now), reducing context switches (we complete thins synchronously now). While here we have added some missing option support, and fixed a few more bugs that we found in the TCP code changes from last week.
* fixes #589 tsan found racesGarrett D'Amore2018-07-16
|