1. 27 Jan, 2020 1 commit
  2. 09 Jan, 2020 1 commit
  3. 23 Dec, 2019 1 commit
  4. 08 Dec, 2019 1 commit
  5. 06 Dec, 2019 3 commits
  6. 29 Oct, 2019 1 commit
  7. 25 Aug, 2019 1 commit
  8. 22 Aug, 2019 1 commit
  9. 11 Aug, 2019 1 commit
  10. 06 Aug, 2019 1 commit
  11. 27 Mar, 2019 1 commit
  12. 07 Feb, 2019 1 commit
  13. 05 Feb, 2019 1 commit
  14. 04 Feb, 2019 1 commit
  15. 14 Dec, 2018 1 commit
  16. 10 Aug, 2018 1 commit
  17. 30 May, 2018 1 commit
  18. 26 May, 2018 2 commits
  19. 23 May, 2018 3 commits
  20. 18 May, 2018 1 commit
  21. 16 May, 2018 1 commit
  22. 10 Mar, 2018 2 commits
    • Luca Boccassi's avatar
      Problem: formatting issues in the CI · 8d544ef1
      Luca Boccassi authored
      Solution: commit clang-format-diff
      8d544ef1
    • Manuel Segura's avatar
      Pull request to merge porting to WindRiver VxWorks 6.x (#2966) · 4726f726
      Manuel Segura authored
      * Problem: Still need to port over more files to VxWorks 6.x
      
      Solution: Port more files to VxWorks 6.x
      
      * Problem: Need to port over remaining files to VxWorks 6.x. Also remove POSIX thread dependency for VxWorks (because of priority inversion problem in POSIX mutexes with VxWorks 6.x processes)
      
      Solution: Port over remaining files to VxWorks 6.x. Also removed POSIX thread dependency for VxWorks
      
      * Problem: Needed to modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x.
      
      Solution:  Modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x
      4726f726
  23. 05 Mar, 2018 1 commit
  24. 13 Feb, 2018 1 commit
    • Simon Giesecke's avatar
      Problem: network initialization and shutdown functions not available for · e8e24030
      Simon Giesecke authored
      reuse
      
      Solution: extract into functions defined in ip.hpp
      
      Problem: signaler_t::make_fdpair not reusable
      
      Solution: move make_fdpair to ip.hpp
      
      Problem: epoll worker with no fds cannot be stopped
      
      Solution: use interruptible epoll_pwait call
      
      Problem: insufficient unit tests for poller
      
      Solution: add test cases
      e8e24030
  25. 02 Feb, 2018 1 commit
  26. 19 Aug, 2017 1 commit
  27. 31 Jul, 2017 1 commit
    • Brian Russell's avatar
      Add socket option BINDTODEVICE · b963542e
      Brian Russell authored
      Linux now supports Virtual Routing and Forwarding (VRF) as per:
      
      https://www.kernel.org/doc/Documentation/networking/vrf.txt
      
      In order for an application to bind or connect to a socket with an
      address in a VRF, they need to first bind the socket to the VRF device:
      
          setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)+1);
      
      Note "dev" is the VRF device, eg. VRF "blue", rather than an interface
      enslaved to the VRF.
      
      Add a new socket option, ZMQ_BINDTODEVICE, to bind a socket to a device.
      In general, if a socket is bound to a device, eg. an interface, only
      packets received from that particular device are processed by the socket.
      
      If device is a VRF device, then subsequent binds/connects to that socket
      use addresses in the VRF routing table.
      b963542e
  28. 22 Jul, 2017 1 commit
  29. 04 Jan, 2017 1 commit
    • Luca Boccassi's avatar
      Problem: peer can close connection before SO_NOSIGPIPE is set · 31a3a068
      Luca Boccassi authored
      Solution: setsockopt returns EINVAL if the connection was closed by
      the peer after the accept returned a valid socket. This is a valid
      network error and should not cause an assert.
      To handle this we have to extract the setsockopt from the stream
      engine, as there's no clean way to return an error from the
      constructor. Instead, try to set this option before creating the
      engine in the callers, and return immediately as if the accept
      had failed to avoid churn. Do the same for the connect calls by
      setting the option in open_socket, so that the option for that
      case is set even before connecting, so there's no possible race
      condition.
      Since this has to be done in 4 places (tcp/ipc listener, socks
      connecter and open_socket) add an utility function in ip.cpp.
      Fixes #1442
      31a3a068
  30. 01 Jan, 2017 1 commit
  31. 30 Nov, 2016 1 commit
  32. 14 Nov, 2016 2 commits
    • Luca Boccassi's avatar
      Problem: IPV6_TCLASS setsockopt fails on IPv4 socket · 90f091ab
      Luca Boccassi authored
      Solution: if setsockopt errors out and errno is set to ENOPROTOOPT
      (or EINVAL on OSX) ignore it and carry on.
      90f091ab
    • Saif Hasan's avatar
      Make ZMQ_TOS work with IPv6 sockets · fc8007e8
      Saif Hasan authored
      Summary:
      To set `Type Of Service` for IP layer packets ZMQ provides `ZMQ_TOS` socket
      option. However this only works for v4 sockets. Considering things are moving to
      IPv6 heavily (especially within enterprise networks), ZMQ should support setting
      `traffic class` for v6 based on `ZMQ_TOS`.
      
      There is a subtle difference between v4 and v6 in terms of the positioning of
      field but TOS has same meaning in both v4 and v6. Linux provides following APIs
      for v4/v6 to set TOS field value.
      ```
      // For v4
      setsockopt(fd, IPPROTO_IP, IP_TOS, tos, sizeof(tos));
      
      // For v6
      setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, tos, sizeof(tos));
      ```
      
      Test Plan:
      Make sure Cmake works fine and all tests passes.
      Imported this change to `OpenR` project and tested on our local testbed.
      Captured some packets exchanged between PUB/SUB and ROUTER/ROUTER sockets
      pairs. Verify that `TCLASS` value is set as per expectation.
      
      Tasks: #2208
      fc8007e8
  33. 17 Sep, 2016 1 commit