Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Sep 2006 18:02:46 +0000 (UTC)
From:      Andre Oppermann <andre@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/netinet tcp_output.c
Message-ID:  <200609281802.k8SI2k9X027575@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
andre       2006-09-28 18:02:46 UTC

  FreeBSD src repository

  Modified files:
    sys/netinet          tcp_output.c 
  Log:
  When tcp_output() receives an error upon sending a packet it reverts parts
  of its internal state to ignore the failed send and try again a bit later.
  If the error is EPERM the packet got blocked by the local firewall and the
  revert may cause the session to get stuck and retry indefinitely.  This way
  we treat it like a packet loss and let the retransmit timer and timeouts
  do their work over time.
  
  The correct behavior is to drop a connection that gets an EPERM error.
  However this _may_ introduce some POLA problems and a two commit approach
  was chosen.
  
  Discussed with: glebius
  PR:             kern/25986
  PR:             kern/102653
  
  Revision  Changes    Path
  1.120     +15 -2     src/sys/netinet/tcp_output.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609281802.k8SI2k9X027575>