blob: f523a01cac60ed4db02118f595879e891f02eec3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <string.h>
#include <netdb.h>
extern int getservbyname_r(const char* name,const char* proto,
struct servent *res, char *buf, size_t buflen,
struct servent **res_sig) {
while (!getservent_r(res,buf,buflen,res_sig)) {
int i;
if (proto && strcmp(res->s_proto,proto)) continue;
if (!strcmp(res->s_name,name)) goto found;
for (i=0; res->s_aliases[i]; ++i)
if (!strcmp(res->s_aliases[i],name)) goto found;
}
*res_sig=0;
found:
endservent();
return *res_sig?0:-1;
}
|