]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
core: Disable TCP_NOPUSH optimization on OSX. BZ 66019.
authorYann Ylavic <ylavic@apache.org>
Thu, 21 Apr 2022 10:02:29 +0000 (10:02 +0000)
committerYann Ylavic <ylavic@apache.org>
Thu, 21 Apr 2022 10:02:29 +0000 (10:02 +0000)
commit567a50205fc4556bd5f79eb9f087249b9e3ee221
tree6d41f5a211868d67f97767a7737434b5a21bc080
parent4d1ca7bd74ba5c25666245b93c932a2b34aafc73
core: Disable TCP_NOPUSH optimization on OSX. BZ 66019.

OSX supports TCP_NOPUSH but does not release the data retained (in TCP stack)
when the option is unset. It seems that unsetting it before the last write
does not help either so just disable the optimization for OSX in the core
output filter to avoid uncontrollable transmission delays.

* server/core_filters.c():
  Add the sock_nopush() helper that does nothing on OSX and platforms not
  supporting TCP_NOPUSH or TCP_CORK.

* server/core_filters.c(send_brigade_nonblocking):
  Use sock_nopush() instead of apr_socket_opt_set() for APR_TCP_NOPUSH option.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900100 13f79535-47bb-0310-9956-ffa450edef68
changes-entries/osx_nopush.txt [new file with mode: 0644]
server/core_filters.c