xref: /csrg-svn/lib/libc/net/getservbyname.c (revision 7902)
1*7902Ssam /*	getservbyname.c	4.1	82/08/25	*/
2*7902Ssam 
3*7902Ssam #include <netdb.h>
4*7902Ssam 
5*7902Ssam struct servent *
6*7902Ssam getservname(name, proto)
7*7902Ssam 	char *name, *proto;
8*7902Ssam {
9*7902Ssam 	register struct servent *p;
10*7902Ssam 	register char **cp;
11*7902Ssam 
12*7902Ssam 	setservent(0);
13*7902Ssam 	while (p = getservent()) {
14*7902Ssam 		if (strcmp(name, p->s_name) == 0)
15*7902Ssam 			goto gotname;
16*7902Ssam 		for (cp = p->s_aliases; *cp; cp++)
17*7902Ssam 			if (strcmp(name, *cp) == 0)
18*7902Ssam 				goto gotname;
19*7902Ssam 		continue;
20*7902Ssam gotname:
21*7902Ssam 		if (proto == 0 || strcmp(p->s_proto, proto) == 0)
22*7902Ssam 			break;
23*7902Ssam 	}
24*7902Ssam 	endservent();
25*7902Ssam 	return (p);
26*7902Ssam }
27