Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Remove redundant GAIH_OKIFUNSPEC and GAIH_EAI.
Only gaih_inet() and gaih_inet_serv() use a special bit flag denoted
by the GAIH_OKIFUNSPEC macro. Only the return value of
gaih_inet_serv() is actively checked for the bit flag which is
redundant because it just copies the nonzero property of the value
otherwise returned. The return value of gaih_inet() is only checked
for being zero and then the bit flag is filtered out. As the bit flag
is set only for otherwise nonzero return values, it doesn't affect the
zero comparison. GAIH_EAI just an alias to ~GAIH_OKIFUNSPEC.
  • Loading branch information
Pavel Simerda authored and Siddhesh Poyarekar committed Dec 2, 2013
1 parent f524d6a commit 639a0ef
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 17 deletions.
6 changes: 6 additions & 0 deletions ChangeLog
@@ -1,5 +1,11 @@
2013-12-02 Pavel Simerda <psimerda@redhat.com>

* sysdeps/posix/getaddrinfo.c (GAIH_OKIFUNSPEC): Remove macro.
(GAIH_EAI): Likewise.
(gaih_inet_serv): Don't use GAIH_OKIFUNSPEC.
(gaih_inet): Likewise.
(getaddrinfo): Don't use GAIH_EAI.

* sysdeps/posix/getaddrinfo.c (UNIX_PATH_MAX): Remove macro.
(struct gaih): Remove definition.

Expand Down
31 changes: 14 additions & 17 deletions sysdeps/posix/getaddrinfo.c
Expand Up @@ -71,9 +71,6 @@ extern int __idna_to_unicode_lzlz (const char *input, char **output,
# include <libidn/idna.h>
#endif

#define GAIH_OKIFUNSPEC 0x0100
#define GAIH_EAI ~(GAIH_OKIFUNSPEC)

struct gaih_service
{
const char *name;
Expand Down Expand Up @@ -157,7 +154,7 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
if (r == ERANGE)
tmpbuflen *= 2;
else
return GAIH_OKIFUNSPEC | -EAI_SERVICE;
return -EAI_SERVICE;
}
}
while (r);
Expand Down Expand Up @@ -299,17 +296,17 @@ gaih_inet (const char *name, const struct gaih_service *service,
if (! tp->name[0])
{
if (req->ai_socktype)
return GAIH_OKIFUNSPEC | -EAI_SOCKTYPE;
return -EAI_SOCKTYPE;
else
return GAIH_OKIFUNSPEC | -EAI_SERVICE;
return -EAI_SERVICE;
}
}

int port = 0;
if (service != NULL)
{
if ((tp->protoflag & GAI_PROTO_NOSERVICE) != 0)
return GAIH_OKIFUNSPEC | -EAI_SERVICE;
return -EAI_SERVICE;

if (service->num < 0)
{
Expand Down Expand Up @@ -345,7 +342,7 @@ gaih_inet (const char *name, const struct gaih_service *service,

if ((rc = gaih_inet_serv (service->name, tp, req, newp)))
{
if (rc & GAIH_OKIFUNSPEC)
if (rc)
continue;
return rc;
}
Expand All @@ -354,7 +351,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
pst = &(newp->next);
}
if (st == (struct gaih_servtuple *) &nullserv)
return GAIH_OKIFUNSPEC | -EAI_SERVICE;
return -EAI_SERVICE;
}
}
else
Expand Down Expand Up @@ -546,7 +543,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
10);
if (*end != '\0')
{
result = GAIH_OKIFUNSPEC | -EAI_NONAME;
result = -EAI_NONAME;
goto free_and_return;
}
}
Expand Down Expand Up @@ -667,7 +664,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
else
/* We made requests but they turned out no data.
The name is known, though. */
result = GAIH_OKIFUNSPEC | -EAI_NODATA;
result = -EAI_NODATA;

goto free_and_return;
}
Expand Down Expand Up @@ -773,7 +770,7 @@ gaih_inet (const char *name, const struct gaih_service *service,

if (at->family == AF_UNSPEC)
{
result = GAIH_OKIFUNSPEC | -EAI_NONAME;
result = -EAI_NONAME;
goto free_and_return;
}

Expand Down Expand Up @@ -1064,7 +1061,7 @@ gaih_inet (const char *name, const struct gaih_service *service,

if (h_errno == NETDB_INTERNAL)
{
result = GAIH_OKIFUNSPEC | -EAI_SYSTEM;
result = -EAI_SYSTEM;
goto free_and_return;
}

Expand All @@ -1076,7 +1073,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
else
/* We made requests but they turned out no data. The name
is known, though. */
result = GAIH_OKIFUNSPEC | -EAI_NODATA;
result = -EAI_NODATA;

goto free_and_return;
}
Expand All @@ -1085,7 +1082,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
process_list:
if (at->family == AF_UNSPEC)
{
result = GAIH_OKIFUNSPEC | -EAI_NONAME;
result = -EAI_NONAME;
goto free_and_return;
}
}
Expand Down Expand Up @@ -2412,7 +2409,7 @@ getaddrinfo (const char *name, const char *service,
freeaddrinfo (p);
__free_in6ai (in6ai);

return -(last_i & GAIH_EAI);
return -last_i;
}
while (*end)
{
Expand Down Expand Up @@ -2645,7 +2642,7 @@ getaddrinfo (const char *name, const char *service,
return 0;
}

return last_i ? -(last_i & GAIH_EAI) : EAI_NONAME;
return last_i ? -last_i : EAI_NONAME;
}
libc_hidden_def (getaddrinfo)

Expand Down

0 comments on commit 639a0ef

Please sign in to comment.