在Glibc / Linux上,导致getnameinfo
返回EAI_AGAIN的原因是什么?
阅读source似乎EAI_AGAIN只有在内部函数__gethostbyaddr_r
也返回错误代码TRY_AGAIN
时才会发生。但是,我无法找到该函数的定义,因此很难知道是什么原因造成的。
在我的测试中,我发现除非在NI_NAMEREQD
调用上设置getnameinfo
标志,否则不会发生错误,并且一旦设置了该标志,我只能导致返回码{{ 1}}(-2
)。
此错误EAI_NONAME
在以下情况下发生:
EAI_NONAME
响应代码。我预计其中一个条件会触发SERVFAIL
响应,但没有运气。
我问这个是为了在这种情况发生时测试一个程序的行为,还有我们的好奇心,看到它偶尔发生在野外"但是一直无法重现它
测试环境是Linux 4.8.0,Glibc 2.24。