aboutsummaryrefslogtreecommitdiff
path: root/sunrpc
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2020-11-09 22:09:34 -0500
committerDJ Delorie <dj@redhat.com>2020-12-04 17:16:32 -0500
commitf4f3b09111e9fa38fd485979a3e40b6cfa6a757d (patch)
treef2743a776f31b86ebebc9f145dd1305bade66eef /sunrpc
parent6eceded941bb6dcc097291757e2aef5cd7212133 (diff)
downloadglibc-f4f3b09111e9fa38fd485979a3e40b6cfa6a757d.zip
glibc-f4f3b09111e9fa38fd485979a3e40b6cfa6a757d.tar.gz
glibc-f4f3b09111e9fa38fd485979a3e40b6cfa6a757d.tar.bz2
nsswitch: use new internal API (callers)
Stitch new ABI and types throughout all NSS callers. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
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)
{