|
@@ -98,7 +98,7 @@ static void __initbuf(void)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void setservent(int f)
|
|
+extern void attribute_hidden __setservent(int f)
|
|
{
|
|
{
|
|
LOCK;
|
|
LOCK;
|
|
if (servf == NULL)
|
|
if (servf == NULL)
|
|
@@ -108,8 +108,9 @@ void setservent(int f)
|
|
serv_stayopen |= f;
|
|
serv_stayopen |= f;
|
|
UNLOCK;
|
|
UNLOCK;
|
|
}
|
|
}
|
|
|
|
+strong_alias(__setservent,setservent)
|
|
|
|
|
|
-void endservent(void)
|
|
+extern void attribute_hidden __endservent(void)
|
|
{
|
|
{
|
|
LOCK;
|
|
LOCK;
|
|
if (servf) {
|
|
if (servf) {
|
|
@@ -119,37 +120,9 @@ void endservent(void)
|
|
serv_stayopen = 0;
|
|
serv_stayopen = 0;
|
|
UNLOCK;
|
|
UNLOCK;
|
|
}
|
|
}
|
|
|
|
+strong_alias(__endservent,endservent)
|
|
|
|
|
|
-struct servent * getservent(void)
|
|
+extern int attribute_hidden __getservent_r(struct servent * result_buf,
|
|
-{
|
|
|
|
- struct servent *result;
|
|
|
|
-
|
|
|
|
- __initbuf();
|
|
|
|
- getservent_r(&serv, servbuf, SBUFSIZE, &result);
|
|
|
|
- return result;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-struct servent *getservbyname(const char *name, const char *proto)
|
|
|
|
-{
|
|
|
|
- struct servent *result;
|
|
|
|
-
|
|
|
|
- __initbuf();
|
|
|
|
- getservbyname_r(name, proto, &serv, servbuf, SBUFSIZE, &result);
|
|
|
|
- return result;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-struct servent * getservbyport(int port, const char *proto)
|
|
|
|
-{
|
|
|
|
- struct servent *result;
|
|
|
|
-
|
|
|
|
- __initbuf();
|
|
|
|
- getservbyport_r(port, proto, &serv, servbuf, SBUFSIZE, &result);
|
|
|
|
- return result;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-int getservent_r(struct servent * result_buf,
|
|
|
|
char * buf, size_t buflen,
|
|
char * buf, size_t buflen,
|
|
struct servent ** result)
|
|
struct servent ** result)
|
|
{
|
|
{
|
|
@@ -228,8 +201,18 @@ again:
|
|
UNLOCK;
|
|
UNLOCK;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
+strong_alias(__getservent_r,getservent_r)
|
|
|
|
|
|
-int getservbyname_r(const char *name, const char *proto,
|
|
+struct servent * getservent(void)
|
|
|
|
+{
|
|
|
|
+ struct servent *result;
|
|
|
|
+
|
|
|
|
+ __initbuf();
|
|
|
|
+ __getservent_r(&serv, servbuf, SBUFSIZE, &result);
|
|
|
|
+ return result;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+extern int attribute_hidden __getservbyname_r(const char *name, const char *proto,
|
|
struct servent * result_buf, char * buf, size_t buflen,
|
|
struct servent * result_buf, char * buf, size_t buflen,
|
|
struct servent ** result)
|
|
struct servent ** result)
|
|
{
|
|
{
|
|
@@ -237,8 +220,8 @@ int getservbyname_r(const char *name, const char *proto,
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
LOCK;
|
|
LOCK;
|
|
- setservent(serv_stayopen);
|
|
+ __setservent(serv_stayopen);
|
|
- while (!(ret=getservent_r(result_buf, buf, buflen, result))) {
|
|
+ while (!(ret=__getservent_r(result_buf, buf, buflen, result))) {
|
|
if (__strcmp(name, result_buf->s_name) == 0)
|
|
if (__strcmp(name, result_buf->s_name) == 0)
|
|
goto gotname;
|
|
goto gotname;
|
|
for (cp = result_buf->s_aliases; *cp; cp++)
|
|
for (cp = result_buf->s_aliases; *cp; cp++)
|
|
@@ -250,27 +233,49 @@ gotname:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
if (!serv_stayopen)
|
|
if (!serv_stayopen)
|
|
- endservent();
|
|
+ __endservent();
|
|
UNLOCK;
|
|
UNLOCK;
|
|
return *result?0:ret;
|
|
return *result?0:ret;
|
|
}
|
|
}
|
|
|
|
+strong_alias(__getservbyname_r,getservbyname_r)
|
|
|
|
+
|
|
|
|
+struct servent *getservbyname(const char *name, const char *proto)
|
|
|
|
+{
|
|
|
|
+ struct servent *result;
|
|
|
|
+
|
|
|
|
+ __initbuf();
|
|
|
|
+ __getservbyname_r(name, proto, &serv, servbuf, SBUFSIZE, &result);
|
|
|
|
+ return result;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
-int getservbyport_r(int port, const char *proto,
|
|
+extern int attribute_hidden __getservbyport_r(int port, const char *proto,
|
|
struct servent * result_buf, char * buf,
|
|
struct servent * result_buf, char * buf,
|
|
size_t buflen, struct servent ** result)
|
|
size_t buflen, struct servent ** result)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
LOCK;
|
|
LOCK;
|
|
- setservent(serv_stayopen);
|
|
+ __setservent(serv_stayopen);
|
|
- while (!(ret=getservent_r(result_buf, buf, buflen, result))) {
|
|
+ while (!(ret=__getservent_r(result_buf, buf, buflen, result))) {
|
|
if (result_buf->s_port != port)
|
|
if (result_buf->s_port != port)
|
|
continue;
|
|
continue;
|
|
if (proto == 0 || __strcmp(result_buf->s_proto, proto) == 0)
|
|
if (proto == 0 || __strcmp(result_buf->s_proto, proto) == 0)
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
if (!serv_stayopen)
|
|
if (!serv_stayopen)
|
|
- endservent();
|
|
+ __endservent();
|
|
UNLOCK;
|
|
UNLOCK;
|
|
return *result?0:ret;
|
|
return *result?0:ret;
|
|
}
|
|
}
|
|
|
|
+strong_alias(__getservbyport_r,getservbyport_r)
|
|
|
|
+
|
|
|
|
+struct servent attribute_hidden * __getservbyport(int port, const char *proto)
|
|
|
|
+{
|
|
|
|
+ struct servent *result;
|
|
|
|
+
|
|
|
|
+ __initbuf();
|
|
|
|
+ __getservbyport_r(port, proto, &serv, servbuf, SBUFSIZE, &result);
|
|
|
|
+ return result;
|
|
|
|
+}
|
|
|
|
+strong_alias(__getservbyport,getservbyport)
|