2004-04-01  Jakub Jelinek  <jakub@redhat.com>

	* nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r): If protocol
	is NULL, instead of trying yp_match (name/tcp), yp_match (name/udp),
	yp_all, try yp_match (name), yp_all.

2004-04-01  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Add handling for
	ignored entries.  Ignore AT_IGNOREPPC.
This commit is contained in:
Ulrich Drepper 2004-04-01 09:03:29 +00:00
parent bf244ee81f
commit dd047aa514
2 changed files with 58 additions and 51 deletions

View File

@ -1,3 +1,14 @@
2004-04-01 Jakub Jelinek <jakub@redhat.com>
* nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r): If protocol
is NULL, instead of trying yp_match (name/tcp), yp_match (name/udp),
yp_all, try yp_match (name), yp_all.
2004-04-01 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Add handling for
ignored entries. Ignore AT_IGNOREPPC.
2004-03-31 Andreas Jaeger <aj@suse.de> 2004-03-31 Andreas Jaeger <aj@suse.de>
* libio/fileops.c (new_do_write): Return _IO_size_t to make 64-bit * libio/fileops.c (new_do_write): Return _IO_size_t to make 64-bit

View File

@ -279,21 +279,19 @@ _nss_nis_getservbyname_r (const char *name, const char *protocol,
return NSS_STATUS_UNAVAIL; return NSS_STATUS_UNAVAIL;
/* If the protocol is given, we could try if our NIS server knows /* If the protocol is given, we could try if our NIS server knows
about services.byservicename map. If yes, we only need one query. about services.byservicename map. If yes, we only need one query. */
If the protocol is not given, try first name/tcp, then name/udp char key[strlen (name) + (protocol ? strlen (protocol) : 0) + 2];
and then fallback to sequential scanning of services.byname map. */
const char *proto = protocol != NULL ? protocol : "tcp";
do
{
char key[strlen (name) + strlen (proto) + 2];
char *cp, *result; char *cp, *result;
size_t keylen, len; size_t keylen, len;
int int_len; int int_len;
/* key is: "name/proto" */ /* key is: "name/proto" */
cp = stpcpy (key, name); cp = stpcpy (key, name);
if (protocol)
{
*cp++ = '/'; *cp++ = '/';
stpcpy (cp, proto); strcpy (cp, protocol);
}
keylen = strlen (key); keylen = strlen (key);
status = yperr2nss (yp_match (domain, "services.byservicename", key, status = yperr2nss (yp_match (domain, "services.byservicename", key,
keylen, &result, &int_len)); keylen, &result, &int_len));
@ -331,8 +329,6 @@ _nss_nis_getservbyname_r (const char *name, const char *protocol,
else else
return NSS_STATUS_SUCCESS; return NSS_STATUS_SUCCESS;
} }
}
while (protocol == NULL && (proto[0] == 't' ? (proto = "udp") : NULL));
struct ypall_callback ypcb; struct ypall_callback ypcb;
struct search_t req; struct search_t req;