lib: make CURLX_SET_BINMODE() and use it

Use it from libtests' `first.c` and thus also from units, and tunits.

Also:
- cmake: drop stray `curltool` lib dependency for units.
- units: stop depending on `src` headers.
- tests/server: drop depending on `src` headers.
  (the remaining one listed in the comments, `tool_xattr.h`, was not
  actually used from servers.)
- tests/server: drop duplicate curlx headers.
  (Except `warnless.h`, which is tricky on Windows.)

Closes #17672
This commit is contained in:
Viktor Szakats 2025-06-19 14:05:25 +02:00
parent 35d0c047ce
commit 916f241f2f
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
18 changed files with 29 additions and 44 deletions

View file

@ -56,7 +56,6 @@
#include <curlx.h>
#include "tool_binmode.h"
#include "tool_cfgable.h"
#include "tool_cb_dbg.h"
#include "tool_cb_hdr.h"
@ -869,7 +868,7 @@ static CURLcode etag_store(struct GlobalConfig *global,
}
else {
/* always use binary mode for protocol header output */
CURL_SET_BINMODE(etag_save->stream);
CURLX_SET_BINMODE(etag_save->stream);
}
return CURLE_OK;
}
@ -883,7 +882,7 @@ static CURLcode setup_headerfile(struct GlobalConfig *global,
if(!strcmp(config->headerfile, "%")) {
heads->stream = stderr;
/* use binary mode for protocol header output */
CURL_SET_BINMODE(heads->stream);
CURLX_SET_BINMODE(heads->stream);
}
else if(strcmp(config->headerfile, "-")) {
FILE *newfile;
@ -923,7 +922,7 @@ static CURLcode setup_headerfile(struct GlobalConfig *global,
}
else {
/* always use binary mode for protocol header output */
CURL_SET_BINMODE(heads->stream);
CURLX_SET_BINMODE(heads->stream);
}
return CURLE_OK;
}
@ -1065,7 +1064,7 @@ static void check_stdin_upload(struct GlobalConfig *global,
DEBUGASSERT(per->infdopen == FALSE);
DEBUGASSERT(per->infd == STDIN_FILENO);
CURL_SET_BINMODE(stdin);
CURLX_SET_BINMODE(stdin);
if(!strcmp(per->uploadfile, ".")) {
if(curlx_nonblock((curl_socket_t)per->infd, TRUE) < 0)
warnf(global,
@ -1345,7 +1344,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
!config->use_ascii) {
/* We get the output to stdout and we have not got the ASCII/text
flag, then set stdout to be binary */
CURL_SET_BINMODE(stdout);
CURLX_SET_BINMODE(stdout);
}
/* explicitly passed to stdout means okaying binary gunk */