lists.arthurdejong.org
RSS feed

nss-pam-ldapd commit: r1246 - nss-pam-ldapd-solaris/nss

[Date Prev][Date Next] [Thread Prev][Thread Next]

nss-pam-ldapd commit: r1246 - nss-pam-ldapd-solaris/nss



Author: arthur
Date: Fri Oct  8 13:56:56 2010
New Revision: 1246
URL: http://arthurdejong.org/viewvc/nss-pam-ldapd?view=rev&revision=1246

Log:
re-introduce {set,get,end}**ent() file handle in Solaris code path and some 
other miscellaneous small fixes

Modified:
   nss-pam-ldapd-solaris/nss/ethers.c
   nss-pam-ldapd-solaris/nss/group.c
   nss-pam-ldapd-solaris/nss/hosts.c
   nss-pam-ldapd-solaris/nss/netgroup.c
   nss-pam-ldapd-solaris/nss/networks.c
   nss-pam-ldapd-solaris/nss/passwd.c
   nss-pam-ldapd-solaris/nss/protocols.c
   nss-pam-ldapd-solaris/nss/rpc.c
   nss-pam-ldapd-solaris/nss/services.c
   nss-pam-ldapd-solaris/nss/shadow.c

Modified: nss-pam-ldapd-solaris/nss/ethers.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/ethers.c  Fri Oct  8 13:24:38 2010        (r1245)
+++ nss-pam-ldapd-solaris/nss/ethers.c  Fri Oct  8 13:56:56 2010        (r1246)
@@ -95,7 +95,9 @@
 
 #ifdef NSS_FLAVOUR_SOLARIS
 
+#ifndef NSS_BUFLEN_ETHERS
 #define NSS_BUFLEN_ETHERS 1024
+#endif
 
 #define errnop &errno
 
@@ -157,6 +159,9 @@
   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);

Modified: nss-pam-ldapd-solaris/nss/group.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/group.c   Fri Oct  8 13:24:38 2010        (r1245)
+++ nss-pam-ldapd-solaris/nss/group.c   Fri Oct  8 13:56:56 2010        (r1246)
@@ -54,8 +54,10 @@
   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)
   {
@@ -275,6 +277,9 @@
   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);

Modified: nss-pam-ldapd-solaris/nss/hosts.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/hosts.c   Fri Oct  8 13:24:38 2010        (r1245)
+++ nss-pam-ldapd-solaris/nss/hosts.c   Fri Oct  8 13:56:56 2010        (r1246)
@@ -355,6 +355,8 @@
   return retv;
 }
 
