1. 13 Mar, 2015 3 commits
  2. 10 Mar, 2015 4 commits
  3. 09 Mar, 2015 4 commits
  4. 04 Mar, 2015 15 commits
  5. 02 Mar, 2015 1 commit
  6. 27 Feb, 2015 1 commit
  7. 25 Feb, 2015 4 commits
  8. 24 Feb, 2015 2 commits
  9. 19 Feb, 2015 4 commits
  10. 16 Feb, 2015 1 commit
    • Saied Kazemi's avatar
      Do not call listen() when SO_REUSEADDR is off · 1b4e9058
      Saied Kazemi authored
      For an established TCP connection, the send queue is restored in two
      steps: in step (1), we retransmit the data that was sent before but not
      yet acknowledged, and in step (2), we transmit the data that was never
      sent outside before.  The TCP_REPAIR option is disabled before step (2)
      and re-enabled after step (2) (without this patch).
      
      If the amount of data to be sent in step (2) is large, the TCP_REPAIR
      flag on the socket can remain off for some time (O(milliseconds)).  If a
      listen() is called on another socket bound to the same port during this
      time window, it fails. This is because -- turning TCP_REPAIR off clears
      the SO_REUSEADDR flag on the socket.
      
      This patch adds a mutex (reuseaddr_lock) per port number, so that a
      listen() on a port number does not happen while SO_REUSEADDR for another
      socket on the same port is off.
      
      Thanks to Amey Deshpande <ameyd@google.com> for debugging.
      Signed-off-by: 's avatarSaied Kazemi <saied@google.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      1b4e9058
  11. 13 Feb, 2015 1 commit