1. 29 Apr, 2014 1 commit
  2. 02 Apr, 2014 1 commit
  3. 06 Jan, 2014 1 commit
  4. 02 Jan, 2014 1 commit
  5. 25 Nov, 2013 1 commit
  6. 30 Jun, 2013 1 commit
  7. 17 May, 2013 1 commit
    • Pieter Hintjens's avatar
      plain_mechanism now uses options.as_server · f909b9c7
      Pieter Hintjens authored
      - we need to switch to PLAIN according to options.mechanism
      - we need to catch case when both peers are as-server (or neither is)
      - and to use username/password from options, for client
      f909b9c7
  8. 14 May, 2013 1 commit
    • Martin Hurton's avatar
      Implement ZMTP/3.0 PLAIN mechanism · 4eecda8a
      Martin Hurton authored
      This implements protocol handshake.
      We still need to design and implement 1) API changes so a user
      can set username and password, and 2) a mechanism for engine
      to authenticate users.
      4eecda8a
  9. 12 Mar, 2013 1 commit
    • Pieter Hintjens's avatar
      Removed corporate advertisements from source file headers · f0f16505
      Pieter Hintjens authored
      Copyrights had become ads for Sustrik's corporate sponsors, going against the original
      agreement to share copyrights with the community (that agreement was: one line stating
      iMatix copyright + one reference to AUTHORS file). The proliferation of corporate ads
      is also unfair to the many individual authors. I've removed ALL corporate title from
      the source files so the copyright statements can now be centralized in AUTHORS and
      source files can be properly updated on an annual basis.
      f0f16505
  10. 19 Feb, 2013 1 commit
  11. 31 Jan, 2013 1 commit
  12. 22 Jan, 2013 1 commit
  13. 21 Jan, 2013 1 commit
  14. 02 Jan, 2013 1 commit
  15. 17 Nov, 2012 1 commit
  16. 30 Sep, 2012 1 commit
  17. 21 Sep, 2012 1 commit
  18. 27 Aug, 2012 1 commit
    • Arthur O'Dwyer's avatar
      Silence all "unused parameter" warnings from Clang. · 3b984d40
      Arthur O'Dwyer authored
      Compiling without warnings is a good goal, because it makes
      new warnings (which probably indicate bugs) stand out rather
      than getting lost in the spam.
      
      My fixes fall into two categories:
      
          - Adding (void) casts of unused parameters, where their
            unusedness seems like a TODO (or in some cases a bug?).
      
          - Removing parameter names altogether, where the function
            is clearly a stub that will never use its parameters.
      
      Should be no change in behavior.
      3b984d40
  19. 26 Aug, 2012 1 commit
  20. 04 Aug, 2012 1 commit
  21. 11 Jul, 2012 1 commit
  22. 13 Jun, 2012 1 commit
  23. 12 Jun, 2012 4 commits
  24. 11 Jun, 2012 1 commit
  25. 08 Jun, 2012 1 commit
    • Hiten P's avatar
      Consolidate TCP-specific common code into their own files. · db13fbf4
      Hiten P authored
      The TCP keepalive tuning code has been moved into the newly added
      files; this also allows future TCP-specific code to be added into
      these files, without bloating the IP level code and establishes a
      known file structure for other IP-based transports.
      
      Remember: this is a no-op change, hence no API or functionality
      was changed as part of this commit.
      db13fbf4
  26. 05 Jun, 2012 1 commit
  27. 27 May, 2012 1 commit
  28. 07 May, 2012 1 commit
  29. 04 May, 2012 1 commit
  30. 21 Apr, 2012 1 commit
    • Sergey KHripchenko's avatar
      fixes for zmq_unbind() / zmq_disconnect() usage corner cases · 057fab09
      Sergey KHripchenko authored
      1. when we call zmq_bind()/zmq_connect() to create endpoint
      we send ourselfs(through launch_child()) command to process_own(endpoint)
      (and add it to own_t::owned)
      in the application thread we could call zmq_unbind() / zmq_disconnect() _BEFORE_
      we run process_own() in ZMQ thread and in this situation we will be unable to find it in
      own_t::owned. in other words own_t::owned.find(endpoint) will not be deleted but it will be deleted from
      socket_base_t::endpoints.
      
      2. when you zmq_unbind() the lisnening TCP/IPC socket was terminated only in destructor...
      so the whole ZMQ_LINGER time listening TCP/IPC socket was able to accept() new connections
      but unable to handle them.
      
      this all geting even worse since unfortunately zmq has a bug and '*_listener_t' object not terminated
      untill the socket's zmq_close().
      AT LEAST FOR PUSH SOCKETS.
      Everything is ok for SUB sockets.
      
      Easy to reproduce without my fix:
      
      zmq_socket(PUSH)
      zmq_bind(tcp);
      // connect to  it from PULL socket
      zmq_unbind(tcp);
      
      sleep(forever)
      
      // netstat -anp | grep 'tcp listening socket'
      
      With my fix you could see that after zmq_unbind(tcp) all previously connected tcp sessions
      will not be finished untill the zmq_close(socket) regardless of ZMQ_LINGER value.
      
      (*_listener_t terminates all owned session_base_t(connect=false) and they call pipe_t::terminate()
      which in turn should call session_base_t::terminated() but this never happens)
      057fab09
  31. 18 Apr, 2012 1 commit
  32. 13 Apr, 2012 1 commit
  33. 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
  34. 05 Apr, 2012 1 commit
  35. 20 Mar, 2012 1 commit
  36. 20 Feb, 2012 1 commit
  37. 18 Feb, 2012 1 commit