+/* thread-local file pointer to an ongoing request */
+static __thread TFILE *hostentfp;
 
 static nss_status_t _xnss_ldap_sethostent(nss_backend_t UNUSED(*be),void 
UNUSED(*args))
 {

Modified: nss-pam-ldapd-solaris/nss/netgroup.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/netgroup.c        Fri Oct  8 13:24:38 2010        
(r1245)
+++ nss-pam-ldapd-solaris/nss/netgroup.c        Fri Oct  8 13:56:56 2010        
(r1246)
@@ -189,6 +189,9 @@
   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,
@@ -196,7 +199,7 @@
   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 */

Modified: nss-pam-ldapd-solaris/nss/networks.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/networks.c        Fri Oct  8 13:24:38 2010        
(r1245)
+++ nss-pam-ldapd-solaris/nss/networks.c        Fri Oct  8 13:56:56 2010        
(r1246)
@@ -179,7 +179,6 @@
 {
   struct netent priv_network;
   struct netent *network=NSS_ARGS(args)->buf.result?(struct netent 
*)NSS_ARGS(args)->buf.result:&priv_network;
-  char *name=(char *)NSS_ARGS(args)->key.name;
   int af=NSS_ARGS(args)->key.netaddr.type;
   char *buffer=NSS_ARGS(args)->buf.buffer;
   size_t buflen=NSS_ARGS(args)->buf.buflen;
@@ -191,7 +190,7 @@
     NSS_ARGS(args)->erange=1;
     return NSS_STATUS_TRYAGAIN;
   }
-  status=_nss_nslcd_getnetbyname_r(name,network,buffer,
+  status=_nss_nslcd_getnetbyname_r(NSS_ARGS(args)->key.name,network,buffer,
                 buflen,&errno,&h_errno);
   if (status!=NSS_STATUS_SUCCESS)
   {
@@ -202,7 +201,7 @@
   {
     /* result==NULL, return file format */
     data_ptr=(char *)malloc(buflen);
-    sprintf(data_ptr,"%s %s",name,inet_ntoa(network->n_net)); /* 
ipNetworkNumber */
+    sprintf(data_ptr,"%s %s",network->n_name,inet_ntoa(network->n_net)); /* 
ipNetworkNumber */
     if (network->n_aliases)
     {
       int i;
@@ -291,6 +290,9 @@
   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);

Modified: nss-pam-ldapd-solaris/nss/passwd.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/passwd.c  Fri Oct  8 13:24:38 2010        (r1245)
+++ nss-pam-ldapd-solaris/nss/passwd.c  Fri Oct  8 13:56:56 2010        (r1246)
@@ -158,6 +158,9 @@
   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))
 {

Modified: nss-pam-ldapd-solaris/nss/protocols.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/protocols.c       Fri Oct  8 13:24:38 2010        
(r1245)
+++ nss-pam-ldapd-solaris/nss/protocols.c       Fri Oct  8 13:56:56 2010        
(r1246)
@@ -203,6 +203,9 @@
   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);

Modified: nss-pam-ldapd-solaris/nss/rpc.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/rpc.c     Fri Oct  8 13:24:38 2010        (r1245)
+++ nss-pam-ldapd-solaris/nss/rpc.c     Fri Oct  8 13:56:56 2010        (r1246)
@@ -116,6 +116,9 @@
   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);

Modified: nss-pam-ldapd-solaris/nss/services.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/services.c        Fri Oct  8 13:24:38 2010        
(r1245)
+++ nss-pam-ldapd-solaris/nss/services.c        Fri Oct  8 13:56:56 2010        
(r1246)
@@ -72,12 +72,12 @@
 }
 
 /* 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))
 {
-  NSS_SETENT(protoentfp);
+  NSS_SETENT(serventfp);
 }
 
 /* read a single returned service definition */
@@ -85,15 +85,15 @@
         struct servent *result,
         char *buffer,size_t buflen,int *errnop)
 {
-  NSS_GETENT(protoentfp,NSLCD_ACTION_SERVICE_ALL,buffer,buflen,
-             read_servent(protoentfp,result,buffer,buflen,errnop));
+  NSS_GETENT(serventfp,NSLCD_ACTION_SERVICE_ALL,buffer,buflen,
+             read_servent(serventfp,result,buffer,buflen,errnop));
   return retv;
 }
 
 /* close the stream opened by setservent() above */
 nss_status_t _nss_ldap_endservent(void)
 {
-  NSS_ENDENT(protoentfp);
+  NSS_ENDENT(serventfp);
 }
 
 #endif /* NSS_FLAVOUR_GLIBC */
@@ -120,22 +120,25 @@
   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(protoentfp);
+  NSS_SETENT(serventfp);
 }
 
 static nss_status_t _nss_nslcd_getservent_r(
         struct servent *result,char *buffer,size_t buflen,int *errnop)
 {
-  NSS_GETENT(protoentfp,NSLCD_ACTION_SERVICE_ALL,buffer,buflen,
-             read_servent(protoentfp,result,buffer,buflen,errnop));
+  NSS_GETENT(serventfp,NSLCD_ACTION_SERVICE_ALL,buffer,buflen,
+             read_servent(serventfp,result,buffer,buflen,errnop));
   return retv;
 }
 
 static nss_status_t _xnss_ldap_endservent(nss_backend_t UNUSED(*be),void 
UNUSED(*args))
 {
-  NSS_ENDENT(protoentfp);
+  NSS_ENDENT(serventfp);
 }
 
 static nss_status_t _xnss_ldap_getservbyname_r(nss_backend_t UNUSED(*be),void 
*args)

Modified: nss-pam-ldapd-solaris/nss/shadow.c
==============================================================================
--- nss-pam-ldapd-solaris/nss/shadow.c  Fri Oct  8 13:24:38 2010        (r1245)
+++ nss-pam-ldapd-solaris/nss/shadow.c  Fri Oct  8 13:56:56 2010        (r1246)
@@ -108,6 +108,7 @@
   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)
   {
@@ -121,7 +122,6 @@
   {
     /* 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);
@@ -170,6 +170,9 @@
   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);
--
To unsubscribe send an email to
nss-pam-ldapd-commits-unsubscribe@lists.arthurdejong.org or see
http://lists.arthurdejong.org/nss-pam-ldapd-commits