1 /* 2 * Copyright (c) 1983 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 */ 6 7 #ifndef lint 8 static char sccsid[] = "@(#)getservbyname.c 5.1 (Berkeley) 05/30/85"; 9 #endif not lint 10 11 #include <netdb.h> 12 13 struct servent * 14 getservbyname(name, proto) 15 char *name, *proto; 16 { 17 register struct servent *p; 18 register char **cp; 19 20 setservent(0); 21 while (p = getservent()) { 22 if (strcmp(name, p->s_name) == 0) 23 goto gotname; 24 for (cp = p->s_aliases; *cp; cp++) 25 if (strcmp(name, *cp) == 0) 26 goto gotname; 27 continue; 28 gotname: 29 if (proto == 0 || strcmp(p->s_proto, proto) == 0) 30 break; 31 } 32 endservent(); 33 return (p); 34 } 35