aboutsummaryrefslogtreecommitdiff
path: root/sunrpc
diff options
context:
space:
mode:
Diffstat (limited to 'sunrpc')
-rw-r--r--sunrpc/netname.c21
-rw-r--r--sunrpc/publickey.c42
2 files changed, 6 insertions, 57 deletions
diff --git a/sunrpc/netname.c b/sunrpc/netname.c
index 24ee519..c0073be 100644
--- a/sunrpc/netname.c
+++ b/sunrpc/netname.c
@@ -145,9 +145,7 @@ int
netname2user (const char *netname, uid_t * uidp, gid_t * gidp,
int *gidlenp, gid_t * gidlist)
{
- static service_user *startp;
- static netname2user_function start_fct;
- service_user *nip;
+ nss_action_list nip;
union
{
netname2user_function f;
@@ -156,22 +154,7 @@ netname2user (const char *netname, uid_t * uidp, gid_t * gidp,
enum nss_status status = NSS_STATUS_UNAVAIL;
int no_more;
- if (startp == NULL)
- {
- no_more = __nss_publickey_lookup2 (&nip, "netname2user", NULL, &fct.ptr);
- if (no_more)
- startp = (service_user *) - 1;
- else
- {
- startp = nip;
- start_fct = fct.f;
- }
- }
- else
- {
- fct.f = start_fct;
- no_more = (nip = startp) == (service_user *) - 1;
- }
+ no_more = __nss_publickey_lookup2 (&nip, "netname2user", NULL, &fct.ptr);
while (!no_more)
{
diff --git a/sunrpc/publickey.c b/sunrpc/publickey.c
index 2fa0252..63866ef 100644
--- a/sunrpc/publickey.c
+++ b/sunrpc/publickey.c
@@ -34,9 +34,7 @@ typedef int (*secret_function) (const char *, char *, const char *, int *);
int
getpublickey (const char *name, char *key)
{
- static service_user *startp;
- static public_function start_fct;
- service_user *nip;
+ nss_action_list nip;
union
{
public_function f;
@@ -45,22 +43,7 @@ getpublickey (const char *name, char *key)
enum nss_status status = NSS_STATUS_UNAVAIL;
int no_more;
- if (startp == NULL)
- {
- no_more = __nss_publickey_lookup2 (&nip, "getpublickey", NULL, &fct.ptr);
- if (no_more)
- startp = (service_user *) -1;
- else
- {
- startp = nip;
- start_fct = fct.f;
- }
- }
- else
- {
- fct.f = start_fct;
- no_more = (nip = startp) == (service_user *) -1;
- }
+ no_more = __nss_publickey_lookup2 (&nip, "getpublickey", NULL, &fct.ptr);
while (! no_more)
{
@@ -77,9 +60,7 @@ libc_hidden_nolink_sunrpc (getpublickey, GLIBC_2_0)
int
getsecretkey (const char *name, char *key, const char *passwd)
{
- static service_user *startp;
- static secret_function start_fct;
- service_user *nip;
+ nss_action_list nip;
union
{
secret_function f;
@@ -88,22 +69,7 @@ getsecretkey (const char *name, char *key, const char *passwd)
enum nss_status status = NSS_STATUS_UNAVAIL;
int no_more;
- if (startp == NULL)
- {
- no_more = __nss_publickey_lookup2 (&nip, "getsecretkey", NULL, &fct.ptr);
- if (no_more)
- startp = (service_user *) -1;
- else
- {
- startp = nip;
- start_fct = fct.f;
- }
- }
- else
- {
- fct.f = start_fct;
- no_more = (nip = startp) == (service_user *) -1;
- }
+ no_more = __nss_publickey_lookup2 (&nip, "getsecretkey", NULL, &fct.ptr);
while (! no_more)
{