Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2010-10-01 10:34:33 +0200
committerArthur de Jong <arthur@arthurdejong.org>2010-10-01 10:34:33 +0200
commit7d3e113db9f89f3ed2fbe3854bd9e441a460483b (patch)
tree2401c745d7630123d07b19a5d64d43c59ab87550
parent8eac6f4f55cee0a6183983f2fcd8db73dc76c8a9 (diff)
parent441c1838035aee4e6b33b8deee4646e65ad1ed47 (diff)
merge function definition changes from trunk (r1233)
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd-solaris@1234 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r--compat/ether.c8
-rw-r--r--compat/ldap_passwd_s.c6
-rw-r--r--configure.ac68
3 files changed, 22 insertions, 60 deletions
diff --git a/compat/ether.c b/compat/ether.c
index 28dadf3..f02576c 100644
--- a/compat/ether.c
+++ b/compat/ether.c
@@ -37,11 +37,11 @@
#ifndef HAVE_ETHER_NTOA_R
-#ifndef HAVE_ETHER_NTOA_DEFINED
+#if !HAVE_DECL_ETHER_NTOA
/* we define ether_ntoa() here because on some platforms the function is
underfined */
extern char *ether_ntoa(const struct ether_addr *e);
-#endif /* not HAVE_ETHER_NTOA_DEFINED */
+#endif /* not HAVE_DECL_ETHER_NTOA */
char *ether_ntoa_r(const struct ether_addr *addr,char *buf)
{
@@ -56,11 +56,11 @@ char *ether_ntoa_r(const struct ether_addr *addr,char *buf)
#ifndef HAVE_ETHER_ATON_R
-#ifndef HAVE_ETHER_ATON_DEFINED
+#if !HAVE_DECL_ETHER_ATON
/* we define ether_aton() here because on some platforms the function is
underfined */
extern struct ether_addr *ether_aton(const char *s);
-#endif /* not HAVE_ETHER_ATON_DEFINED */
+#endif /* not HAVE_DECL_ETHER_ATON */
struct ether_addr *ether_aton_r(const char *asc,struct ether_addr *addr)
{
diff --git a/compat/ldap_passwd_s.c b/compat/ldap_passwd_s.c
index 97fcb3c..85825cb 100644
--- a/compat/ldap_passwd_s.c
+++ b/compat/ldap_passwd_s.c
@@ -4,7 +4,7 @@
(taken from _update_authtok() in pam_ldap.c).
Copyright (C) 1998-2004 Luke Howard
- Copyright (C) 2009 Arthur de Jong
+ Copyright (C) 2009, 2010 Arthur de Jong
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -53,11 +53,13 @@
#define ber_memfree free
#endif /* not HAVE_BER_MEMFREE */
+#if !HAVE_DECL_LDAP_EXTENDED_OPERATION_S
/* we define this ourselves here because some LDAP header versions don't
seem to define this */
-int ldap_extended_operation_s(LDAP *ld,LDAP_CONST char *reqoid,
+extern int ldap_extended_operation_s(LDAP *ld,LDAP_CONST char *reqoid,
struct berval *reqdata,LDAPControl **serverctrls,LDAPControl **clientctrls,
char **retoidp,struct berval **retdatap);
+#endif /* not HAVE_DECL_LDAP_EXTENDED_OPERATION_S */
/* Replacement for password modification. user is the DN of the entry to
change, oldpw is the old password (may not always be needed?), newpw is
diff --git a/configure.ac b/configure.ac
index af2602a..32b4bb7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -446,60 +446,15 @@ then
AC_CHECK_FUNCS(ether_aton_r ether_ntoa_r,,[AC_LIBOBJ(ether)])
# check requirements for our replacement functions
- if test "x$ac_cv_func_ether_aton_r_func" != "xyes"
- then
- # we should have a simple ether_aton()
- AC_CHECK_FUNCS(ether_aton)
- # see if ether_aton() is defined in some header file
- AC_CACHE_CHECK([for ether_aton() definition],
- nss_pam_ldapd_cv_have_ether_aton_defined,
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[
- #include <sys/socket.h>
- #include <net/if.h>
- #include <netinet/in.h>
- #include <netinet/if_ether.h>
- #ifdef HAVE_NETINET_ETHER_H
- #include <netinet/ether.h>
- #endif
- ]],[[
- extern int ether_aton(int);
- ]])],
- [nss_pam_ldapd_cv_have_ether_aton_defined=no],
- [nss_pam_ldapd_cv_have_ether_aton_defined=yes]) ])
- if test "x$nss_pam_ldapd_cv_have_ether_aton_defined" = "xyes"
- then
- AC_DEFINE_UNQUOTED(HAVE_ETHER_ATON_DEFINED,1,
- [Define to 1 if you have the definition for `ether_aton'.])
- fi
- fi
- if test "x$ac_cv_func_ether_ntoa_r_func" != "xyes"
- then
- # we should have a simple ether_ntoa()
- AC_CHECK_FUNCS(ether_ntoa)
- # see if ether_ntoa() is defined in some header file
- AC_CACHE_CHECK([for ether_ntoa() definition],
- nss_pam_ldapd_cv_have_ether_ntoa_defined,
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[
- #include <sys/socket.h>
- #include <net/if.h>
- #include <netinet/in.h>
- #include <netinet/if_ether.h>
- #ifdef HAVE_NETINET_ETHER_H
- #include <netinet/ether.h>
- #endif
- ]],[[
- extern int ether_ntoa(int);
- ]])],
- [nss_pam_ldapd_cv_have_ether_ntoa_defined=no],
- [nss_pam_ldapd_cv_have_ether_ntoa_defined=yes]) ])
- if test "x$nss_pam_ldapd_cv_have_ether_ntoa_defined" = "xyes"
- then
- AC_DEFINE_UNQUOTED(HAVE_ETHER_NTOA_DEFINED,1,
- [Define to 1 if you have the definition for `ether_ntoa'.])
- fi
- fi
+ AC_CHECK_FUNCS(ether_ntoa ether_aton)
+ AC_CHECK_DECLS([ether_ntoa,ether_aton],,,[
+ #include <sys/socket.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <netinet/if_ether.h>
+ #ifdef HAVE_NETINET_ETHER_H
+ #include <netinet/ether.h>
+ #endif])
# check to see if struct sockaddr_storage is defined
AC_CHECK_TYPE(struct sockaddr_storage,,
@@ -594,6 +549,11 @@ then
# replace ldap_create_page_control() and ldap_parse_page_control()
AC_CHECK_FUNCS(ldap_create_page_control ldap_parse_page_control,,[AC_LIBOBJ(pagectrl)])
+ AC_CHECK_DECLS(ldap_extended_operation_s,,,[
+ #if HAVE_LBER_H
+ #include <lber.h>
+ #endif
+ #include <ldap.h>])
# replace other ldap functions
AC_REPLACE_FUNCS(ldap_passwd_s)