rev |
line source |
pascal@20351
|
1 diff -u -r nss_ldap-265.orig/configure.in nss_ldap-265/configure.in
|
pascal@20351
|
2 --- nss_ldap-265.orig/configure.in 2009-11-06 19:28:08.000000000 +0900
|
pascal@20351
|
3 +++ nss_ldap-265/configure.in 2012-12-20 17:04:48.798942465 +0900
|
pascal@20351
|
4 @@ -234,6 +234,7 @@
|
pascal@20351
|
5 AC_CHECK_FUNCS(pthread_once)
|
pascal@20351
|
6 AC_CHECK_FUNCS(ether_aton)
|
pascal@20351
|
7 AC_CHECK_FUNCS(ether_ntoa)
|
pascal@20351
|
8 +AC_CHECK_FUNCS(__libc_once __libc_atfork __libc_lock_lock __libc_lock_unlock)
|
pascal@20351
|
9
|
pascal@20351
|
10 AC_MSG_CHECKING(for struct ether_addr)
|
pascal@20351
|
11 AC_TRY_COMPILE([#include <sys/types.h>
|
pascal@20351
|
12 Only in nss_ldap-265: configure.in.orig
|
pascal@20351
|
13 diff -u -r nss_ldap-265.orig/ldap-nss.c nss_ldap-265/ldap-nss.c
|
pascal@20351
|
14 --- nss_ldap-265.orig/ldap-nss.c 2009-11-06 19:28:08.000000000 +0900
|
pascal@20351
|
15 +++ nss_ldap-265/ldap-nss.c 2012-12-20 17:04:48.798942465 +0900
|
pascal@20351
|
16 @@ -142,7 +142,7 @@
|
pascal@20351
|
17 */
|
pascal@20351
|
18 static ldap_session_t __session = { NULL, NULL, 0, LS_UNINITIALIZED };
|
pascal@20351
|
19
|
pascal@20351
|
20 -#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
21 +#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
22 static pthread_once_t __once = PTHREAD_ONCE_INIT;
|
pascal@20351
|
23 #endif
|
pascal@20351
|
24
|
pascal@20351
|
25 @@ -150,7 +150,7 @@
|
pascal@20351
|
26 static FILE *__debugfile;
|
pascal@20351
|
27 #endif /* LBER_OPT_LOG_PRINT_FILE */
|
pascal@20351
|
28
|
pascal@20351
|
29 -#ifndef HAVE_PTHREAD_ATFORK
|
pascal@20351
|
30 +#if !defined(HAVE_PTHREAD_ATFORK) || !defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
31 /*
|
pascal@20351
|
32 * Process ID that opened the session.
|
pascal@20351
|
33 */
|
pascal@20351
|
34 @@ -162,7 +162,7 @@
|
pascal@20351
|
35 static int __ssl_initialized = 0;
|
pascal@20351
|
36 #endif /* HAVE_LDAPSSL_CLIENT_INIT */
|
pascal@20351
|
37
|
pascal@20351
|
38 -#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
39 +#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
40 /*
|
pascal@20351
|
41 * Prepare for fork(); lock mutex.
|
pascal@20351
|
42 */
|
pascal@20351
|
43 @@ -513,7 +513,7 @@
|
pascal@20351
|
44 }
|
pascal@20351
|
45 #endif /* HAVE_NSSWITCH_H */
|
pascal@20351
|
46
|
pascal@20351
|
47 -#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
48 +#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
49 static void
|
pascal@20351
|
50 do_atfork_prepare (void)
|
pascal@20351
|
51 {
|
pascal@20351
|
52 @@ -547,7 +547,7 @@
|
pascal@20351
|
53 #ifdef HAVE_PTHREAD_ATFORK
|
pascal@20351
|
54 (void) pthread_atfork (do_atfork_prepare, do_atfork_parent,
|
pascal@20351
|
55 do_atfork_child);
|
pascal@20351
|
56 -#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
57 +#elif defined(HAVE___LIBC_ATFORK)
|
pascal@20351
|
58 (void) __libc_atfork (do_atfork_prepare, do_atfork_parent, do_atfork_child);
|
pascal@20351
|
59 #endif
|
pascal@20351
|
60
|
pascal@20351
|
61 @@ -1096,7 +1096,7 @@
|
pascal@20351
|
62 do_init (void)
|
pascal@20351
|
63 {
|
pascal@20351
|
64 ldap_config_t *cfg;
|
pascal@20351
|
65 -#ifndef HAVE_PTHREAD_ATFORK
|
pascal@20351
|
66 +#if !defined(HAVE_PTHREAD_ATFORK) || !defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
67 pid_t pid;
|
pascal@20351
|
68 #endif
|
pascal@20351
|
69 uid_t euid;
|
pascal@20351
|
70 @@ -1113,7 +1113,7 @@
|
pascal@20351
|
71 }
|
pascal@20351
|
72
|
pascal@20351
|
73 #ifndef HAVE_PTHREAD_ATFORK
|
pascal@20351
|
74 -#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
75 +#if defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
76 /*
|
pascal@20351
|
77 * This bogosity is necessary because Linux uses different
|
pascal@20351
|
78 * PIDs for different threads (like IRIX, which we don't
|
pascal@20351
|
79 @@ -1145,7 +1145,7 @@
|
pascal@20351
|
80 pid = -1; /* linked against libpthreads, don't care */
|
pascal@20351
|
81 #else
|
pascal@20351
|
82 pid = getpid ();
|
pascal@20351
|
83 -#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */
|
pascal@20351
|
84 +#endif /* HAVE___LIBC_ONCE */
|
pascal@20351
|
85 #endif /* HAVE_PTHREAD_ATFORK */
|
pascal@20351
|
86
|
pascal@20351
|
87 euid = geteuid ();
|
pascal@20351
|
88 @@ -1155,7 +1155,7 @@
|
pascal@20351
|
89 syslog (LOG_DEBUG,
|
pascal@20351
|
90 "nss_ldap: __session.ls_state=%d, __session.ls_conn=%p, __euid=%i, euid=%i",
|
pascal@20351
|
91 __session.ls_state, __session.ls_conn, __euid, euid);
|
pascal@20351
|
92 -#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
93 +#elif defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
94 syslog (LOG_DEBUG,
|
pascal@20351
|
95 "nss_ldap: libpthreads=%s, __session.ls_state=%d, __session.ls_conn=%p, __pid=%i, pid=%i, __euid=%i, euid=%i",
|
pascal@20351
|
96 ((__pthread_once == NULL || __pthread_atfork == NULL) ? "FALSE" : "TRUE"),
|
pascal@20351
|
97 @@ -1179,11 +1179,11 @@
|
pascal@20351
|
98 }
|
pascal@20351
|
99 else
|
pascal@20351
|
100 #ifndef HAVE_PTHREAD_ATFORK
|
pascal@20351
|
101 -#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
102 +#if defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
103 if ((__pthread_once == NULL || __pthread_atfork == NULL) && __pid != pid)
|
pascal@20351
|
104 #else
|
pascal@20351
|
105 if (__pid != pid)
|
pascal@20351
|
106 -#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */
|
pascal@20351
|
107 +#endif /* HAVE___LIBC_ONCE */
|
pascal@20351
|
108 {
|
pascal@20351
|
109 do_close_no_unbind ();
|
pascal@20351
|
110 }
|
pascal@20351
|
111 @@ -1244,9 +1244,9 @@
|
pascal@20351
|
112 debug ("<== do_init (pthread_once failed)");
|
pascal@20351
|
113 return NSS_UNAVAIL;
|
pascal@20351
|
114 }
|
pascal@20351
|
115 -#elif defined(HAVE_PTHREAD_ATFORK) && ( defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) )
|
pascal@20351
|
116 +#elif defined(HAVE_PTHREAD_ATFORK) && defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
117 __libc_once (__once, do_atfork_setup);
|
pascal@20351
|
118 -#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
119 +#elif defined(HAVE___LIBC_ONCE)
|
pascal@20351
|
120 /*
|
pascal@20351
|
121 * Only install the pthread_atfork() handlers i
|
pascal@20351
|
122 * we are linked against libpthreads. Otherwise,
|
pascal@20351
|
123 Only in nss_ldap-265: ldap-nss.c.orig
|
pascal@20351
|
124 diff -u -r nss_ldap-265.orig/ldap-nss.h nss_ldap-265/ldap-nss.h
|
pascal@20351
|
125 --- nss_ldap-265.orig/ldap-nss.h 2009-11-06 19:28:08.000000000 +0900
|
pascal@20351
|
126 +++ nss_ldap-265/ldap-nss.h 2012-12-20 17:04:48.798942465 +0900
|
pascal@20351
|
127 @@ -670,7 +670,7 @@
|
pascal@20351
|
128 #define NSS_LDAP_LOCK(m) mutex_lock(&m)
|
pascal@20351
|
129 #define NSS_LDAP_UNLOCK(m) mutex_unlock(&m)
|
pascal@20351
|
130 #define NSS_LDAP_DEFINE_LOCK(m) static mutex_t m = DEFAULTMUTEX
|
pascal@20351
|
131 -#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
|
pascal@20351
|
132 +#elif defined(HAVE___LIBC_LOCK_LOCK) && defined(HAVE___LIBC_LOCK_UNLOCK)
|
pascal@20351
|
133 #define NSS_LDAP_LOCK(m) __libc_lock_lock(m)
|
pascal@20351
|
134 #define NSS_LDAP_UNLOCK(m) __libc_lock_unlock(m)
|
pascal@20351
|
135 #define NSS_LDAP_DEFINE_LOCK(m) static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER
|
pascal@20351
|
136 Only in nss_ldap-265: ldap-nss.h.orig
|