summaryrefslogtreecommitdiff
path: root/src/nng.h
Commit message (Collapse)AuthorAge
* Added more plumbing to facilitate test writing & compatibility.Garrett D'Amore2017-01-26
| | | | | | Also, while here fixed a bug for the PAIR protocol in compat mode. It should now be possible to import more of the nanomsg tests directly with little or no modification.
* Initial start of compat layer with bind, connect, etc. Untested.Garrett D'Amore2017-01-22
|
* Event notification via pollable FDs verified working.Garrett D'Amore2017-01-22
|
* 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.)
* 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
|
* Public pipe and endpoint APIs use IDs instead of pointers.Garrett D'Amore2017-01-17
|
* 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.
* Make sure to pass -DNNG_STATIC_LIB for static library.Garrett D'Amore2017-01-15
|
* 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.
* Many fixes for Windows. It compiles, and some tests work.Garrett D'Amore2017-01-13
| | | | | | Windows is getting there. Needs a couple of more more hours to enable everything, especially IPC, and most of the work at this point is probably some combination of debug and tweaking things like error handling.
* Add survey test (and fix survey pattern).Garrett D'Amore2017-01-09
| | | | | | | As part of this, we've added a way to unblock callers in a message queue with an error, even without a signal channel. This was necessary to interrupt blockers upon survey timeout. They will get NNG_ETIMEDOUT, but afterwards callers get NNG_ESTATE.
* Message API was awkward.Garrett D'Amore2017-01-06
| | | | | | | The use of a single function to get both size and length actually turned out to be awkward to use; better to have separate functions to get each. While here, disable some of the initialization/fork checks, because it turns out they aren't needed.
* Change a bunch of copyrights to 2017 for work done since the 1st.Garrett D'Amore2017-01-05
|
* Add nng_shutdown() for sockets to help avoid close race.Garrett D'Amore2017-01-05
| | | | Also we added a two phase shutdown for threads.
* Working towards TCP support.Garrett D'Amore2017-01-03
|
* Fixes to enable REQ/REP to operate.Garrett D'Amore2017-01-02
| | | | | | | This uncovered a few problems - inproc was not moving the headers to the body on transmit, and the message chunk allocator had a serious bug leading to memory corruption. I've also added a message dumper, which turns out to be incredibly useful during debugging.
* Begin testing REQ/REP.Garrett D'Amore2017-01-02
|
* Endpoint renaming.Garrett D'Amore2017-01-02
|
* Implementation of an id hash for hashing pipes by ID.Garrett D'Amore2016-12-29
| | | | | | | | | We use some hints from Python's dict implementation, using an open addressing scheme, and just ripping off the lower bits as needed. Since we assign IDs consecutively, this should work well. We shrink the table when it is only 1/8 full, and we ensure that we grow the table when it is 2/3 full. (The growth will start by at minimum doubling the required size.)
* Define new NNG_ESTATE for dealing with protocol state errors.Garrett D'Amore2016-12-28
| | | | | | This error code is set when a cooked mode protocol cannot support an operation yet. For example, it makes no sense to recv() a reply on a REQ socket if no request has been sent yet.
* New dial/listen API. Dialing might work now.Garrett D'Amore2016-12-25
| | | | | | | | | In order to give control over synchronous vs. async dialing, we provide a flag to indicate synchronous dialing is desired. (Hmm. Should we reverse the default sense?) We extend listen to have the same flag. Logic is moved to endpt.c since dialing is really and endpoint specific operation. There are other minor related bug fixes here too.
* Stubs for stats & device functions.Garrett D'Amore2016-12-25
|
* Change in handling of extended info for messages.Garrett D'Amore2016-12-24
| | | | | | | | Instead of supplying a pipe, and expecting that the info there would be included we use nng_msg_getopt(). This will be enabled by the app asking for extended information by setting an option, we don't copy the data for every app (most won't care). This means we don't have to worry about reference counting the pipe for the life of associated messages.
* nng_setopt works (rcvtimeout, etc.) External API adjustments.Garrett D'Amore2016-12-23
| | | | | | | The external API now uses simpler names for various things, notably we ditch the whole nng_socket_xx prefix. For example, intstead of nng_socket_create, we just use nng_open(). There are no more nng_socket_xxx calls.
* Some tests around recvmsg (no senders yet). Fixes for some edge cases.Garrett D'Amore2016-12-23
|
* Added lingering (1s default.)Garrett D'Amore2016-12-22
|
* Work on endpoints. More C99 & type cleanups.Garrett D'Amore2016-12-22
|
* Uncrustify clean now.Garrett D'Amore2016-12-21
|
* Uncrustify configuration, and shorter copyright banners, plus reformatGarrett D'Amore2016-12-21
| | | | code with uncrustify. (Minor adjustments.) No more arguments!
* Better separate public vs. private names.Garrett D'Amore2016-12-14
|
* nn_socket_create() implemented.Garrett D'Amore2016-12-14
|
* Protocols are 16-bit.Garrett D'Amore2016-12-14
|
* Make an interruptible version of message queues.Garrett D'Amore2016-12-12
|
* New inproc transport.Garrett D'Amore2016-12-12
| | | | Lots of supporting changes.
* Add operations on msgqueues.Garrett D'Amore2016-12-11
|
* More message API.Garrett D'Amore2016-12-11
|
* Message allocation, deallocation, reallocation.Garrett D'Amore2016-12-10
|
* Condition variable implementation.Garrett D'Amore2016-12-10
|
* Initial commit. This is not going to be useful to you for anything.Garrett D'Amore2016-12-10