1. 21 May, 2012 1 commit
  2. 20 May, 2012 1 commit
  3. 13 May, 2012 1 commit
    • KennyTM~'s avatar
      Allow the ZMQ_MONITOR code compilable on gcc 4.7 on Linux. · c995de65
      KennyTM~ authored
      The current ZMQ_MONITOR code does not compile in gcc 4.7, as -pedantic
      and -Werror are enabled, and ISO C++ doesn't allow casting between
      normal pointers (void*) and function pointers, as pedantically their
      size could be different. This caused the library not compilable. This
      commit workaround the problem by introducing one more indirection, i.e.
      instead of calling
      
          (void *)listener
      
      which is an error, we have to use
      
          *(void **)&listener
      
      which is an undefined behavior :) but works on most platforms
      
      Also, `optval_ = monitor` will not set the parameter in getsockopt(),
      and the extra casting caused the LHS to be an rvalue which again makes
      the code not compilable. The proper way is to pass a pointer of function
      pointer and assign with indirection, i.e. `*optval_ = monitor`.
      
      Also, fixed an asciidoc error in zmq_getsockopt.txt because the `~~~~`
      is too long.
      c995de65
  4. 04 May, 2012 1 commit
  5. 20 Apr, 2012 1 commit
  6. 18 Apr, 2012 1 commit
  7. 13 Apr, 2012 1 commit
  8. 12 Apr, 2012 1 commit
    • Sergey KHripchenko's avatar
      Implement ZMQ_TCP_ACCEPT_FILTER setsockopt() for listening TCP sockets. · acba6bdd
      Sergey KHripchenko authored
      Assign arbitrary number of filters that will be applied for each new TCP transport
      connection on a listening socket.
      If no filters applied, then TCP transport allows connections from any ip.
      If at least one filter is applied then new connection source ip should be matched.
      To clear all filters call zmq_setsockopt(socket, ZMQ_TCP_ACCEPT_FILTER, NULL, 0).
      Filter is a null-terminated string with ipv6 or ipv4 CIDR.
      
      For example:
      localhost
      127.0.0.1
      mail.ru/24
      ::1
      ::1/128
      3ffe:1::
      3ffe:1::/56
      
      Returns -1 if the filter couldn't be assigned(format error or ipv6 filter with ZMQ_IPV4ONLY set)
      
      P.S.
      The only thing that worries me is that I had to re-enable 'default assign by reference constructor/operator'
      for 'tcp_address_t' (and for my inherited class tcp_address_mask_t) to store it in std::vector in 'options_t'...
      acba6bdd
  9. 06 Apr, 2012 1 commit
  10. 05 Apr, 2012 1 commit
  11. 20 Mar, 2012 2 commits
  12. 14 Feb, 2012 1 commit
  13. 08 Feb, 2012 1 commit
  14. 04 Nov, 2011 1 commit
  15. 02 Nov, 2011 1 commit
  16. 01 Nov, 2011 1 commit
  17. 31 Oct, 2011 1 commit
  18. 06 Oct, 2011 1 commit
  19. 08 Aug, 2011 1 commit
  20. 15 Jul, 2011 2 commits
  21. 11 Jul, 2011 1 commit
  22. 23 Jun, 2011 1 commit
    • Martin Sustrik's avatar
      Outstanding requests dropped when requester dies (issue 190) · d1373792
      Martin Sustrik authored
      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: 's avatarMartin Sustrik <sustrik@250bpm.com>
      d1373792
  23. 17 Jun, 2011 1 commit
  24. 12 Jun, 2011 1 commit
  25. 22 May, 2011 1 commit
    • Martin Sustrik's avatar
      Introduces bi-directional pipes · acf0b0e5
      Martin Sustrik authored
      So far, there was a pair of unidirectional pipes between a socket
      and a session (or an inproc peer). This resulted in complex
      problems with half-closed states and tracking which inpipe
      corresponds to which outpipe.
      
      This patch doesn't add any functionality in itself, but is
      essential for further work on features like subscription
      forwarding.
      Signed-off-by: 's avatarMartin Sustrik <sustrik@250bpm.com>
      acf0b0e5
  26. 15 May, 2011 1 commit
  27. 21 Apr, 2011 1 commit
  28. 24 Mar, 2011 6 commits
  29. 23 Mar, 2011 1 commit
    • Martin Sustrik's avatar
      ZMQ_MCAST_LOOP removed · b45b68ae
      Martin Sustrik authored
      Multicast loopback is not a real multicast, rather a kernel-space
      simulation. Moreover, it tends to be rather unreliable and lossy.
      Removing the option will force users to use transports better
      suited for the job, such as inproc or ipc.
      Signed-off-by: 's avatarMartin Sustrik <sustrik@250bpm.com>
      b45b68ae
  30. 02 Mar, 2011 2 commits
  31. 26 Jan, 2011 1 commit
  32. 09 Dec, 2010 1 commit
    • Bob Beaty's avatar
      Added Recovery Interval in Milliseconds · fcfad568
      Bob Beaty authored
      For very high-speed message systems, the memory used for recovery can get to
      be very large. The corrent limitation on that reduction is the ZMQ_RECOVERY_IVL
      of 1 sec. I added in an additional option ZMQ_RECOVERY_IVL_MSEC, which is the
      Recovery Interval in milliseconds. If used, this will override the previous
      one, and allow you to set a sub-second recovery interval. If not set, the
      default behavior is to use ZMQ_RECOVERY_IVL.
      Signed-off-by: 's avatarBob Beaty <rbeaty@peak6.com>
      fcfad568