build: replace send/recv with swrite/sread where missing

Also:
- checksrc: ban `send` and `recv`, as documented in `CODE_STYLE.md`.

Follow-up to 9a2663322c #17572
Ref: a585cc35e5 #20097
Ref: #20441

Closes #20459
This commit is contained in:
Viktor Szakats 2026-01-28 12:57:23 +01:00
parent feb52be197
commit 483f4291fb
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
7 changed files with 14 additions and 13 deletions

View file

@ -1327,7 +1327,7 @@ static void reset_socket_fdwrite(curl_socket_t s)
int t;
int l = (int)sizeof(t);
if(!getsockopt(s, SOL_SOCKET, SO_TYPE, (char *)&t, &l) && t == SOCK_STREAM)
send(s, NULL, 0, 0);
swrite(s, NULL, 0);
}
#endif

View file

@ -196,8 +196,7 @@ static CURLcode do_sendmsg(struct Curl_cfilter *cf,
*psent = 0;
while((rv = send(qctx->sockfd, (const char *)pkt,
(SEND_TYPE_ARG3)pktlen, 0)) == -1 &&
while((rv = swrite(qctx->sockfd, pkt, pktlen)) == -1 &&
SOCKERRNO == SOCKEINTR)
;

View file

@ -101,7 +101,9 @@ my %banfunc = (
"open" => 1,
"printf" => 1,
"realloc" => 1,
"recv" => 1,
"rename" => 1,
"send" => 1,
"snprintf" => 1,
"socket" => 1,
"socketpair" => 1,

View file

@ -114,7 +114,7 @@ size_t tool_read_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
execute */
if(per->uploadfile && !strcmp(per->uploadfile, ".") && per->infd > 0) {
#ifndef CURL_WINDOWS_UWP
rc = recv(per->infd, buffer, curlx_uztosi(sz * nmemb), 0);
rc = sread(per->infd, buffer, curlx_uztosi(sz * nmemb));
if(rc < 0) {
if(SOCKERRNO == SOCKEWOULDBLOCK) {
errno = 0;

View file

@ -737,7 +737,7 @@ static DWORD WINAPI win_stdin_thread_func(void *thread_data)
break;
if(n == 0)
break;
nwritten = send(socket_w, buffer, n, 0);
nwritten = swrite(socket_w, buffer, n);
if(nwritten == -1)
break;
if((DWORD)nwritten != n)

View file

@ -703,7 +703,7 @@ static int select_ws(int nfds, fd_set *readfds, fd_set *writefds,
wsaevent = WSACreateEvent();
if(wsaevent != WSA_INVALID_EVENT) {
if(wsaevents.lNetworkEvents & FD_WRITE) {
send(wsasock, NULL, 0, 0); /* reset FD_WRITE */
swrite(wsasock, NULL, 0); /* reset FD_WRITE */
}
error = WSAEventSelect(wsasock, wsaevent, wsaevents.lNetworkEvents);
if(error != SOCKET_ERROR) {

View file

@ -306,7 +306,7 @@ static curl_socket_t sockit(curl_socket_t fd)
socksd_getconfig();
rc = recv(fd, (char *)buffer, sizeof(buffer), 0);
rc = sread(fd, buffer, sizeof(buffer));
if(rc <= 0) {
logmsg("SOCKS identifier message missing, recv returned %zd", rc);
return CURL_SOCKET_BAD;
@ -353,7 +353,7 @@ static curl_socket_t sockit(curl_socket_t fd)
loghex(response, rc);
/* expect the request or auth */
rc = recv(fd, (char *)buffer, sizeof(buffer), 0);
rc = sread(fd, buffer, sizeof(buffer));
if(rc <= 0) {
logmsg("SOCKS5 request or auth message missing, recv returned %zd", rc);
return CURL_SOCKET_BAD;
@ -412,7 +412,7 @@ static curl_socket_t sockit(curl_socket_t fd)
return CURL_SOCKET_BAD;
/* expect the request */
rc = recv(fd, (char *)buffer, sizeof(buffer), 0);
rc = sread(fd, buffer, sizeof(buffer));
if(rc <= 0) {
logmsg("SOCKS5 request message missing, recv returned %zd", rc);
return CURL_SOCKET_BAD;
@ -581,9 +581,9 @@ static int tunnel(struct perclient *cp, fd_set *fds)
char buffer[512];
if(FD_ISSET(cp->clientfd, fds)) {
/* read from client, send to remote */
nread = recv(cp->clientfd, buffer, sizeof(buffer), 0);
nread = sread(cp->clientfd, buffer, sizeof(buffer));
if(nread > 0) {
nwrite = send(cp->remotefd, (char *)buffer, (SEND_TYPE_ARG3)nread, 0);
nwrite = swrite(cp->remotefd, buffer, nread);
if(nwrite != nread)
return 1;
cp->fromclient += nwrite;
@ -593,9 +593,9 @@ static int tunnel(struct perclient *cp, fd_set *fds)
}
if(FD_ISSET(cp->remotefd, fds)) {
/* read from remote, send to client */
nread = recv(cp->remotefd, buffer, sizeof(buffer), 0);
nread = sread(cp->remotefd, buffer, sizeof(buffer));
if(nread > 0) {
nwrite = send(cp->clientfd, (char *)buffer, (SEND_TYPE_ARG3)nread, 0);
nwrite = swrite(cp->clientfd, buffer, nread);
if(nwrite != nread)
return 1;
cp->fromremote += nwrite;