CONTRIB: tcploop: use the trash instead of NULL for recv()

NULL is Linux-centric and we're not focused on performance here but
portability and reproducibility. Don't use NULL and use the trash
instead. It may lead to multiple recv() calls for large blocks but
as a benefit it will be possible to see the contents with strace.
This commit is contained in:
Willy Tarreau 2017-03-14 14:50:52 +01:00
parent 24d41b9b4d
commit a84a2dba94
1 changed files with 5 additions and 1 deletions

View File

@ -444,6 +444,7 @@ int tcp_recv(int sock, const char *arg)
{
int count = -1; // stop at first read
int ret;
int max;
if (arg[1]) {
count = atoi(arg + 1);
@ -454,7 +455,10 @@ int tcp_recv(int sock, const char *arg)
}
while (1) {
ret = recv(sock, NULL, (count > 0) ? count : INT_MAX, MSG_NOSIGNAL | MSG_TRUNC);
max = (count > 0) ? count : INT_MAX;
if (max > sizeof(trash))
max = sizeof(trash);
ret = recv(sock, trash, max, MSG_NOSIGNAL | MSG_TRUNC);
if (ret < 0) {
if (errno == EINTR)
continue;