|
|
|
@ -732,12 +732,9 @@ static void process_errors(grpc_tcp* tcp) { |
|
|
|
|
/* There was no control message found. It was probably spurious. */ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
auto cmsg = CMSG_FIRSTHDR(&msg); |
|
|
|
|
if (cmsg == nullptr || cmsg->cmsg_len == 0) { |
|
|
|
|
/* No control message found. */ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
do { |
|
|
|
|
bool seen = false; |
|
|
|
|
for (auto cmsg = CMSG_FIRSTHDR(&msg); cmsg && cmsg->cmsg_len; |
|
|
|
|
cmsg = CMSG_NXTHDR(&msg, cmsg)) { |
|
|
|
|
if (cmsg->cmsg_level != SOL_SOCKET || |
|
|
|
|
cmsg->cmsg_type != SCM_TIMESTAMPING) { |
|
|
|
|
/* Got a control message that is not a timestamp. Don't know how to
|
|
|
|
@ -749,8 +746,12 @@ static void process_errors(grpc_tcp* tcp) { |
|
|
|
|
} |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
cmsg = CMSG_NXTHDR(&msg, process_timestamp(tcp, &msg, cmsg)); |
|
|
|
|
} while (cmsg && cmsg->cmsg_len); |
|
|
|
|
cmsg = process_timestamp(tcp, &msg, cmsg); |
|
|
|
|
seen = true; |
|
|
|
|
} |
|
|
|
|
if (!seen) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|