summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-07-28Implementations of TCP and IPC transports separatedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-28Precise reconnect interval randomisedMartin Sustrik
Till now the random fraction of the reconnect interval was computed based on process ID. This patch uses pseudo-random generated (seeded by exact time of when the process was started) to compute the interval. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-28Setting TCP socket options moved to tcp_engine_tMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-27vtcp_connecter fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-26First version of vtcp_connecter addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-26Code cleanupMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-26Experimental VTCP listener addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-26TCP transport classes simplifiedMartin Sustrik
zmq_engine and tcp_socket merged into tcp_engine zmq_connecter and tcp_connecter merged into tcp_connecter zmq_listener and tcp_listener merged into tcp_listener Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24PGM subscription forwarding fixedMartin Sustrik
PGM when using in XPUB socket has to subscribe for all the messages as it has no idea what the subscribers are interesred in. This generic subscribe message was malformed. Fixed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24Session classes merged into a single classMartin Sustrik
Removal of ZMQ_IDENTITY resulted in various session classes doing almost the same thing. This patch merges the classes into a single class. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24Only one polling mechanism is compiledMartin Sustrik
Till now wrappers for all the polling mechanisms available on the given platform were compiled, although only one of them was used. This patch compiles just the used one. This can make libzmq binary more concise. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24Obsolete include in ctx.hpp removedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24semaphore_t class removedMartin Sustrik
The class was not used anywhere anymore. Removed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24Remove blob_t classMartin Sustrik
The class was used in a single place. Replaced by a local typedef. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-22MSVC build brought up to dateMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-21mailbox::recv correctly passes EINTR to the callerMartin Sustrik
This bug caused signal during blocking call to assert. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-21ROUTER socket blocks on SNDHWMMartin Sustrik
Till now the message was droppen in such case. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-21ROUTER socket reports error when message cannot be routedMartin Sustrik
Till now, message was silently dropped if it was sent to a non-existent peer. Now, ECANTROUTE error is returned. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-21ZMQ_GENERIC renamed to ZMQ_ROUTERMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-18Fixed issue 230Pieter Hintjens
Signed-off-by: Pieter Hintjens <ph@imatix.com>
2011-07-18Includes in zmq.cpp cleaned-upMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-18Fix pollin on Cygwin.Steven McCoy
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk> Signed-off-by: Martin Sustrik <sustrik@250bom.com>
2011-07-18Signaler timeout bug on Windows fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-18Missing files for GENERIC socket implementation addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-17GENERIC socket type and COMMAND flag addedMartin Sustrik
GENERIC allows to use 0MQ as a dumb networking framework. It provides user with connect/disconnect notifications. Also, each inbound message is labeled by ID of the connection it originated from. Outbound messages should be labeled by the ID of the connection to send them to. To distinguish connect/disconnect notifications from common messages, COMMAND flag was introduced. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-15ZMQ_IDENTITY socket option removedMartin Sustrik
This patch simplifies the whole codebase significantly, including dropping depedency on libuuid. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-15non-immediate_connect functionality removedMartin Sustrik
It was used only by ROUTER socket. After its removal it became obsolete. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-15ROUTER and DEALER sockets removedMartin Sustrik
To be replaced by new generic socket type Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-12Bug with setting options on SUB socket fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-11PGM transport reconciled with subscription forwardingMartin Sustrik
As PGM is not capable of passing subscriptions upstream, subscriptions are ignored at sub side and engine subscribes for all messages on pub side. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-11ZMQ_FILTER option removedMartin Sustrik
The filtering is now done depending on the socket type. SUB socket filters the messages (end-to-end filtering) while XSUB relies on upstream nodes to do (imprefect) filtering. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-11Experimental code from zmq_init_t removed.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-09Drop outbound messages in XREP socket when SNDHWM is reachedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-08VSM data are aligned to 32/64 bit boundaryMartin Sustrik
Till now the VSM buffer was aligned to 16 bit boundary which could possibly cause problems on RISC architectures when accessing the message data in unsafe manner. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-03Merge branch 'master' of github.com:zeromq/libzmqMartin Sustrik
2011-07-03Race condition in eventfd signaler fixedMartin Sustrik
recv function on eventfd signaler could accidentally grab two signals instead of one. Fixed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-03eventfd implementation of the signalerMartin Sustrik
Eventfd (on Linux) is more efficient that socketpair for passing simple signals. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-03Fix MSVC buildMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-03Command are now stored in ypipes instead of in socketpairsMartin Sustrik
Storing commands in OS socket buffers caused whole lot of problems when free space in the buffer ran out. This patch stores commands in ypipes instead and uses socketpair just to signal the other thread, ie. at most one byte is stored in the socketpair at any single instant. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-30Testing for errors from pthread_* functions fixedMartin Sustrik
pthread_* functions return the error number rather than setting errno. This was not accounter for till now. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-29Use strrchr to ensure we split off the last colon for the service portAndrew Thompson
IPv6 addresses have colons and will produce invalid data for the getaddrinfo lookup. Signed-off-by: Andrew Thompson <andy@fud.org.nz>
2011-06-27Rename i_inout to i_engine_sinkMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-23Fix MSVC buildMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-23Outstanding requests dropped when requester dies (issue 190)Martin Sustrik
So far the requests in req/rep pattern were delivered to and processed by worker even though the original requester was dead. Thus, the worker processing replies with noone to deliver results to. This optimisation drops requests in two situations: 1. Queued inbound requests in XREP socket when peer disconnects. 2. Queued outbound requests in XREQ when socket is closed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-22O(1) fair-queueing in XREP implementedMartin Sustrik
Up to now the complexity of fair-queueing in XREP was O(n). Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-22New wire format for REQ/REP patternMartin Sustrik
This patch introduces two changes: 1. 32-bit ID is used to identify the peer instead of UUID 2. REQ socket seeds the label stack with unique 32-bit request ID It also drops any replies with non-matching request ID Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-21Unspecified error code from mailbox_t::recv on Win32 fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-20Introduce ZMQ_ROUTER and ZMQ_DEALER socketsMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-20LABEL flag added to the wire formatMartin Sustrik
So far there was no distinction between message parts used by 0MQ and message parts used by user. Now, the message parts used by 0MQ are marked as 'LABEL'. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-20Bug fixed in pipe terminationMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>