summaryrefslogtreecommitdiff
path: root/src/protocol/reqrep/rep.c
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.
* Event notification via pollable FDs verified working.Garrett D'Amore2017-01-22
|
* Added protocol flags (which ones can send, and which can receive).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.)
* 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.
* Various complaints found in AppVeyor build.Garrett D'Amore2017-01-16
|
* Move to generic socket & pipe workers, and up to 4 each.Garrett D'Amore2017-01-08
| | | | | This should eliminate all need for protocols to do their own thread management tasks.
* Add respondent protocol. (Half of survey pattern.)Garrett D'Amore2017-01-08
|
* Simplify locking for protocols.Garrett D'Amore2017-01-07
| | | | | | | | | In an attempt to simplify the protocol implementation, and hopefully track down a close related race, we've made it so that most protocols need not worry about locks, and can access the socket lock if they do need a lock. They also let the socket manage their workers, for the most part. (The req protocol is special, since it needs a top level work distributor, *and* a resender.)
* Bunch of copyright fixes.Garrett D'Amore2017-01-06
|
* 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.
* Initial cut at TCP, totally untested beyond compilation.Garrett D'Amore2017-01-04
| | | | | This also adds checks in the protocols to verify that pipe peers are of the proper protocol.
* Add NNI_GET32, NNI_PUT32 macros.Garrett D'Amore2017-01-02
|
* 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
|
* Protocol initialization restructuring.Garrett D'Amore2017-01-02
|
* Rename nni_socket to nni_sock.Garrett D'Amore2017-01-02
|
* Change msgqueue -> msgq.Garrett D'Amore2017-01-02
|
* Use new NNI_ALLOC_STRUCT macro. nni_msg_dup copies options too.Garrett D'Amore2017-01-02
|
* Backtrace fix found by gcc warning.Garrett D'Amore2017-01-01
|
* REQ/REP use new style locks. Also, enable compilation for REP.Garrett D'Amore2017-01-01
|
* Uncrustify fixes.Garrett D'Amore2016-12-31
|
* REP protocol. Untested beyond compilation.Garrett D'Amore2016-12-30