55 lines
1.5 KiB
Diff
55 lines
1.5 KiB
Diff
|
commit 2b54cbce2c363ab6ae89d10657d7465858116d7a
|
||
|
Author: Florian Weimer <fweimer@redhat.com>
|
||
|
Date: Thu Apr 28 17:41:49 2016 +0200
|
||
|
|
||
|
getnameinfo: Do not preserve errno
|
||
|
|
||
|
POSIX does not require it, the companion getaddrinfo implementation
|
||
|
does not do it, and this behavior is not documented in the manual
|
||
|
page, either.
|
||
|
|
||
|
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
|
||
|
index 40f67f0..9b1847b 100644
|
||
|
--- a/inet/getnameinfo.c
|
||
|
+++ b/inet/getnameinfo.c
|
||
|
@@ -175,7 +175,6 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
|
||
|
socklen_t hostlen, char *serv, socklen_t servlen,
|
||
|
int flags)
|
||
|
{
|
||
|
- int serrno = errno;
|
||
|
int herrno;
|
||
|
struct hostent th;
|
||
|
int ok = 0;
|
||
|
@@ -326,10 +325,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
|
||
|
if (!ok)
|
||
|
{
|
||
|
if (flags & NI_NAMEREQD)
|
||
|
- {
|
||
|
- __set_errno (serrno);
|
||
|
- return EAI_NONAME;
|
||
|
- }
|
||
|
+ return EAI_NONAME;
|
||
|
else
|
||
|
{
|
||
|
const char *c;
|
||
|
@@ -406,10 +402,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
|
||
|
};
|
||
|
|
||
|
if (flags & NI_NAMEREQD)
|
||
|
- {
|
||
|
- __set_errno (serrno);
|
||
|
- return EAI_NONAME;
|
||
|
- }
|
||
|
+ return EAI_NONAME;
|
||
|
|
||
|
strncpy (host, "localhost", hostlen);
|
||
|
break;
|
||
|
@@ -463,7 +456,6 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
|
||
|
host[hostlen-1] = 0;
|
||
|
if (serv && (servlen > 0))
|
||
|
serv[servlen-1] = 0;
|
||
|
- errno = serrno;
|
||
|
return 0;
|
||
|
}
|
||
|
libc_hidden_def (getnameinfo)
|