diff options
Diffstat (limited to 'lib/libc/net/getservbyname.c')
-rw-r--r-- | lib/libc/net/getservbyname.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/libc/net/getservbyname.c b/lib/libc/net/getservbyname.c index 77bf813..124f5ac 100644 --- a/lib/libc/net/getservbyname.c +++ b/lib/libc/net/getservbyname.c @@ -47,8 +47,16 @@ getservbyname(name, proto) register struct servent *p; register char **cp; +#ifdef YP + extern char *___getservbyname_yp; + extern char *___getservbyproto_yp; + + ___getservbyname_yp = (char *)name; + ___getservbyproto_yp = (char *)proto; +#endif + setservent(_serv_stayopen); - while (p = getservent()) { + while ( (p = getservent()) ) { if (strcmp(name, p->s_name) == 0) goto gotname; for (cp = p->s_aliases; *cp; cp++) @@ -61,5 +69,11 @@ gotname: } if (!_serv_stayopen) endservent(); + +#ifdef YP + ___getservbyname_yp = NULL; + ___getservbyproto_yp = NULL; +#endif + return (p); } |