|
|
1.1 ! root 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: #if defined(LIBC_SCCS) && !defined(lint) ! 8: static char sccsid[] = "@(#)getservbyname.c 5.3 (Berkeley) 5/19/86"; ! 9: #endif LIBC_SCCS and not lint ! 10: ! 11: #include <netdb.h> ! 12: ! 13: extern int _serv_stayopen; ! 14: ! 15: struct servent * ! 16: getservbyname(name, proto) ! 17: char *name, *proto; ! 18: { ! 19: register struct servent *p; ! 20: register char **cp; ! 21: ! 22: setservent(_serv_stayopen); ! 23: while (p = getservent()) { ! 24: if (strcmp(name, p->s_name) == 0) ! 25: goto gotname; ! 26: for (cp = p->s_aliases; *cp; cp++) ! 27: if (strcmp(name, *cp) == 0) ! 28: goto gotname; ! 29: continue; ! 30: gotname: ! 31: if (proto == 0 || strcmp(p->s_proto, proto) == 0) ! 32: break; ! 33: } ! 34: if (!_serv_stayopen) ! 35: endservent(); ! 36: return (p); ! 37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.