Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/nss/networks.c
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2010-10-11 22:12:59 +0200
committerArthur de Jong <arthur@arthurdejong.org>2010-10-11 22:12:59 +0200
commit90fec72d7d1390d0744622928c6648355d3f6f33 (patch)
treebd09214dd94179b152d738e8d4798bd9595b86df /nss/networks.c
parent11428fdf252a18551d64fb6a119e44eab2d2c5d9 (diff)
also try to support older Solaris releases that do not have the returnlen member of struct nss_XbyY_args
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd-solaris@1262 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'nss/networks.c')
-rw-r--r--nss/networks.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/nss/networks.c b/nss/networks.c
index f5a5a3d..2a9443b 100644
--- a/nss/networks.c
+++ b/nss/networks.c
@@ -162,6 +162,8 @@ nss_status_t _nss_ldap_endnetent(void)
#ifdef NSS_FLAVOUR_SOLARIS
+#ifdef HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN
+
static nss_status_t read_netentstring(TFILE *fp,nss_XbyY_args_t *args)
{
struct netent result;
@@ -199,8 +201,17 @@ static nss_status_t read_netentstring(TFILE *fp,nss_XbyY_args_t *args)
NSS_ARGS(args)->buf.result? \
read_netent(fp,(struct netent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)): \
read_netentstring(fp,args); \
- if (NSS_ARGS(args)->buf.result) \
- NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result
+ if ((NSS_ARGS(args)->buf.result)&&(retv=NSS_STATUS_SUCCESS)) \
+ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result;
+
+#else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */
+
+#define READ_RESULT(fp) \
+ read_netent(fp,(struct netent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)); \
+ if (retv=NSS_STATUS_SUCCESS) \
+ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result;
+
+#endif /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */
/* more of a dirty hack */
#define h_errnop (&(NSS_ARGS(args)->h_errno))