Can I please get a review of this change which proposes to enhance the 
implementation of `ServerSocket` and `ServerSocketChannel` to allow for 
`backlog` values to be greater than 200 on Windows? This addresses 
https://bugs.openjdk.org/browse/JDK-8330940.

As noted in that enhancement request, right now on Windows, if the backlog is 
specified to be more than 200, then Windows caps it to a platform internal 
`SOMAXCONN`. As noted in the documentation here 
https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-listen 
applications can increase that limit by using the `SOMAXCONN_HINT` macro. That 
macro then adjusts the value to be between 200 and 65535, thus allowing for a 
higher backlog of connections.

The commit in this PR uses this macro when the specified backlog is 200 or 
more. A new jtreg test has been introduced to verify this change. This test and 
other existing tests in tier1, tier2 and tier3 continue to pass.

A similar restriction on the backlog value applies in Linux too 
https://github.com/torvalds/linux/blob/master/Documentation/networking/ip-sysctl.rst#tcp-variables.
 But from what I can see, unlike Windows, it cannot be adjusted when calling 
`listen()`.

-------------

Commit messages:
 - fix typo in code comment in test
 - 8330940: Impossible to create a socket backlog greater than 200 on Windows 8+

Changes: https://git.openjdk.org/jdk/pull/25819/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25819&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8330940
  Stats: 107 lines in 2 files changed: 107 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/25819.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25819/head:pull/25819

PR: https://git.openjdk.org/jdk/pull/25819

Reply via email to