aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Add endpoint tuning of maxrcv size. Fix cmsg API.Garrett D'Amore2017-01-24
| | | | | | | | | | | | | | The CMSG handling was completely borked. This is fixed now, and we stash the SP header size (ugh) in the CMSG contents to match what nanomsg does. We now pass the cmsg validation test. We also fixed handling of certain endpoint-related options, so that endpoints can get options from the socket at initialization time. This required a minor change to the transport API for endpoints. Finally, we fixed a critical fault in the REP handling of RAW sockets, which caused them to always return NNG_ESTATE in all cases. It should now honor the actual socket option.
* Add nni_ep_hold, nni_ep_hold_close, nni_ep_rele, nng_endpoint_close.Garrett D'Amore2017-01-24
|
* Implement reconnect timer including backoff.Garrett D'Amore2017-01-24
| | | | This allows us to enable the last test case for compat_reqrep.
* Added a bunch more compatibility stuff.Garrett D'Amore2017-01-23
| | | | | | | | I implemented the reqrep compatibility test, which uncovered a few semantic issues I had in the REQ/REP protocol, which I've fixed. There are still missing things. and at least one portion of the req/rep test suite cannot be enabled until I add tuning of the reconnect timeout, which is currently way too long (1 sec) for the test suite to work.
* Add nn_sendmsg (with NN_MSG support).Garrett D'Amore2017-01-23
|
* nn_recvmsg, and enhancements to support NN_MSG allocated messages.Garrett D'Amore2017-01-23
|
* Use nng_msg underneath (less copying!)Garrett D'Amore2017-01-23
|
* Initial start of compat layer with bind, connect, etc. Untested.Garrett D'Amore2017-01-22
|
* Start on compat stuff.Garrett D'Amore2017-01-22
|
* Event notification via pollable FDs verified working.Garrett D'Amore2017-01-22
|
* Whoops, forgot to add the pipe implementations to git!!Garrett D'Amore2017-01-21
|
* Adds NNG_OPT_SENDFD and NNG_OPT_RECVFD socket options (untested).Garrett D'Amore2017-01-21
|
* Uncrustify last couple sets of changes.Garrett D'Amore2017-01-21
|
* Added protocol flags (which ones can send, and which can receive).Garrett D'Amore2017-01-21
|
* Initial swag at notification pipes (not used yet).Garrett D'Amore2017-01-21
|
* Fix compilation warnings found on Windows.Garrett D'Amore2017-01-21
|
* Fix leaks in bus, socket leaks, tighten up close-side refcnting.Garrett D'Amore2017-01-21
| | | | | | | | | | | | | | This does a few things. First it closes some preexisting leaks. Second it tightens the overall close logic so that we automatically discard idhash resources (while keeping numeric values for next id etc. around) when the last socket is closed. This then eliminates the need for applications to ever explicitly terminate resources. It turns out platform-specific resources established at nni_init() time might still be leaked, but it's also the case that we now no longer dynamically allocate anything at platform initialization time. (This presumes that the platform doesn't do so under the hood when creating critical sections or mutexes for example.)
* Resolve deadlock during close.Garrett D'Amore2017-01-21
|
* Add more platforms (the *BSDs, SunOS/illumos) and update docs slightly.Garrett D'Amore2017-01-21
|
* Implement nng_send and nng_recv convenience routines.Garrett D'Amore2017-01-21
|
* Dangling compiler warnings from sock handle change.Garrett D'Amore2017-01-20
|
* fixes #18 Sockets should be uint32_t's (handles) not pointers.Garrett D'Amore2017-01-20
|
* Fix leak in surveyor pipe.Garrett D'Amore2017-01-19
|
* Thread fini shouldl be idempotent.Garrett D'Amore2017-01-19
|
* Fix synchronization problem in msgqueue with multiple consumers.Garrett D'Amore2017-01-19
|
* Fix TCP hostname wildcards on Windows. Sort of.Garrett D'Amore2017-01-18
| | | | | | | | | I seem to be having a very difficult time getting dual-stack sockets to function properly on Windows. I've sort of abandoned it for now. I need to think about how to solve this -- it's not clear to me right now whether dual stack sockets are the right answer or not. People do expect these to work, but a tcp6:// url might be more elegant.
* Address segfault in TCP, and fix wild card handling.Garrett D'Amore2017-01-18
|
* fixes #12 SURVEY hang in TravisGarrett D'Amore2017-01-18
|
* Fixes pipeline stall due to backpressure signaling race.Garrett D'Amore2017-01-18
|
* Reduce lock contention and simplify logic for endpoint creation.Garrett D'Amore2017-01-18
|
* Reaper exits too soon, leaking bits.Garrett D'Amore2017-01-18
|
* Fix leaking notify structs.Garrett D'Amore2017-01-18
|
* Windows compilation fixes.Garrett D'Amore2017-01-18
|
* Fixes for valgrind issues.Garrett D'Amore2017-01-18
|
* Public pipe and endpoint APIs use IDs instead of pointers.Garrett D'Amore2017-01-17
|
* Pipe IDs are now tracked on global ID hashes.Garrett D'Amore2017-01-17
|
* Pipe IDs are now tracked by hash table for performance.Garrett D'Amore2017-01-17
| | | | | This gives a better idea of pipe ID uniqueness, and is a step towards conversion of the API to use IDs instead of pointers.
* Added dynamic ID generation & management for idhash tables.Garrett D'Amore2017-01-17
| | | | | | This will allow us to use idhash tables to manage id handles a bit more flexibly. For example, sockets, pipe IDs, etc. can all be generated, and we can use hash tables to ensure that values do not collide.
* Windows clock fixes.Garrett D'Amore2017-01-16
| | | | | | | | | | | | Sleep() on Win32 rounds *down*, leading to truncated timeouts. What we do is change our sleep routing to start incrementally sleeping by 1ms until the tick count is reached. This ensures we don't wake early. This problem affects condition variables too, which means that some timeouts may occur up to one clock tick early (15ish ms). This should not be a problem for most users, who should really only be setting timeouts in quantities of a second or greater.
* External event API for send/recv implemented.Garrett D'Amore2017-01-16
| | | | | | This was the main blocker, I think, for the nanomsg legacy compat shim. Now that we have this, it should be relatively straight-forward to implement the legacy nanomsg API, including the SENDFD, RECVFD thing.
* Recv/Send event plumbing implemented (msgqueue and up).Garrett D'Amore2017-01-16
| | | | | | | | This change provides for a private callback in the message queues, which can be used to notify the socket, and which than arranges for the appropriate event thread to run. Upper layer hooks to access this still need to be written.
* Start of event framework.Garrett D'Amore2017-01-16
| | | | | | | | | | This compiles correctly, but doesn't actually deliver events yet. As part of this, I've made most of the initializables in nng safe to tear-down if uninitialized (or set to zero e.g. via calloc). This makes it loads easier to write the teardown on error code, since I can deinit everything, without worrying about which things have been initialized and which have not.
* Fixes for 32-bit Windows compilation.Garrett D'Amore2017-01-16
|
* Various complaints found in AppVeyor build.Garrett D'Amore2017-01-16
|
* Make sure to pass -DNNG_STATIC_LIB for static library.Garrett D'Amore2017-01-15
|
* Compile static *and* shared libraries.Garrett D'Amore2017-01-15
| | | | | Test code needs to use the static libraries so that they can get access to the entire set of symbols, including private ones that are not exported.
* Cleanup winsock somewhat.Garrett D'Amore2017-01-15
| | | | | | It turns out that I didn't quite understand overlapped I/O. We can and should always do the GetOverlappedResult(), regardless of how the routine returns.
* Windows IPC works now.Garrett D'Amore2017-01-15
|
* Use Windows tick clock instead of Performance counters.Garrett D'Amore2017-01-14
| | | | | | | | | | | | Since we use the tick counter to sleep, we should use the same clock for validation. The problem is that the high performance tick counter on the CPU may be slightly out of agreement with the windows clock. Furthermore, the tick counter is probably lots faster to retrieve since it is already updated, and needn't be recalculated each time. (We should consider just switching to millisecond clock resolution internally as well. It turns out that I don't think that timers that are shorter than 1ms are very useful.)
* Windows TCP now working.Garrett D'Amore2017-01-14
| | | | | | | There are lots of changes here, mostly stuff we did in support of Windows TCP. However, there are some bugs that were fixed, and we added some new error codes, and generalized the handling of some failures during accept. Windows IPC (NamedPipes) is still missing.