xref: /PHP-8.3/ext/ldap/ldap_arginfo.h (revision b3bd55f2)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: fec87d81c21ac5d56e62a5e0b4bbe673ea76edd5 */
3 
4 #if defined(HAVE_ORALDAP)
5 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_connect, 0, 0, LDAP\\Connection, MAY_BE_FALSE)
6 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, uri, IS_STRING, 1, "null")
7 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, port, IS_LONG, 0, "389")
8 	ZEND_ARG_TYPE_INFO(0, wallet, IS_STRING, 0)
9 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
10 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, auth_mode, IS_LONG, 0, "GSLC_SSL_NO_AUTH")
11 ZEND_END_ARG_INFO()
12 #endif
13 
14 #if defined(HAVE_ORALDAP) && defined(LDAP_API_FEATURE_X_OPENLDAP)
15 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_connect_wallet, 0, 3, LDAP\\Connection, MAY_BE_FALSE)
16 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, uri, IS_STRING, 1, "null")
17 	ZEND_ARG_TYPE_INFO(0, wallet, IS_STRING, 0)
18 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
19 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, auth_mode, IS_LONG, 0, "GSLC_SSL_NO_AUTH")
20 ZEND_END_ARG_INFO()
21 #endif
22 
23 #if !(defined(HAVE_ORALDAP))
24 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_connect, 0, 0, LDAP\\Connection, MAY_BE_FALSE)
25 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, uri, IS_STRING, 1, "null")
26 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, port, IS_LONG, 0, "389")
27 ZEND_END_ARG_INFO()
28 #endif
29 
30 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_unbind, 0, 1, _IS_BOOL, 0)
31 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
32 ZEND_END_ARG_INFO()
33 
34 #define arginfo_ldap_close arginfo_ldap_unbind
35 
36 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_bind, 0, 1, _IS_BOOL, 0)
37 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
38 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, dn, IS_STRING, 1, "null")
39 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, password, IS_STRING, 1, "null")
40 ZEND_END_ARG_INFO()
41 
42 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_bind_ext, 0, 1, LDAP\\Result, MAY_BE_FALSE)
43 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
44 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, dn, IS_STRING, 1, "null")
45 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, password, IS_STRING, 1, "null")
46 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
47 ZEND_END_ARG_INFO()
48 
49 #if defined(HAVE_LDAP_SASL)
50 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_sasl_bind, 0, 1, _IS_BOOL, 0)
51 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
52 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, dn, IS_STRING, 1, "null")
53 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, password, IS_STRING, 1, "null")
54 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mech, IS_STRING, 1, "null")
55 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, realm, IS_STRING, 1, "null")
56 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, authc_id, IS_STRING, 1, "null")
57 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, authz_id, IS_STRING, 1, "null")
58 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, props, IS_STRING, 1, "null")
59 ZEND_END_ARG_INFO()
60 #endif
61 
62 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_read, 0, 3, LDAP\\Result, MAY_BE_ARRAY|MAY_BE_FALSE)
63 	ZEND_ARG_INFO(0, ldap)
64 	ZEND_ARG_TYPE_MASK(0, base, MAY_BE_ARRAY|MAY_BE_STRING, NULL)
65 	ZEND_ARG_TYPE_MASK(0, filter, MAY_BE_ARRAY|MAY_BE_STRING, NULL)
66 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, attributes, IS_ARRAY, 0, "[]")
67 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, attributes_only, IS_LONG, 0, "0")
68 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, sizelimit, IS_LONG, 0, "-1")
69 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, timelimit, IS_LONG, 0, "-1")
70 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, deref, IS_LONG, 0, "LDAP_DEREF_NEVER")
71 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
72 ZEND_END_ARG_INFO()
73 
74 #define arginfo_ldap_list arginfo_ldap_read
75 
76 #define arginfo_ldap_search arginfo_ldap_read
77 
78 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_free_result, 0, 1, _IS_BOOL, 0)
79 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
80 ZEND_END_ARG_INFO()
81 
82 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_count_entries, 0, 2, IS_LONG, 0)
83 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
84 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
85 ZEND_END_ARG_INFO()
86 
87 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_first_entry, 0, 2, LDAP\\ResultEntry, MAY_BE_FALSE)
88 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
89 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
90 ZEND_END_ARG_INFO()
91 
92 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_next_entry, 0, 2, LDAP\\ResultEntry, MAY_BE_FALSE)
93 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
94 	ZEND_ARG_OBJ_INFO(0, entry, LDAP\\ResultEntry, 0)
95 ZEND_END_ARG_INFO()
96 
97 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_get_entries, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE)
98 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
99 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
100 ZEND_END_ARG_INFO()
101 
102 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_first_attribute, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
103 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
104 	ZEND_ARG_OBJ_INFO(0, entry, LDAP\\ResultEntry, 0)
105 ZEND_END_ARG_INFO()
106 
107 #define arginfo_ldap_next_attribute arginfo_ldap_first_attribute
108 
109 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_get_attributes, 0, 2, IS_ARRAY, 0)
110 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
111 	ZEND_ARG_OBJ_INFO(0, entry, LDAP\\ResultEntry, 0)
112 ZEND_END_ARG_INFO()
113 
114 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_get_values_len, 0, 3, MAY_BE_ARRAY|MAY_BE_FALSE)
115 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
116 	ZEND_ARG_OBJ_INFO(0, entry, LDAP\\ResultEntry, 0)
117 	ZEND_ARG_TYPE_INFO(0, attribute, IS_STRING, 0)
118 ZEND_END_ARG_INFO()
119 
120 #define arginfo_ldap_get_values arginfo_ldap_get_values_len
121 
122 #define arginfo_ldap_get_dn arginfo_ldap_first_attribute
123 
124 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_explode_dn, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE)
125 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
126 	ZEND_ARG_TYPE_INFO(0, with_attrib, IS_LONG, 0)
127 ZEND_END_ARG_INFO()
128 
129 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_dn2ufn, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
130 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
131 ZEND_END_ARG_INFO()
132 
133 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_add, 0, 3, _IS_BOOL, 0)
134 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
135 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
136 	ZEND_ARG_TYPE_INFO(0, entry, IS_ARRAY, 0)
137 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
138 ZEND_END_ARG_INFO()
139 
140 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_add_ext, 0, 3, LDAP\\Result, MAY_BE_FALSE)
141 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
142 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
143 	ZEND_ARG_TYPE_INFO(0, entry, IS_ARRAY, 0)
144 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
145 ZEND_END_ARG_INFO()
146 
147 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_delete, 0, 2, _IS_BOOL, 0)
148 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
149 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
150 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
151 ZEND_END_ARG_INFO()
152 
153 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_delete_ext, 0, 2, LDAP\\Result, MAY_BE_FALSE)
154 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
155 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
156 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
157 ZEND_END_ARG_INFO()
158 
159 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_modify_batch, 0, 3, _IS_BOOL, 0)
160 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
161 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
162 	ZEND_ARG_TYPE_INFO(0, modifications_info, IS_ARRAY, 0)
163 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
164 ZEND_END_ARG_INFO()
165 
166 #define arginfo_ldap_mod_add arginfo_ldap_add
167 
168 #define arginfo_ldap_mod_add_ext arginfo_ldap_add_ext
169 
170 #define arginfo_ldap_mod_replace arginfo_ldap_add
171 
172 #define arginfo_ldap_modify arginfo_ldap_add
173 
174 #define arginfo_ldap_mod_replace_ext arginfo_ldap_add_ext
175 
176 #define arginfo_ldap_mod_del arginfo_ldap_add
177 
178 #define arginfo_ldap_mod_del_ext arginfo_ldap_add_ext
179 
180 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_errno, 0, 1, IS_LONG, 0)
181 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
182 ZEND_END_ARG_INFO()
183 
184 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_error, 0, 1, IS_STRING, 0)
185 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
186 ZEND_END_ARG_INFO()
187 
188 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_err2str, 0, 1, IS_STRING, 0)
189 	ZEND_ARG_TYPE_INFO(0, errno, IS_LONG, 0)
190 ZEND_END_ARG_INFO()
191 
192 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_compare, 0, 4, MAY_BE_BOOL|MAY_BE_LONG)
193 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
194 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
195 	ZEND_ARG_TYPE_INFO(0, attribute, IS_STRING, 0)
196 	ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
197 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
198 ZEND_END_ARG_INFO()
199 
200 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
201 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_rename, 0, 5, _IS_BOOL, 0)
202 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
203 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
204 	ZEND_ARG_TYPE_INFO(0, new_rdn, IS_STRING, 0)
205 	ZEND_ARG_TYPE_INFO(0, new_parent, IS_STRING, 0)
206 	ZEND_ARG_TYPE_INFO(0, delete_old_rdn, _IS_BOOL, 0)
207 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
208 ZEND_END_ARG_INFO()
209 #endif
210 
211 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
212 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_rename_ext, 0, 5, LDAP\\Result, MAY_BE_FALSE)
213 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
214 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
215 	ZEND_ARG_TYPE_INFO(0, new_rdn, IS_STRING, 0)
216 	ZEND_ARG_TYPE_INFO(0, new_parent, IS_STRING, 0)
217 	ZEND_ARG_TYPE_INFO(0, delete_old_rdn, _IS_BOOL, 0)
218 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "null")
219 ZEND_END_ARG_INFO()
220 #endif
221 
222 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
223 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_get_option, 0, 2, _IS_BOOL, 0)
224 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
225 	ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
226 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, value, "null")
227 ZEND_END_ARG_INFO()
228 #endif
229 
230 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
231 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_set_option, 0, 3, _IS_BOOL, 0)
232 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 1)
233 	ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
234 	ZEND_ARG_INFO(0, value)
235 ZEND_END_ARG_INFO()
236 #endif
237 
238 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
239 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_count_references, 0, 2, IS_LONG, 0)
240 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
241 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
242 ZEND_END_ARG_INFO()
243 #endif
244 
245 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
246 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_first_reference, 0, 2, LDAP\\ResultEntry, MAY_BE_FALSE)
247 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
248 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
249 ZEND_END_ARG_INFO()
250 #endif
251 
252 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
253 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_next_reference, 0, 2, LDAP\\ResultEntry, MAY_BE_FALSE)
254 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
255 	ZEND_ARG_OBJ_INFO(0, entry, LDAP\\ResultEntry, 0)
256 ZEND_END_ARG_INFO()
257 #endif
258 
259 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP) && defined(HAVE_LDAP_PARSE_REFERENCE)
260 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_parse_reference, 0, 3, _IS_BOOL, 0)
261 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
262 	ZEND_ARG_OBJ_INFO(0, entry, LDAP\\ResultEntry, 0)
263 	ZEND_ARG_INFO(1, referrals)
264 ZEND_END_ARG_INFO()
265 #endif
266 
267 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP) && defined(HAVE_LDAP_PARSE_RESULT)
268 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_parse_result, 0, 3, _IS_BOOL, 0)
269 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
270 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
271 	ZEND_ARG_INFO(1, error_code)
272 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, matched_dn, "null")
273 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, error_message, "null")
274 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, referrals, "null")
275 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, controls, "null")
276 ZEND_END_ARG_INFO()
277 #endif
278 
279 #if (defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC))
280 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_set_rebind_proc, 0, 2, _IS_BOOL, 0)
281 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
282 	ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 1)
283 ZEND_END_ARG_INFO()
284 #endif
285 
286 #if defined(HAVE_LDAP_START_TLS_S)
287 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_start_tls, 0, 1, _IS_BOOL, 0)
288 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
289 ZEND_END_ARG_INFO()
290 #endif
291 
292 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_escape, 0, 1, IS_STRING, 0)
293 	ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
294 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ignore, IS_STRING, 0, "\"\"")
295 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
296 ZEND_END_ARG_INFO()
297 
298 #if defined(STR_TRANSLATION)
299 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_t61_to_8859, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
300 	ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
301 ZEND_END_ARG_INFO()
302 #endif
303 
304 #if defined(STR_TRANSLATION)
305 #define arginfo_ldap_8859_to_t61 arginfo_ldap_t61_to_8859
306 #endif
307 
308 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
309 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_exop, 0, 2, LDAP\\Result, MAY_BE_BOOL)
310 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
311 	ZEND_ARG_TYPE_INFO(0, request_oid, IS_STRING, 0)
312 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, request_data, IS_STRING, 1, "null")
313 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "NULL")
314 	ZEND_ARG_INFO(1, response_data)
315 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, response_oid, "null")
316 ZEND_END_ARG_INFO()
317 #endif
318 
319 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
320 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_exop_sync, 0, 2, LDAP\\Result, MAY_BE_BOOL)
321 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
322 	ZEND_ARG_TYPE_INFO(0, request_oid, IS_STRING, 0)
323 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, request_data, IS_STRING, 1, "null")
324 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, controls, IS_ARRAY, 1, "NULL")
325 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, response_data, "null")
326 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, response_oid, "null")
327 ZEND_END_ARG_INFO()
328 #endif
329 
330 #if defined(HAVE_LDAP_PASSWD)
331 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_exop_passwd, 0, 1, MAY_BE_STRING|MAY_BE_BOOL)
332 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
333 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, user, IS_STRING, 0, "\"\"")
334 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, old_password, IS_STRING, 0, "\"\"")
335 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, new_password, IS_STRING, 0, "\"\"")
336 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, controls, "null")
337 ZEND_END_ARG_INFO()
338 #endif
339 
340 #if defined(HAVE_LDAP_WHOAMI_S)
341 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_exop_whoami, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
342 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
343 ZEND_END_ARG_INFO()
344 #endif
345 
346 #if defined(HAVE_LDAP_REFRESH_S)
347 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ldap_exop_refresh, 0, 3, MAY_BE_LONG|MAY_BE_FALSE)
348 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
349 	ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
350 	ZEND_ARG_TYPE_INFO(0, ttl, IS_LONG, 0)
351 ZEND_END_ARG_INFO()
352 #endif
353 
354 #if defined(HAVE_LDAP_PARSE_EXTENDED_RESULT)
355 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_parse_exop, 0, 2, _IS_BOOL, 0)
356 	ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
357 	ZEND_ARG_OBJ_INFO(0, result, LDAP\\Result, 0)
358 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, response_data, "null")
359 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, response_oid, "null")
360 ZEND_END_ARG_INFO()
361 #endif
362 
363 
364 #if defined(HAVE_ORALDAP)
365 ZEND_FUNCTION(ldap_connect);
366 #endif
367 #if defined(HAVE_ORALDAP) && defined(LDAP_API_FEATURE_X_OPENLDAP)
368 ZEND_FUNCTION(ldap_connect_wallet);
369 #endif
370 #if !(defined(HAVE_ORALDAP))
371 ZEND_FUNCTION(ldap_connect);
372 #endif
373 ZEND_FUNCTION(ldap_unbind);
374 ZEND_FUNCTION(ldap_bind);
375 ZEND_FUNCTION(ldap_bind_ext);
376 #if defined(HAVE_LDAP_SASL)
377 ZEND_FUNCTION(ldap_sasl_bind);
378 #endif
379 ZEND_FUNCTION(ldap_read);
380 ZEND_FUNCTION(ldap_list);
381 ZEND_FUNCTION(ldap_search);
382 ZEND_FUNCTION(ldap_free_result);
383 ZEND_FUNCTION(ldap_count_entries);
384 ZEND_FUNCTION(ldap_first_entry);
385 ZEND_FUNCTION(ldap_next_entry);
386 ZEND_FUNCTION(ldap_get_entries);
387 ZEND_FUNCTION(ldap_first_attribute);
388 ZEND_FUNCTION(ldap_next_attribute);
389 ZEND_FUNCTION(ldap_get_attributes);
390 ZEND_FUNCTION(ldap_get_values_len);
391 ZEND_FUNCTION(ldap_get_dn);
392 ZEND_FUNCTION(ldap_explode_dn);
393 ZEND_FUNCTION(ldap_dn2ufn);
394 ZEND_FUNCTION(ldap_add);
395 ZEND_FUNCTION(ldap_add_ext);
396 ZEND_FUNCTION(ldap_delete);
397 ZEND_FUNCTION(ldap_delete_ext);
398 ZEND_FUNCTION(ldap_modify_batch);
399 ZEND_FUNCTION(ldap_mod_add);
400 ZEND_FUNCTION(ldap_mod_add_ext);
401 ZEND_FUNCTION(ldap_mod_replace);
402 ZEND_FUNCTION(ldap_mod_replace_ext);
403 ZEND_FUNCTION(ldap_mod_del);
404 ZEND_FUNCTION(ldap_mod_del_ext);
405 ZEND_FUNCTION(ldap_errno);
406 ZEND_FUNCTION(ldap_error);
407 ZEND_FUNCTION(ldap_err2str);
408 ZEND_FUNCTION(ldap_compare);
409 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
410 ZEND_FUNCTION(ldap_rename);
411 #endif
412 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
413 ZEND_FUNCTION(ldap_rename_ext);
414 #endif
415 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
416 ZEND_FUNCTION(ldap_get_option);
417 #endif
418 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
419 ZEND_FUNCTION(ldap_set_option);
420 #endif
421 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
422 ZEND_FUNCTION(ldap_count_references);
423 #endif
424 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
425 ZEND_FUNCTION(ldap_first_reference);
426 #endif
427 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
428 ZEND_FUNCTION(ldap_next_reference);
429 #endif
430 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP) && defined(HAVE_LDAP_PARSE_REFERENCE)
431 ZEND_FUNCTION(ldap_parse_reference);
432 #endif
433 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP) && defined(HAVE_LDAP_PARSE_RESULT)
434 ZEND_FUNCTION(ldap_parse_result);
435 #endif
436 #if (defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC))
437 ZEND_FUNCTION(ldap_set_rebind_proc);
438 #endif
439 #if defined(HAVE_LDAP_START_TLS_S)
440 ZEND_FUNCTION(ldap_start_tls);
441 #endif
442 ZEND_FUNCTION(ldap_escape);
443 #if defined(STR_TRANSLATION)
444 ZEND_FUNCTION(ldap_t61_to_8859);
445 #endif
446 #if defined(STR_TRANSLATION)
447 ZEND_FUNCTION(ldap_8859_to_t61);
448 #endif
449 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
450 ZEND_FUNCTION(ldap_exop);
451 #endif
452 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
453 ZEND_FUNCTION(ldap_exop_sync);
454 #endif
455 #if defined(HAVE_LDAP_PASSWD)
456 ZEND_FUNCTION(ldap_exop_passwd);
457 #endif
458 #if defined(HAVE_LDAP_WHOAMI_S)
459 ZEND_FUNCTION(ldap_exop_whoami);
460 #endif
461 #if defined(HAVE_LDAP_REFRESH_S)
462 ZEND_FUNCTION(ldap_exop_refresh);
463 #endif
464 #if defined(HAVE_LDAP_PARSE_EXTENDED_RESULT)
465 ZEND_FUNCTION(ldap_parse_exop);
466 #endif
467 
468 
469 static const zend_function_entry ext_functions[] = {
470 #if defined(HAVE_ORALDAP)
471 	ZEND_FE(ldap_connect, arginfo_ldap_connect)
472 #endif
473 #if defined(HAVE_ORALDAP) && defined(LDAP_API_FEATURE_X_OPENLDAP)
474 	ZEND_FE(ldap_connect_wallet, arginfo_ldap_connect_wallet)
475 #endif
476 #if !(defined(HAVE_ORALDAP))
477 	ZEND_FE(ldap_connect, arginfo_ldap_connect)
478 #endif
479 	ZEND_FE(ldap_unbind, arginfo_ldap_unbind)
480 	ZEND_FALIAS(ldap_close, ldap_unbind, arginfo_ldap_close)
481 	ZEND_FE(ldap_bind, arginfo_ldap_bind)
482 	ZEND_FE(ldap_bind_ext, arginfo_ldap_bind_ext)
483 #if defined(HAVE_LDAP_SASL)
484 	ZEND_FE(ldap_sasl_bind, arginfo_ldap_sasl_bind)
485 #endif
486 	ZEND_FE(ldap_read, arginfo_ldap_read)
487 	ZEND_FE(ldap_list, arginfo_ldap_list)
488 	ZEND_FE(ldap_search, arginfo_ldap_search)
489 	ZEND_FE(ldap_free_result, arginfo_ldap_free_result)
490 	ZEND_FE(ldap_count_entries, arginfo_ldap_count_entries)
491 	ZEND_FE(ldap_first_entry, arginfo_ldap_first_entry)
492 	ZEND_FE(ldap_next_entry, arginfo_ldap_next_entry)
493 	ZEND_FE(ldap_get_entries, arginfo_ldap_get_entries)
494 	ZEND_FE(ldap_first_attribute, arginfo_ldap_first_attribute)
495 	ZEND_FE(ldap_next_attribute, arginfo_ldap_next_attribute)
496 	ZEND_FE(ldap_get_attributes, arginfo_ldap_get_attributes)
497 	ZEND_FE(ldap_get_values_len, arginfo_ldap_get_values_len)
498 	ZEND_FALIAS(ldap_get_values, ldap_get_values_len, arginfo_ldap_get_values)
499 	ZEND_FE(ldap_get_dn, arginfo_ldap_get_dn)
500 	ZEND_FE(ldap_explode_dn, arginfo_ldap_explode_dn)
501 	ZEND_FE(ldap_dn2ufn, arginfo_ldap_dn2ufn)
502 	ZEND_FE(ldap_add, arginfo_ldap_add)
503 	ZEND_FE(ldap_add_ext, arginfo_ldap_add_ext)
504 	ZEND_FE(ldap_delete, arginfo_ldap_delete)
505 	ZEND_FE(ldap_delete_ext, arginfo_ldap_delete_ext)
506 	ZEND_FE(ldap_modify_batch, arginfo_ldap_modify_batch)
507 	ZEND_FE(ldap_mod_add, arginfo_ldap_mod_add)
508 	ZEND_FE(ldap_mod_add_ext, arginfo_ldap_mod_add_ext)
509 	ZEND_FE(ldap_mod_replace, arginfo_ldap_mod_replace)
510 	ZEND_FALIAS(ldap_modify, ldap_mod_replace, arginfo_ldap_modify)
511 	ZEND_FE(ldap_mod_replace_ext, arginfo_ldap_mod_replace_ext)
512 	ZEND_FE(ldap_mod_del, arginfo_ldap_mod_del)
513 	ZEND_FE(ldap_mod_del_ext, arginfo_ldap_mod_del_ext)
514 	ZEND_FE(ldap_errno, arginfo_ldap_errno)
515 	ZEND_FE(ldap_error, arginfo_ldap_error)
516 	ZEND_FE(ldap_err2str, arginfo_ldap_err2str)
517 	ZEND_FE(ldap_compare, arginfo_ldap_compare)
518 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
519 	ZEND_FE(ldap_rename, arginfo_ldap_rename)
520 #endif
521 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
522 	ZEND_FE(ldap_rename_ext, arginfo_ldap_rename_ext)
523 #endif
524 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
525 	ZEND_FE(ldap_get_option, arginfo_ldap_get_option)
526 #endif
527 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
528 	ZEND_FE(ldap_set_option, arginfo_ldap_set_option)
529 #endif
530 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
531 	ZEND_FE(ldap_count_references, arginfo_ldap_count_references)
532 #endif
533 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
534 	ZEND_FE(ldap_first_reference, arginfo_ldap_first_reference)
535 #endif
536 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
537 	ZEND_FE(ldap_next_reference, arginfo_ldap_next_reference)
538 #endif
539 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP) && defined(HAVE_LDAP_PARSE_REFERENCE)
540 	ZEND_FE(ldap_parse_reference, arginfo_ldap_parse_reference)
541 #endif
542 #if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP) && defined(HAVE_LDAP_PARSE_RESULT)
543 	ZEND_FE(ldap_parse_result, arginfo_ldap_parse_result)
544 #endif
545 #if (defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC))
546 	ZEND_FE(ldap_set_rebind_proc, arginfo_ldap_set_rebind_proc)
547 #endif
548 #if defined(HAVE_LDAP_START_TLS_S)
549 	ZEND_FE(ldap_start_tls, arginfo_ldap_start_tls)
550 #endif
551 	ZEND_FE(ldap_escape, arginfo_ldap_escape)
552 #if defined(STR_TRANSLATION)
553 	ZEND_FE(ldap_t61_to_8859, arginfo_ldap_t61_to_8859)
554 #endif
555 #if defined(STR_TRANSLATION)
556 	ZEND_FE(ldap_8859_to_t61, arginfo_ldap_8859_to_t61)
557 #endif
558 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
559 	ZEND_FE(ldap_exop, arginfo_ldap_exop)
560 #endif
561 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
562 	ZEND_FE(ldap_exop_sync, arginfo_ldap_exop_sync)
563 #endif
564 #if defined(HAVE_LDAP_PASSWD)
565 	ZEND_FE(ldap_exop_passwd, arginfo_ldap_exop_passwd)
566 #endif
567 #if defined(HAVE_LDAP_WHOAMI_S)
568 	ZEND_FE(ldap_exop_whoami, arginfo_ldap_exop_whoami)
569 #endif
570 #if defined(HAVE_LDAP_REFRESH_S)
571 	ZEND_FE(ldap_exop_refresh, arginfo_ldap_exop_refresh)
572 #endif
573 #if defined(HAVE_LDAP_PARSE_EXTENDED_RESULT)
574 	ZEND_FE(ldap_parse_exop, arginfo_ldap_parse_exop)
575 #endif
576 	ZEND_FE_END
577 };
578 
579 
580 static const zend_function_entry class_LDAP_Connection_methods[] = {
581 	ZEND_FE_END
582 };
583 
584 
585 static const zend_function_entry class_LDAP_Result_methods[] = {
586 	ZEND_FE_END
587 };
588 
589 
590 static const zend_function_entry class_LDAP_ResultEntry_methods[] = {
591 	ZEND_FE_END
592 };
593 
register_ldap_symbols(int module_number)594 static void register_ldap_symbols(int module_number)
595 {
596 	REGISTER_LONG_CONSTANT("LDAP_DEREF_NEVER", LDAP_DEREF_NEVER, CONST_PERSISTENT);
597 	REGISTER_LONG_CONSTANT("LDAP_DEREF_SEARCHING", LDAP_DEREF_SEARCHING, CONST_PERSISTENT);
598 	REGISTER_LONG_CONSTANT("LDAP_DEREF_FINDING", LDAP_DEREF_FINDING, CONST_PERSISTENT);
599 	REGISTER_LONG_CONSTANT("LDAP_DEREF_ALWAYS", LDAP_DEREF_ALWAYS, CONST_PERSISTENT);
600 	REGISTER_LONG_CONSTANT("LDAP_MODIFY_BATCH_ADD", LDAP_MODIFY_BATCH_ADD, CONST_PERSISTENT);
601 	REGISTER_LONG_CONSTANT("LDAP_MODIFY_BATCH_REMOVE", LDAP_MODIFY_BATCH_REMOVE, CONST_PERSISTENT);
602 	REGISTER_LONG_CONSTANT("LDAP_MODIFY_BATCH_REMOVE_ALL", LDAP_MODIFY_BATCH_REMOVE_ALL, CONST_PERSISTENT);
603 	REGISTER_LONG_CONSTANT("LDAP_MODIFY_BATCH_REPLACE", LDAP_MODIFY_BATCH_REPLACE, CONST_PERSISTENT);
604 	REGISTER_STRING_CONSTANT("LDAP_MODIFY_BATCH_ATTRIB", LDAP_MODIFY_BATCH_ATTRIB, CONST_PERSISTENT);
605 	REGISTER_STRING_CONSTANT("LDAP_MODIFY_BATCH_MODTYPE", LDAP_MODIFY_BATCH_MODTYPE, CONST_PERSISTENT);
606 	REGISTER_STRING_CONSTANT("LDAP_MODIFY_BATCH_VALUES", LDAP_MODIFY_BATCH_VALUES, CONST_PERSISTENT);
607 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
608 	REGISTER_LONG_CONSTANT("LDAP_OPT_DEREF", LDAP_OPT_DEREF, CONST_PERSISTENT);
609 #endif
610 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
611 	REGISTER_LONG_CONSTANT("LDAP_OPT_SIZELIMIT", LDAP_OPT_SIZELIMIT, CONST_PERSISTENT);
612 #endif
613 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
614 	REGISTER_LONG_CONSTANT("LDAP_OPT_TIMELIMIT", LDAP_OPT_TIMELIMIT, CONST_PERSISTENT);
615 #endif
616 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)) && defined(LDAP_OPT_NETWORK_TIMEOUT)
617 	REGISTER_LONG_CONSTANT("LDAP_OPT_NETWORK_TIMEOUT", LDAP_OPT_NETWORK_TIMEOUT, CONST_PERSISTENT);
618 #endif
619 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)) && (!defined(LDAP_OPT_NETWORK_TIMEOUT) && defined(LDAP_X_OPT_CONNECT_TIMEOUT))
620 	REGISTER_LONG_CONSTANT("LDAP_OPT_NETWORK_TIMEOUT", LDAP_X_OPT_CONNECT_TIMEOUT, CONST_PERSISTENT);
621 #endif
622 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)) && defined(LDAP_OPT_TIMEOUT)
623 	REGISTER_LONG_CONSTANT("LDAP_OPT_TIMEOUT", LDAP_OPT_TIMEOUT, CONST_PERSISTENT);
624 #endif
625 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
626 	REGISTER_LONG_CONSTANT("LDAP_OPT_PROTOCOL_VERSION", LDAP_OPT_PROTOCOL_VERSION, CONST_PERSISTENT);
627 #endif
628 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
629 	REGISTER_LONG_CONSTANT("LDAP_OPT_ERROR_NUMBER", LDAP_OPT_ERROR_NUMBER, CONST_PERSISTENT);
630 #endif
631 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
632 	REGISTER_LONG_CONSTANT("LDAP_OPT_REFERRALS", LDAP_OPT_REFERRALS, CONST_PERSISTENT);
633 #endif
634 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)) && defined(LDAP_OPT_RESTART)
635 	REGISTER_LONG_CONSTANT("LDAP_OPT_RESTART", LDAP_OPT_RESTART, CONST_PERSISTENT);
636 #endif
637 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)) && defined(LDAP_OPT_HOST_NAME)
638 	REGISTER_LONG_CONSTANT("LDAP_OPT_HOST_NAME", LDAP_OPT_HOST_NAME, CONST_PERSISTENT);
639 #endif
640 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
641 	REGISTER_LONG_CONSTANT("LDAP_OPT_ERROR_STRING", LDAP_OPT_ERROR_STRING, CONST_PERSISTENT);
642 #endif
643 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)) && defined(LDAP_OPT_MATCHED_DN)
644 	REGISTER_LONG_CONSTANT("LDAP_OPT_MATCHED_DN", LDAP_OPT_MATCHED_DN, CONST_PERSISTENT);
645 #endif
646 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
647 	REGISTER_LONG_CONSTANT("LDAP_OPT_SERVER_CONTROLS", LDAP_OPT_SERVER_CONTROLS, CONST_PERSISTENT);
648 #endif
649 #if ((LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP))
650 	REGISTER_LONG_CONSTANT("LDAP_OPT_CLIENT_CONTROLS", LDAP_OPT_CLIENT_CONTROLS, CONST_PERSISTENT);
651 #endif
652 #if defined(LDAP_OPT_DEBUG_LEVEL)
653 	REGISTER_LONG_CONSTANT("LDAP_OPT_DEBUG_LEVEL", LDAP_OPT_DEBUG_LEVEL, CONST_PERSISTENT);
654 #endif
655 #if defined(LDAP_OPT_DIAGNOSTIC_MESSAGE)
656 	REGISTER_LONG_CONSTANT("LDAP_OPT_DIAGNOSTIC_MESSAGE", LDAP_OPT_DIAGNOSTIC_MESSAGE, CONST_PERSISTENT);
657 #endif
658 #if defined(HAVE_LDAP_SASL)
659 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_SASL_MECH", LDAP_OPT_X_SASL_MECH, CONST_PERSISTENT);
660 #endif
661 #if defined(HAVE_LDAP_SASL)
662 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_SASL_REALM", LDAP_OPT_X_SASL_REALM, CONST_PERSISTENT);
663 #endif
664 #if defined(HAVE_LDAP_SASL)
665 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_SASL_AUTHCID", LDAP_OPT_X_SASL_AUTHCID, CONST_PERSISTENT);
666 #endif
667 #if defined(HAVE_LDAP_SASL)
668 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_SASL_AUTHZID", LDAP_OPT_X_SASL_AUTHZID, CONST_PERSISTENT);
669 #endif
670 #if defined(LDAP_OPT_X_SASL_NOCANON)
671 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_SASL_NOCANON", LDAP_OPT_X_SASL_NOCANON, CONST_PERSISTENT);
672 #endif
673 #if defined(LDAP_OPT_X_SASL_USERNAME)
674 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_SASL_USERNAME", LDAP_OPT_X_SASL_USERNAME, CONST_PERSISTENT);
675 #endif
676 #if defined(ORALDAP)
677 	REGISTER_LONG_CONSTANT("GSLC_SSL_NO_AUTH", GSLC_SSL_NO_AUTH, CONST_PERSISTENT);
678 #endif
679 #if defined(ORALDAP)
680 	REGISTER_LONG_CONSTANT("GSLC_SSL_ONEWAY_AUTH", GSLC_SSL_ONEWAY_AUTH, CONST_PERSISTENT);
681 #endif
682 #if defined(ORALDAP)
683 	REGISTER_LONG_CONSTANT("GSLC_SSL_TWOWAY_AUTH", GSLC_SSL_TWOWAY_AUTH, CONST_PERSISTENT);
684 #endif
685 #if (LDAP_API_VERSION > 2000)
686 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_REQUIRE_CERT", LDAP_OPT_X_TLS_REQUIRE_CERT, CONST_PERSISTENT);
687 #endif
688 #if (LDAP_API_VERSION > 2000)
689 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_NEVER", LDAP_OPT_X_TLS_NEVER, CONST_PERSISTENT);
690 #endif
691 #if (LDAP_API_VERSION > 2000)
692 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_HARD", LDAP_OPT_X_TLS_HARD, CONST_PERSISTENT);
693 #endif
694 #if (LDAP_API_VERSION > 2000)
695 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_DEMAND", LDAP_OPT_X_TLS_DEMAND, CONST_PERSISTENT);
696 #endif
697 #if (LDAP_API_VERSION > 2000)
698 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_ALLOW", LDAP_OPT_X_TLS_ALLOW, CONST_PERSISTENT);
699 #endif
700 #if (LDAP_API_VERSION > 2000)
701 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_TRY", LDAP_OPT_X_TLS_TRY, CONST_PERSISTENT);
702 #endif
703 #if (LDAP_API_VERSION > 2000)
704 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CACERTDIR", LDAP_OPT_X_TLS_CACERTDIR, CONST_PERSISTENT);
705 #endif
706 #if (LDAP_API_VERSION > 2000)
707 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CACERTFILE", LDAP_OPT_X_TLS_CACERTFILE, CONST_PERSISTENT);
708 #endif
709 #if (LDAP_API_VERSION > 2000)
710 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CERTFILE", LDAP_OPT_X_TLS_CERTFILE, CONST_PERSISTENT);
711 #endif
712 #if (LDAP_API_VERSION > 2000)
713 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CIPHER_SUITE", LDAP_OPT_X_TLS_CIPHER_SUITE, CONST_PERSISTENT);
714 #endif
715 #if (LDAP_API_VERSION > 2000)
716 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_KEYFILE", LDAP_OPT_X_TLS_KEYFILE, CONST_PERSISTENT);
717 #endif
718 #if (LDAP_API_VERSION > 2000)
719 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_RANDOM_FILE", LDAP_OPT_X_TLS_RANDOM_FILE, CONST_PERSISTENT);
720 #endif
721 #if defined(LDAP_OPT_X_TLS_CRLCHECK)
722 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CRLCHECK", LDAP_OPT_X_TLS_CRLCHECK, CONST_PERSISTENT);
723 #endif
724 #if defined(LDAP_OPT_X_TLS_CRLCHECK)
725 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CRL_NONE", LDAP_OPT_X_TLS_CRL_NONE, CONST_PERSISTENT);
726 #endif
727 #if defined(LDAP_OPT_X_TLS_CRLCHECK)
728 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CRL_PEER", LDAP_OPT_X_TLS_CRL_PEER, CONST_PERSISTENT);
729 #endif
730 #if defined(LDAP_OPT_X_TLS_CRLCHECK)
731 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CRL_ALL", LDAP_OPT_X_TLS_CRL_ALL, CONST_PERSISTENT);
732 #endif
733 #if defined(LDAP_OPT_X_TLS_DHFILE)
734 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_DHFILE", LDAP_OPT_X_TLS_DHFILE, CONST_PERSISTENT);
735 #endif
736 #if defined(LDAP_OPT_X_TLS_CRLFILE)
737 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_CRLFILE", LDAP_OPT_X_TLS_CRLFILE, CONST_PERSISTENT);
738 #endif
739 #if defined(LDAP_OPT_X_TLS_PROTOCOL_MIN)
740 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_PROTOCOL_MIN", LDAP_OPT_X_TLS_PROTOCOL_MIN, CONST_PERSISTENT);
741 #endif
742 #if defined(LDAP_OPT_X_TLS_PROTOCOL_MIN)
743 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_PROTOCOL_SSL2", LDAP_OPT_X_TLS_PROTOCOL_SSL2, CONST_PERSISTENT);
744 #endif
745 #if defined(LDAP_OPT_X_TLS_PROTOCOL_MIN)
746 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_PROTOCOL_SSL3", LDAP_OPT_X_TLS_PROTOCOL_SSL3, CONST_PERSISTENT);
747 #endif
748 #if defined(LDAP_OPT_X_TLS_PROTOCOL_MIN)
749 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_PROTOCOL_TLS1_0", LDAP_OPT_X_TLS_PROTOCOL_TLS1_0, CONST_PERSISTENT);
750 #endif
751 #if defined(LDAP_OPT_X_TLS_PROTOCOL_MIN)
752 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_PROTOCOL_TLS1_1", LDAP_OPT_X_TLS_PROTOCOL_TLS1_1, CONST_PERSISTENT);
753 #endif
754 #if defined(LDAP_OPT_X_TLS_PROTOCOL_MIN)
755 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_PROTOCOL_TLS1_2", LDAP_OPT_X_TLS_PROTOCOL_TLS1_2, CONST_PERSISTENT);
756 #endif
757 #if defined(LDAP_OPT_X_TLS_PACKAGE)
758 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_TLS_PACKAGE", LDAP_OPT_X_TLS_PACKAGE, CONST_PERSISTENT);
759 #endif
760 #if defined(LDAP_OPT_X_KEEPALIVE_IDLE)
761 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_KEEPALIVE_IDLE", LDAP_OPT_X_KEEPALIVE_IDLE, CONST_PERSISTENT);
762 #endif
763 #if defined(LDAP_OPT_X_KEEPALIVE_IDLE)
764 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_KEEPALIVE_PROBES", LDAP_OPT_X_KEEPALIVE_PROBES, CONST_PERSISTENT);
765 #endif
766 #if defined(LDAP_OPT_X_KEEPALIVE_IDLE)
767 	REGISTER_LONG_CONSTANT("LDAP_OPT_X_KEEPALIVE_INTERVAL", LDAP_OPT_X_KEEPALIVE_INTERVAL, CONST_PERSISTENT);
768 #endif
769 	REGISTER_LONG_CONSTANT("LDAP_ESCAPE_FILTER", PHP_LDAP_ESCAPE_FILTER, CONST_PERSISTENT);
770 	REGISTER_LONG_CONSTANT("LDAP_ESCAPE_DN", PHP_LDAP_ESCAPE_DN, CONST_PERSISTENT);
771 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
772 	REGISTER_STRING_CONSTANT("LDAP_EXOP_START_TLS", LDAP_EXOP_START_TLS, CONST_PERSISTENT);
773 #endif
774 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
775 	REGISTER_STRING_CONSTANT("LDAP_EXOP_MODIFY_PASSWD", LDAP_EXOP_MODIFY_PASSWD, CONST_PERSISTENT);
776 #endif
777 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
778 	REGISTER_STRING_CONSTANT("LDAP_EXOP_REFRESH", LDAP_EXOP_REFRESH, CONST_PERSISTENT);
779 #endif
780 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
781 	REGISTER_STRING_CONSTANT("LDAP_EXOP_WHO_AM_I", LDAP_EXOP_WHO_AM_I, CONST_PERSISTENT);
782 #endif
783 #if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
784 	REGISTER_STRING_CONSTANT("LDAP_EXOP_TURN", LDAP_EXOP_TURN, CONST_PERSISTENT);
785 #endif
786 #if defined(LDAP_CONTROL_MANAGEDSAIT)
787 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_MANAGEDSAIT", LDAP_CONTROL_MANAGEDSAIT, CONST_PERSISTENT);
788 #endif
789 #if defined(LDAP_CONTROL_PROXY_AUTHZ)
790 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_PROXY_AUTHZ", LDAP_CONTROL_PROXY_AUTHZ, CONST_PERSISTENT);
791 #endif
792 #if defined(LDAP_CONTROL_SUBENTRIES)
793 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_SUBENTRIES", LDAP_CONTROL_SUBENTRIES, CONST_PERSISTENT);
794 #endif
795 #if defined(LDAP_CONTROL_VALUESRETURNFILTER)
796 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_VALUESRETURNFILTER", LDAP_CONTROL_VALUESRETURNFILTER, CONST_PERSISTENT);
797 #endif
798 #if defined(LDAP_CONTROL_ASSERT)
799 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_ASSERT", LDAP_CONTROL_ASSERT, CONST_PERSISTENT);
800 #endif
801 #if defined(LDAP_CONTROL_ASSERT)
802 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_PRE_READ", LDAP_CONTROL_PRE_READ, CONST_PERSISTENT);
803 #endif
804 #if defined(LDAP_CONTROL_ASSERT)
805 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_POST_READ", LDAP_CONTROL_POST_READ, CONST_PERSISTENT);
806 #endif
807 #if defined(LDAP_CONTROL_SORTREQUEST)
808 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_SORTREQUEST", LDAP_CONTROL_SORTREQUEST, CONST_PERSISTENT);
809 #endif
810 #if defined(LDAP_CONTROL_SORTREQUEST)
811 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_SORTRESPONSE", LDAP_CONTROL_SORTRESPONSE, CONST_PERSISTENT);
812 #endif
813 #if defined(LDAP_CONTROL_PAGEDRESULTS)
814 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_PAGEDRESULTS", LDAP_CONTROL_PAGEDRESULTS, CONST_PERSISTENT);
815 #endif
816 #if defined(LDAP_CONTROL_AUTHZID_REQUEST)
817 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_AUTHZID_REQUEST", LDAP_CONTROL_AUTHZID_REQUEST, CONST_PERSISTENT);
818 #endif
819 #if defined(LDAP_CONTROL_AUTHZID_REQUEST)
820 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_AUTHZID_RESPONSE", LDAP_CONTROL_AUTHZID_RESPONSE, CONST_PERSISTENT);
821 #endif
822 #if defined(LDAP_CONTROL_SYNC)
823 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_SYNC", LDAP_CONTROL_SYNC, CONST_PERSISTENT);
824 #endif
825 #if defined(LDAP_CONTROL_SYNC)
826 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_SYNC_STATE", LDAP_CONTROL_SYNC_STATE, CONST_PERSISTENT);
827 #endif
828 #if defined(LDAP_CONTROL_SYNC)
829 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_SYNC_DONE", LDAP_CONTROL_SYNC_DONE, CONST_PERSISTENT);
830 #endif
831 #if defined(LDAP_CONTROL_DONTUSECOPY)
832 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_DONTUSECOPY", LDAP_CONTROL_DONTUSECOPY, CONST_PERSISTENT);
833 #endif
834 #if defined(LDAP_CONTROL_PASSWORDPOLICYREQUEST)
835 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_PASSWORDPOLICYREQUEST", LDAP_CONTROL_PASSWORDPOLICYREQUEST, CONST_PERSISTENT);
836 #endif
837 #if defined(LDAP_CONTROL_PASSWORDPOLICYREQUEST)
838 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_PASSWORDPOLICYRESPONSE", LDAP_CONTROL_PASSWORDPOLICYRESPONSE, CONST_PERSISTENT);
839 #endif
840 #if defined(LDAP_CONTROL_X_INCREMENTAL_VALUES)
841 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_X_INCREMENTAL_VALUES", LDAP_CONTROL_X_INCREMENTAL_VALUES, CONST_PERSISTENT);
842 #endif
843 #if defined(LDAP_CONTROL_X_INCREMENTAL_VALUES)
844 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_X_DOMAIN_SCOPE", LDAP_CONTROL_X_DOMAIN_SCOPE, CONST_PERSISTENT);
845 #endif
846 #if defined(LDAP_CONTROL_X_INCREMENTAL_VALUES)
847 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_X_PERMISSIVE_MODIFY", LDAP_CONTROL_X_PERMISSIVE_MODIFY, CONST_PERSISTENT);
848 #endif
849 #if defined(LDAP_CONTROL_X_INCREMENTAL_VALUES)
850 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_X_SEARCH_OPTIONS", LDAP_CONTROL_X_SEARCH_OPTIONS, CONST_PERSISTENT);
851 #endif
852 #if defined(LDAP_CONTROL_X_INCREMENTAL_VALUES)
853 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_X_TREE_DELETE", LDAP_CONTROL_X_TREE_DELETE, CONST_PERSISTENT);
854 #endif
855 #if defined(LDAP_CONTROL_X_INCREMENTAL_VALUES)
856 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_X_EXTENDED_DN", LDAP_CONTROL_X_EXTENDED_DN, CONST_PERSISTENT);
857 #endif
858 #if defined(LDAP_CONTROL_VLVREQUEST)
859 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_VLVREQUEST", LDAP_CONTROL_VLVREQUEST, CONST_PERSISTENT);
860 #endif
861 #if defined(LDAP_CONTROL_VLVREQUEST)
862 	REGISTER_STRING_CONSTANT("LDAP_CONTROL_VLVRESPONSE", LDAP_CONTROL_VLVRESPONSE, CONST_PERSISTENT);
863 #endif
864 
865 #if defined(HAVE_ORALDAP)
866 
867 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "ldap_connect", sizeof("ldap_connect") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
868 #endif
869 #if defined(HAVE_ORALDAP) && defined(LDAP_API_FEATURE_X_OPENLDAP)
870 
871 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "ldap_connect_wallet", sizeof("ldap_connect_wallet") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
872 #endif
873 
874 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "ldap_bind", sizeof("ldap_bind") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
875 
876 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "ldap_bind_ext", sizeof("ldap_bind_ext") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
877 #if defined(HAVE_LDAP_SASL)
878 
879 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "ldap_sasl_bind", sizeof("ldap_sasl_bind") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
880 #endif
881 #if defined(HAVE_LDAP_PASSWD)
882 
883 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "ldap_exop_passwd", sizeof("ldap_exop_passwd") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
884 
885 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "ldap_exop_passwd", sizeof("ldap_exop_passwd") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
886 #endif
887 }
888 
register_class_LDAP_Connection(void)889 static zend_class_entry *register_class_LDAP_Connection(void)
890 {
891 	zend_class_entry ce, *class_entry;
892 
893 	INIT_NS_CLASS_ENTRY(ce, "LDAP", "Connection", class_LDAP_Connection_methods);
894 	class_entry = zend_register_internal_class_ex(&ce, NULL);
895 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
896 
897 	return class_entry;
898 }
899 
register_class_LDAP_Result(void)900 static zend_class_entry *register_class_LDAP_Result(void)
901 {
902 	zend_class_entry ce, *class_entry;
903 
904 	INIT_NS_CLASS_ENTRY(ce, "LDAP", "Result", class_LDAP_Result_methods);
905 	class_entry = zend_register_internal_class_ex(&ce, NULL);
906 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
907 
908 	return class_entry;
909 }
910 
register_class_LDAP_ResultEntry(void)911 static zend_class_entry *register_class_LDAP_ResultEntry(void)
912 {
913 	zend_class_entry ce, *class_entry;
914 
915 	INIT_NS_CLASS_ENTRY(ce, "LDAP", "ResultEntry", class_LDAP_ResultEntry_methods);
916 	class_entry = zend_register_internal_class_ex(&ce, NULL);
917 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
918 
919 	return class_entry;
920 }
921