build: disable TCP_NODELAY for emscripten

In WebAssembly, using `TCP_NODELAY` fails with:
```
* Could not set TCP_NODELAY: Protocol not available
```

Add a new feature macro in `curl_setup.h` telling whether `TCP_NODELAY`
is known to be supported at runtime, when defined at compile-time.

Keep `TCP_NODELAY` guards at their current positions to ensure the
necessary headers (e.g. `netinet/tcp.h` and `netinet/in.h`) define it.

Reported-by: Jeroen Ooms
Fixes #17974
Closes #18155
This commit is contained in:
Viktor Szakats 2025-08-03 23:48:53 +02:00
parent 74ba04f5b2
commit 06c12cc08b
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
4 changed files with 11 additions and 6 deletions

View file

@ -1224,7 +1224,7 @@ static int test_rtspd(int argc, char *argv[])
logmsg("====> Client connect");
#ifdef TCP_NODELAY
#if defined(TCP_NODELAY) && !defined(__EMSCRIPTEN__)
/*
* Disable the Nagle algorithm to make it easier to send out a large
* response in many small segments to torture the clients more.