Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
-rw-r--r--nslcd/myldap.c2
-rw-r--r--nslcd/nslcd.c3
-rw-r--r--nss/bsdnss.c8
4 files changed, 11 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac
index a021741..d36a38f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -273,7 +273,7 @@ AC_ARG_WITH(nss-maps,
,[ with_nss_maps="all" ])
# checks for availability of header files
-AC_CHECK_HEADERS([ctype.h strings.h pthread.h fcntl.h limits.h])
+AC_CHECK_HEADERS([ctype.h strings.h pthread.h pthread_np.h fcntl.h limits.h])
AC_CHECK_HEADERS([nss.h nss_common.h grp.h shadow.h aliases.h netdb.h rpc/rpcent.h])
AC_CHECK_HEADERS([netinet/ether.h arpa/inet.h netinet/in.h])
AC_CHECK_HEADERS([nsswitch.h nss_dbdefs.h])
@@ -590,7 +590,9 @@ then
# replace daemon() function if it is not on the system
AC_SEARCH_LIBS(daemon,bsd)
AC_REPLACE_FUNCS(daemon)
- AC_CHECK_DECLS([daemon],,,[#include <unistd.h>])
+ AC_CHECK_DECLS([daemon],,,[
+ #include <unistd.h>
+ #include <stdlib.h>])
# replace ether_aton_r() and ether_ntoa_r() if they are not found
AC_CHECK_FUNCS(ether_aton_r ether_ntoa_r,,[AC_LIBOBJ(ether)])
diff --git a/nslcd/myldap.c b/nslcd/myldap.c
index e7b27e7..c7d0d76 100644
--- a/nslcd/myldap.c
+++ b/nslcd/myldap.c
@@ -519,7 +519,7 @@ static int set_socket_timeout(LDAP *ld,time_t sec,suseconds_t usec)
struct timeval tv;
int rc=LDAP_SUCCESS;
int sd;
- log_log(LOG_DEBUG,"set_socket_timeout(%lu,%lu)",sec,usec);
+ log_log(LOG_DEBUG,"set_socket_timeout(%lu,%lu)",(unsigned long)sec,(unsigned long)usec);
/* get the socket */
if ((rc=ldap_get_option(ld,LDAP_OPT_DESC,&sd))!=LDAP_SUCCESS)
{
diff --git a/nslcd/nslcd.c b/nslcd/nslcd.c
index b92ea12..732775c 100644
--- a/nslcd/nslcd.c
+++ b/nslcd/nslcd.c
@@ -49,6 +49,9 @@
#include <nss.h>
#endif /* HAVE_NSS_H */
#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif /* HAVE_PTHREAD_NP_H */
#ifndef HAVE_GETOPT_LONG
#include "compat/getopt_long.h"
#endif /* not HAVE_GETOPT_LONG */
diff --git a/nss/bsdnss.c b/nss/bsdnss.c
index 5c551f7..6e7423f 100644
--- a/nss/bsdnss.c
+++ b/nss/bsdnss.c
@@ -6,7 +6,7 @@
Copyright (C) 2003 Jacques Vidrine
Copyright (C) 2006 Artem Kazakov
Copyright (C) 2009 Alexander V. Chernikov
- Copyright (C) 2011 Arthur de Jong
+ Copyright (C) 2011, 2012 Arthur de Jong
Copyright (C) 2011 Tom Judge
This library is free software; you can redistribute it and/or
@@ -147,7 +147,7 @@ int __nss_compat_gethostbyaddr(void *retval,void *mdata,va_list ap)
return (status);
}
-int __gr_addgid(gid_t gid,gid_t *groups,int maxgrp,int *groupc)
+static int __gr_addgid(gid_t gid,gid_t *groups,int maxgrp,int *groupc)
{
int ret,dupc;
/* skip duplicates */
@@ -171,12 +171,10 @@ int __freebsd_getgroupmembership(void *retval,void *mdata,va_list ap)
nss_status_t s;
gid_t group;
gid_t *tmpgroups;
- size_t bufsize;
const char *user;
gid_t *groups;
- gid_t agroup;
int maxgrp,*grpcnt;
- int i,rv,ret_errno;
+ int i;
long int lstart,lsize;
user=va_arg(ap,const char *);
group=va_arg(ap,gid_t);