* ntp_keyword.h
*
* NOTE: edit this file with caution, it is generated by keyword-gen.c
- * Generated 2020-02-13 08:56:28 UTC diff_ignore_line
+ * Generated 2022-12-29 07:50:55 UTC diff_ignore_line
*
*/
#include "ntp_scanner.h"
"QueueSocketRecv: cannot schedule socket receive";
WSABUF wsabuf;
+ DWORD err;
int rc;
lpo->onIoDone = OnSocketRecv;
wsabuf.buf = (char *)buff->recv_buffer;
wsabuf.len = sizeof(buff->recv_buffer);
- rc = WSARecvFrom(lpo->io.sfd, &wsabuf, 1, NULL, &lpo->ioFlags,
- &buff->recv_srcadr.sa, &buff->recv_srcadr_len,
- &lpo->ol, NULL);
- return !rc || IoResultCheck((DWORD)WSAGetLastError(), lpo, msgh);
+ do {
+ rc = WSARecvFrom(lpo->io.sfd, &wsabuf, 1, NULL, &lpo->ioFlags,
+ &buff->recv_srcadr.sa, &buff->recv_srcadr_len,
+ &lpo->ol, NULL);
+ if (!rc) {
+ return TRUE;
+ }
+ err = (DWORD)WSAGetLastError();
+ } while (WSAENETRESET == err); /* [Bug 3784] ICMP TTL exceeded */
+
+ return IoResultCheck(err, lpo, msgh);
}
/* ----------------------------------------------------------------- */