aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* New thread infrastructure -- not used anywhere yet, but tested.Garrett D'Amore2017-01-01
|
* ECLOSED should abort the dialer.Garrett D'Amore2016-12-31
|
* Free our per socket message queues.Garrett D'Amore2016-12-31
|
* Finally closed the silly endpoint / pipe use-after-free race.Garrett D'Amore2016-12-31
|
* More use after free.Garrett D'Amore2016-12-31
|
* Use after free fix.Garrett D'Amore2016-12-31
|
* Close & destroy endpoints in a single operation.Garrett D'Amore2016-12-31
|
* Fix races in pipe termination.Garrett D'Amore2016-12-31
|
* Remove old debug.Garrett D'Amore2016-12-31
|
* Restructure to be less confusing to uncrustify.Garrett D'Amore2016-12-31
|
* Avoid C99 initialization; cmake 3.1/3.2 doesn't pass -std=c99?Garrett D'Amore2016-12-31
|
* More directed wakeups (and hopefully resolve races) for inproc.Garrett D'Amore2016-12-31
|
* Uncrustify fixes.Garrett D'Amore2016-12-31
|
* REP protocol. Untested beyond compilation.Garrett D'Amore2016-12-30
|
* Factor out repeated protocol code into common.Garrett D'Amore2016-12-29
|
* Fix error handling during initialization.Garrett D'Amore2016-12-29
|
* Richer tests and fixes for idhash. Also dynamically allocate idhash.Garrett D'Amore2016-12-29
|
* Test suite for idhash, fix symbol errors, and value changing.Garrett D'Amore2016-12-29
|
* Move option helpers to their own file.Garrett D'Amore2016-12-29
|
* 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.)
* REQ implementation.Garrett D'Amore2016-12-28
| | | | | | This is an untested implementation for REQ. It is based hugely upon the mangos implementation, so there is an excellent chance it will work.
* Pipe ID calculations & socket error functions.Garrett D'Amore2016-12-28
| | | | | | | | | | | The use of platform_next_id was a bit off, because it could give back pipe IDs that were too large (the high order bit must be clear), and in very long running applications serving many connections, the IDs could wrap and lead to duplicates. Also we have added functions to set the recverr or senderr values, which can be used by protocols -- either during initialization, or during filters. (REQ uses this for example.)
* Implement msgqueue_putback.Garrett D'Amore2016-12-28
| | | | | | | This function is called when we wish to return a message to the queue after examining it. It can also be used by the resender in the REQ protocol. Critically it does not disrupt the ordering of other messages. This is a non-blocking operation.
* 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.
* Add new nni_msg_dup() API. (Needed for REQ protocol.)Garrett D'Amore2016-12-28
|
* Start of REQ protocol. Still need hook handling and resender.Garrett D'Amore2016-12-28
|
* Send and receive now work.Garrett D'Amore2016-12-27
| | | | | | This fixes a few core issues, and improves readability for the message queue code as well. inproc delivery of messages works now.
* Message allocation fixed. Comparison was backwards.Garrett D'Amore2016-12-27
|
* Times are 64-bits, not 32-bits!Garrett D'Amore2016-12-27
|
* Condvars on MacOS X (even 10.12) don't work with monotonic times.Garrett D'Amore2016-12-27
|
* Buffer resizing implemented. (Needed for single threaded inproc tests.)Garrett D'Amore2016-12-27
|
* Substantial fixes for listen & dialers.Garrett D'Amore2016-12-25
| | | | | | | | | | At this point listening and dialing operations appear to function properly. As part of this I had to break the close logic up since otherwise we had a loop trying to reap a thread from itself. So there is now a separate reaper thread for pipes per-socket. I also changed lists to be a bit more rigid, and allocations now zero memory initially. (We had bugs due to uninitialized memory, and rather than hunt them all down, lets just init them to sane zero values.)
* Change entry points in transports to bind() and connect().Garrett D'Amore2016-12-25
| | | | | | | This was done as these entry points are more clearly associated with single function transport routines like those from BSD sockets, unlike our higher level dial() and listen() APIs that do accept() or reconnect in loops.
* 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.
* Pipe pointer was not stored, leading to crash in dial/listen.Garrett D'Amore2016-12-25
|
* Fix crash when destroying inproc endpoint.Garrett D'Amore2016-12-25
|
* Fallback to socket options if pipe doesn't have a specific value.Garrett D'Amore2016-12-25
|
* Expose and implement pipe operations. (nng_pipe_close, nng_pipe_getopt).Garrett D'Amore2016-12-25
|
* Stubs for stats & device functions.Garrett D'Amore2016-12-25
|
* Use macros to condense initialization checks.Garrett D'Amore2016-12-25
|
* Expose nng_msg_realloc().Garrett D'Amore2016-12-25
|
* Mix the PID into our random number seed.Garrett D'Amore2016-12-25
|
* Added external message handling.Garrett D'Amore2016-12-24
|
* 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.
* Expose nng_sendmsg.Garrett D'Amore2016-12-24
|
* Getopt implemented (and minimal test).Garrett D'Amore2016-12-24
|
* Fix for incorrect nni_usleep(), found with newly created platform tests.Garrett D'Amore2016-12-23
|
* 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.
* Fix incorrect timeouts on platforms without clock_gettime().Garrett D'Amore2016-12-23
|
* Try to satisfy uncrustify version differences. Make test use verbose by ↵Garrett D'Amore2016-12-23
| | | | default.