diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2010-10-09 20:10:27 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2010-10-09 20:10:27 +0000 |
commit | a7ac27ed9e31c8b6bfca11b73816d62528cef286 (patch) | |
tree | 1d66a314dd9d46a83e6ccb74b86e8438dfd1f167 | |
parent | b978f0588a933c8a554b7a2a3f7416645d3da758 (diff) |
have one shared file handle per flavour instead of one global one (for now) and re-introduce some other minor changes that got lost in r1247
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd-solaris@1249 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r-- | nss/ethers.c | 7 | ||||
-rw-r--r-- | nss/group.c | 9 | ||||
-rw-r--r-- | nss/netgroup.c | 11 | ||||
-rw-r--r-- | nss/networks.c | 9 | ||||
-rw-r--r-- | nss/passwd.c | 8 | ||||
-rw-r--r-- | nss/protocols.c | 8 | ||||
-rw-r--r-- | nss/rpc.c | 8 | ||||
-rw-r--r-- | nss/services.c | 8 | ||||
-rw-r--r-- | nss/shadow.c | 12 |
9 files changed, 42 insertions, 38 deletions
diff --git a/nss/ethers.c b/nss/ethers.c index 5c1b758..9965a10 100644 --- a/nss/ethers.c +++ b/nss/ethers.c @@ -42,8 +42,6 @@ static nss_status_t read_etherent( return NSS_STATUS_SUCCESS; } -static __thread TFILE *etherentfp; - #ifdef NSS_FLAVOUR_GLIBC /* map a hostname to the corresponding ethernet address */ @@ -69,7 +67,7 @@ nss_status_t _nss_ldap_getntohost_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *etherentfp; */ +static __thread TFILE *etherentfp; /* open a connection to read all ether entries */ nss_status_t _nss_ldap_setetherent(int UNUSED(stayopen)) @@ -161,6 +159,9 @@ static nss_status_t _xnss_ldap_getntohost_r(nss_backend_t UNUSED(*be),void *args return retv; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *etherentfp; + static nss_status_t _xnss_ldap_setetherent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { NSS_SETENT(etherentfp); diff --git a/nss/group.c b/nss/group.c index 38757e9..5a64ca5 100644 --- a/nss/group.c +++ b/nss/group.c @@ -31,8 +31,6 @@ #include "common.h" #include "compat/attrs.h" -static __thread TFILE *grentfp; - /* read a single group entry from the stream */ static nss_status_t read_group( TFILE *fp,struct group *result, @@ -56,8 +54,10 @@ static nss_status_t read_gids( int32_t res=(int32_t)NSLCD_RESULT_BEGIN; int32_t tmpint32,tmp2int32,tmp3int32; gid_t gid; +#ifdef NSS_FLAVOUR_GLIBC gid_t *newgroups; long int newsize; +#endif /* NSS_FLAVOUR_GLIBC */ /* loop over results */ while (res==(int32_t)NSLCD_RESULT_BEGIN) { @@ -130,7 +130,7 @@ nss_status_t _nss_ldap_getgrgid_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *grentfp; */ +static __thread TFILE *grentfp; /* start a request to read all groups */ nss_status_t _nss_ldap_setgrent(int UNUSED(stayopen)) @@ -277,6 +277,9 @@ static nss_status_t _xnss_ldap_getgrgid_r(nss_backend_t UNUSED(*be),void *args) return status; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *grentfp; + static nss_status_t _xnss_ldap_setgrent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { NSS_SETENT(grentfp); diff --git a/nss/netgroup.c b/nss/netgroup.c index 6e31a4b..e3a86de 100644 --- a/nss/netgroup.c +++ b/nss/netgroup.c @@ -39,8 +39,6 @@ fp=NULL; \ return NSS_STATUS_RETURN; -static __thread TFILE *netgrentfp; - /* function for reading a single result entry */ static nss_status_t read_netgrent( TFILE *fp,struct __netgrent *result, @@ -92,7 +90,7 @@ static nss_status_t read_netgrent( #ifdef NSS_FLAVOUR_GLIBC /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *netgrentfp; */ +static __thread TFILE *netgrentfp; /* start a request to get a netgroup by name */ nss_status_t _nss_ldap_setnetgrent( @@ -125,7 +123,7 @@ nss_status_t _nss_ldap_getnetgrent_r( } /* close the stream opened with setnetgrent() above */ -nss_status_t _nss_ldap_endnetgrent(struct __netgrent UNUSED(* result)) +nss_status_t _nss_ldap_endnetgrent(struct __netgrent UNUSED(*result)) { NSS_ENDENT(netgrentfp); } @@ -191,6 +189,9 @@ static char *_nss_ldap_chase_netgroup(nss_ldap_netgr_backend_t *ngbe) return group; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *netgrentfp; + static nss_status_t _nss_nslcd_getnetgrent_r(struct __netgrent *result,char *buffer,size_t buflen,int *errnop) { NSS_GETENT(netgrentfp,NSLCD_ACTION_NETGROUP_BYNAME,buffer,buflen, @@ -198,7 +199,7 @@ static nss_status_t _nss_nslcd_getnetgrent_r(struct __netgrent *result,char *buf return retv; } -static nss_status_t _nss_nslcd_setnetgrent(const char *group,struct __netgrent UNUSED(* result)) +static nss_status_t _nss_nslcd_setnetgrent(const char *group,struct __netgrent UNUSED(*result)) { /* we cannot use NSS_SETENT() here because we have a parameter that is only available in this function */ diff --git a/nss/networks.c b/nss/networks.c index 5266362..0ba5d09 100644 --- a/nss/networks.c +++ b/nss/networks.c @@ -61,9 +61,6 @@ #define ERROR_OUT_WRITEERROR(fp) \ ERROR_OUT_READERROR(fp) -/* thread-local file pointer to an ongoing request */ -static __thread TFILE *netentfp; - /* read a single network entry from the stream, ignoring entries that are not AF_INET (IPv4), result is stored in result */ static nss_status_t read_netent( @@ -140,7 +137,7 @@ nss_status_t _nss_ldap_getnetbyaddr_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *netentfp; */ +static __thread TFILE *netentfp; /* start a request to read all networks */ nss_status_t _nss_ldap_setnetent(int UNUSED(stayopen)) @@ -296,6 +293,9 @@ static nss_status_t _xnss_ldap_getnetbyaddr_r(nss_backend_t UNUSED(*be),void *ar return status; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *netentfp; + static nss_status_t _xnss_ldap_setnetent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { NSS_SETENT(netentfp); @@ -319,7 +319,6 @@ static nss_status_t _xnss_ldap_getnetent_r(nss_backend_t UNUSED(*be),void *args) int h_errno; char *data_ptr; nss_status_t status; - if (NSS_ARGS(args)->buf.buflen<0) { NSS_ARGS(args)->erange=1; diff --git a/nss/passwd.c b/nss/passwd.c index 2b0cddd..26327e5 100644 --- a/nss/passwd.c +++ b/nss/passwd.c @@ -30,9 +30,6 @@ #include "common.h" #include "compat/attrs.h" -/* thread-local file pointer to an ongoing request */ -static __thread TFILE *pwentfp; - /* read a passwd entry from the stream */ static nss_status_t read_passwd( TFILE *fp,struct passwd *result, @@ -75,7 +72,7 @@ nss_status_t _nss_ldap_getpwuid_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *pwentfp; */ +static __thread TFILE *pwentfp; /* open a connection to read all passwd entries */ nss_status_t _nss_ldap_setpwent(int UNUSED(stayopen)) @@ -161,6 +158,9 @@ static nss_status_t _nss_nslcd_getpwuid_r( return retv; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *pwentfp; + /* open a connection to the nslcd and write the request */ static nss_status_t _xnss_ldap_setpwent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { diff --git a/nss/protocols.c b/nss/protocols.c index 5a89075..b490fc3 100644 --- a/nss/protocols.c +++ b/nss/protocols.c @@ -30,9 +30,6 @@ #include "common.h" #include "compat/attrs.h" -/* thread-local file pointer to an ongoing request */ -static __thread TFILE *protoentfp; - /* read a single protocol entry from the stream */ static nss_status_t read_protoent( TFILE *fp,struct protoent *result, @@ -71,7 +68,7 @@ nss_status_t _nss_ldap_getprotobynumber_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *protoentfp; */ +static __thread TFILE *protoentfp; /* start a request to read all protocol entries */ nss_status_t _nss_ldap_setprotoent(int UNUSED(stayopen)) @@ -206,6 +203,9 @@ static nss_status_t _xnss_ldap_getprotobynumber_r(nss_backend_t UNUSED(*be),void return status; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *protoentfp; + static nss_status_t _xnss_ldap_setprotoent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { NSS_SETENT(protoentfp); @@ -30,9 +30,6 @@ #include "common.h" #include "compat/attrs.h" -/* thread-local file pointer to an ongoing request */ -static __thread TFILE *protoentfp; - /* read a sinlge rpc entry from the stream */ static nss_status_t read_rpcent( TFILE *fp,struct rpcent *result, @@ -71,7 +68,7 @@ nss_status_t _nss_ldap_getrpcbynumber_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *protoentfp; */ +static __thread TFILE *protoentfp; /* request a stream to list all rpc entries */ nss_status_t _nss_ldap_setrpcent(int UNUSED(stayopen)) @@ -119,6 +116,9 @@ static nss_status_t _nss_nslcd_getrpcbynumber_r( return retv; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *protoentfp; + static nss_status_t _xnss_ldap_setrpcent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { NSS_SETENT(protoentfp); diff --git a/nss/services.c b/nss/services.c index 76d48f0..fb709a4 100644 --- a/nss/services.c +++ b/nss/services.c @@ -30,9 +30,6 @@ #include "common.h" #include "compat/attrs.h" -/* thread-local file pointer to an ongoing request */ -static __thread TFILE *serventfp; - /* read a single services result entry from the stream */ static nss_status_t read_servent( TFILE *fp,struct servent *result, @@ -75,7 +72,7 @@ nss_status_t _nss_ldap_getservbyport_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *protoentfp; */ +static __thread TFILE *serventfp; /* open request to get all services */ nss_status_t _nss_ldap_setservent(int UNUSED(stayopen)) @@ -123,6 +120,9 @@ static nss_status_t _nss_nslcd_getservbyport_r( return retv; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *serventfp; + static nss_status_t _xnss_ldap_setservent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { NSS_SETENT(serventfp); diff --git a/nss/shadow.c b/nss/shadow.c index 7e5e7ce..403dd3a 100644 --- a/nss/shadow.c +++ b/nss/shadow.c @@ -30,9 +30,6 @@ #include "common.h" #include "compat/attrs.h" -/* thread-local file pointer to an ongoing request */ -static __thread TFILE *spentfp; - /* read a single shadow entry from the stream */ static nss_status_t read_spwd( TFILE *fp,struct spwd *result, @@ -66,7 +63,7 @@ nss_status_t _nss_ldap_getspnam_r( } /* thread-local file pointer to an ongoing request */ -/* static __thread TFILE *spentfp; */ +static __thread TFILE *spentfp; /* start listing all shadow users */ nss_status_t _nss_ldap_setspent(int UNUSED(stayopen)) @@ -111,6 +108,7 @@ static nss_status_t _xnss_ldap_getspnam_r(nss_backend_t UNUSED(*be),void *args) char *buffer=NSS_ARGS(args)->buf.buffer; size_t buflen=NSS_ARGS(args)->buf.buflen; char *data_ptr; + char field_buf[128]; nss_status_t status; if (NSS_ARGS(args)->buf.buflen<0) { @@ -124,7 +122,6 @@ static nss_status_t _xnss_ldap_getspnam_r(nss_backend_t UNUSED(*be),void *args) { /* result==NULL, return file format */ data_ptr=(char *)malloc(buflen); - char field_buf[128]; sprintf(data_ptr,"%s:%s:",sp->sp_namp,sp->sp_pwdp); if (sp->sp_lstchg >= 0) sprintf(field_buf,"%d:",sp->sp_lstchg); @@ -173,6 +170,9 @@ static nss_status_t _xnss_ldap_getspnam_r(nss_backend_t UNUSED(*be),void *args) return status; } +/* thread-local file pointer to an ongoing request */ +static __thread TFILE *spentfp; + static nss_status_t _xnss_ldap_setspent(nss_backend_t UNUSED(*be),void UNUSED(*args)) { NSS_SETENT(spentfp); @@ -193,6 +193,7 @@ static nss_status_t _xnss_ldap_getspent_r(nss_backend_t UNUSED(*be),void *args) char *buffer=NSS_ARGS(args)->buf.buffer; size_t buflen=NSS_ARGS(args)->buf.buflen; char *data_ptr; + char field_buf[128]; nss_status_t status; if (NSS_ARGS(args)->buf.buflen<0) { @@ -206,7 +207,6 @@ static nss_status_t _xnss_ldap_getspent_r(nss_backend_t UNUSED(*be),void *args) { /* result==NULL, return file format */ data_ptr=(char *)malloc(buflen); - char field_buf[128]; sprintf(data_ptr,"%s:%s:",sp->sp_namp,sp->sp_pwdp); if (sp->sp_lstchg >= 0) sprintf(field_buf,"%d:",sp->sp_lstchg); |