Skip to content

Commit 2e85e6d

Browse files
author
Côme Bernigaud
committed
Merge PR about LDAP cleaning by removing deprecated calls
Merge branch 'pull-request/1357' into PHP-5.6 * pull-request/1357: Putting back deprecated symbols for ldap_sort Removed deprecated function calls from ldap module Removed ifdefs of LDAP_API_FEATURE_X_OPENLDAP, fixed a warning
2 parents d7daf81 + 736d840 commit 2e85e6d

File tree

3 files changed

+30
-49
lines changed

3 files changed

+30
-49
lines changed

ext/ldap/config.m4

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ AC_DEFUN([PHP_LDAP_SASL_CHECKS], [
5858
break
5959
fi
6060
done
61-
61+
6262
if test "$LDAP_SASL_DIR"; then
6363
LDAP_SASL_INCDIR=$LDAP_SASL_DIR/include
6464
LDAP_SASL_LIBDIR=$LDAP_SASL_DIR/$PHP_LIBDIR
@@ -71,7 +71,7 @@ AC_DEFUN([PHP_LDAP_SASL_CHECKS], [
7171
else
7272
SASL_LIB="-L$LDAP_SASL_LIBDIR -lsasl2"
7373
fi
74-
74+
7575
PHP_CHECK_LIBRARY(sasl2, sasl_version,
7676
[
7777
PHP_ADD_INCLUDE($LDAP_SASL_INCDIR)
@@ -125,7 +125,7 @@ if test "$PHP_LDAP" != "no"; then
125125
PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
126126

127127
elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME; then
128-
if test -n "$LDAP_PTHREAD"; then
128+
if test -n "$LDAP_PTHREAD"; then
129129
PHP_ADD_LIBRARY($LDAP_PTHREAD)
130130
fi
131131
PHP_ADD_LIBRARY_WITH_PATH(nspr4, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
@@ -138,7 +138,7 @@ if test "$PHP_LDAP" != "no"; then
138138
AC_DEFINE(HAVE_NSLDAP,1,[ ])
139139

140140
elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME; then
141-
if test -n "$LDAP_PTHREAD"; then
141+
if test -n "$LDAP_PTHREAD"; then
142142
PHP_ADD_LIBRARY($LDAP_PTHREAD)
143143
fi
144144
PHP_ADD_LIBRARY_WITH_PATH(nspr3, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
@@ -148,14 +148,14 @@ if test "$PHP_LDAP" != "no"; then
148148
AC_DEFINE(HAVE_NSLDAP,1,[ ])
149149

150150
elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME; then
151-
if test -n "$LDAP_PTHREAD"; then
151+
if test -n "$LDAP_PTHREAD"; then
152152
PHP_ADD_LIBRARY($LDAP_PTHREAD)
153153
fi
154154
PHP_ADD_LIBRARY_WITH_PATH(ldapssl30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
155155
AC_DEFINE(HAVE_NSLDAP,1,[ ])
156156

157157
elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME; then
158-
if test -n "$LDAP_PTHREAD"; then
158+
if test -n "$LDAP_PTHREAD"; then
159159
PHP_ADD_LIBRARY($LDAP_PTHREAD)
160160
fi
161161
PHP_ADD_LIBRARY_WITH_PATH(ldap30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
@@ -187,7 +187,7 @@ if test "$PHP_LDAP" != "no"; then
187187
PHP_ADD_INCLUDE($LDAP_INCDIR)
188188
PHP_SUBST(LDAP_SHARED_LIBADD)
189189
AC_DEFINE(HAVE_LDAP,1,[ ])
190-
190+
191191
dnl Save original values
192192
_SAVE_CPPFLAGS=$CPPFLAGS
193193
_SAVE_LIBS=$LIBS
@@ -205,7 +205,7 @@ if test "$PHP_LDAP" != "no"; then
205205
dnl Solaris 2.8 claims to be 2004 API, but doesn't have
206206
dnl ldap_parse_reference() nor ldap_start_tls_s()
207207
AC_CHECK_FUNCS([ldap_parse_result ldap_parse_reference ldap_start_tls_s])
208-
208+
209209
dnl
210210
dnl SASL check
211211
dnl
@@ -215,12 +215,12 @@ if test "$PHP_LDAP" != "no"; then
215215

216216
dnl
217217
dnl Sanity check
218-
dnl
218+
dnl
219219
AC_CHECK_FUNC(ldap_bind_s, [], [
220-
AC_MSG_ERROR([LDAP build check failed. Please check config.log for more information.])
220+
AC_MSG_ERROR([LDAP build check failed. Please check config.log for more information.])
221221
])
222-
222+
223223
dnl Restore original values
224224
CPPFLAGS=$_SAVE_CPPFLAGS
225225
LIBS=$_SAVE_LIBS
226-
fi
226+
fi

ext/ldap/config.w32

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ if (PHP_LDAP != "no") {
2121
AC_DEFINE('HAVE_LDAP', 1);
2222
AC_DEFINE('HAVE_LDAP_SASL', 1);
2323
AC_DEFINE('HAVE_LDAP_SASL_SASL_H', 1);
24-
AC_DEFINE('LDAP_DEPRECATED', 1);
2524

2625
} else {
2726
WARNING("ldap not enabled; libraries and headers not found");

ext/ldap/ldap.c

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272

7373
typedef struct {
7474
LDAP *link;
75-
#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
75+
#if defined(HAVE_3ARG_SETREBINDPROC)
7676
zval *rebindproc;
7777
#endif
7878
} ldap_linkdata;
@@ -98,7 +98,6 @@ static void _close_ldap_link(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* {{{ */
9898

9999
/* ldap_unbind_s() is deprecated;
100100
* the distinction between ldap_unbind() and ldap_unbind_s() is moot */
101-
#ifdef LDAP_API_FEATURE_X_OPENLDAP
102101
ldap_unbind_ext(ld->link, NULL, NULL);
103102
#ifdef HAVE_3ARG_SETREBINDPROC
104103

@@ -107,9 +106,6 @@ static void _close_ldap_link(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* {{{ */
107106
FREE_ZVAL(ld->rebindproc);
108107
}
109108
#endif
110-
#else /* ! LDAP_API_FEATURE_X_OPENLDAP */
111-
ldap_unbind_s(ld->link);
112-
#endif /* ! LDAP_API_FEATURE_X_OPENLDAP */
113109

114110
efree(ld);
115111
LDAPG(num_links)--;
@@ -310,13 +306,7 @@ PHP_FUNCTION(ldap_connect)
310306
{
311307
char *host = NULL;
312308
int hostlen;
313-
long port =
314-
#ifdef LDAP_API_FEATURE_X_OPENLDAP
315-
LDAP_PORT
316-
#else /* ! LDAP_API_FEATURE_X_OPENLDAP */
317-
389 /* Default port */
318-
#endif /* ! LDAP_API_FEATURE_X_OPENLDAP */
319-
;
309+
long port = LDAP_PORT;
320310
#ifdef HAVE_ORALDAP
321311
char *wallet = NULL, *walletpasswd = NULL;
322312
int walletlen = 0, walletpasswdlen = 0;
@@ -351,7 +341,6 @@ PHP_FUNCTION(ldap_connect)
351341

352342
ld = ecalloc(1, sizeof(ldap_linkdata));
353343

354-
#ifdef LDAP_API_FEATURE_X_OPENLDAP
355344
/* OpenLDAP provides a specific call to detect valid LDAP URIs;
356345
* ldap_init()/ldap_open() is deprecated, use ldap_initialize() instead.
357346
*/
@@ -380,9 +369,6 @@ PHP_FUNCTION(ldap_connect)
380369
RETURN_FALSE;
381370
}
382371
}
383-
#else /* ! LDAP_API_FEATURE_X_OPENLDAP */
384-
ldap = ldap_open(host, port);
385-
#endif /* ! LDAP_API_FEATURE_X_OPENLDAP */
386372

387373
if (ldap == NULL) {
388374
efree(ld);
@@ -470,7 +456,6 @@ PHP_FUNCTION(ldap_bind)
470456
RETURN_FALSE;
471457
}
472458

473-
#ifdef LDAP_API_FEATURE_X_OPENLDAP
474459
{
475460
struct berval cred;
476461

@@ -481,9 +466,6 @@ PHP_FUNCTION(ldap_bind)
481466
NULL, NULL, /* no controls right now */
482467
NULL); /* we don't care about the server's credentials */
483468
}
484-
#else
485-
rc = ldap_bind_s(ld->link, ldap_bind_dn, ldap_bind_pw, LDAP_AUTH_SIMPLE);
486-
#endif
487469
if ( rc != LDAP_SUCCESS) {
488470
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to bind to server: %s", ldap_err2string(rc));
489471
RETURN_FALSE;
@@ -801,7 +783,7 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
801783
php_set_opts(ld->link, ldap_sizelimit, ldap_timelimit, ldap_deref, &old_ldap_sizelimit, &old_ldap_timelimit, &old_ldap_deref);
802784

803785
/* Run the actual search */
804-
rcs[i] = ldap_search(ld->link, ldap_base_dn, scope, ldap_filter, ldap_attrs, ldap_attrsonly);
786+
ldap_search_ext(ld->link, ldap_base_dn, scope, ldap_filter, ldap_attrs, ldap_attrsonly, NULL, NULL, NULL, ldap_sizelimit, &rcs[i]);
805787
lds[i] = ld;
806788
zend_hash_move_forward(Z_ARRVAL_P(link));
807789
}
@@ -843,7 +825,7 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
843825
php_set_opts(ld->link, ldap_sizelimit, ldap_timelimit, ldap_deref, &old_ldap_sizelimit, &old_ldap_timelimit, &old_ldap_deref);
844826

845827
/* Run the actual search */
846-
errno = ldap_search_s(ld->link, ldap_base_dn, scope, ldap_filter, ldap_attrs, ldap_attrsonly, &ldap_res);
828+
errno = ldap_search_ext_s(ld->link, ldap_base_dn, scope, ldap_filter, ldap_attrs, ldap_attrsonly, NULL, NULL, NULL, ldap_sizelimit, &ldap_res);
847829

848830
if (errno != LDAP_SUCCESS
849831
&& errno != LDAP_SIZELIMIT_EXCEEDED
@@ -1314,12 +1296,8 @@ PHP_FUNCTION(ldap_explode_dn)
13141296
add_index_string(return_value, i, ldap_value[i], 1);
13151297
}
13161298

1317-
#ifdef LDAP_API_FEATURE_X_OPENLDAP
13181299
/* ldap_value_free() is deprecated */
1319-
ber_memvfree((void **)ldap_value);
1320-
#else /* ! LDAP_API_FEATURE_X_OPENLDAP */
1321-
ldap_value_free(ldap_value);
1322-
#endif /* ! LDAP_API_FEATURE_X_OPENLDAP */
1300+
ldap_memvfree((void **)ldap_value);
13231301
}
13241302
/* }}} */
13251303

@@ -1443,7 +1421,7 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper)
14431421

14441422
/* check flag to see if do_mod was called to perform full add , gerrit thomson */
14451423
if (is_full_add == 1) {
1446-
if ((i = ldap_add_s(ld->link, dn, ldap_mods)) != LDAP_SUCCESS) {
1424+
if ((i = ldap_add_ext_s(ld->link, dn, ldap_mods, NULL, NULL)) != LDAP_SUCCESS) {
14471425
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Add: %s", ldap_err2string(i));
14481426
RETVAL_FALSE;
14491427
} else RETVAL_TRUE;
@@ -1520,7 +1498,7 @@ PHP_FUNCTION(ldap_delete)
15201498

15211499
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link);
15221500

1523-
if ((rc = ldap_delete_s(ld->link, dn)) != LDAP_SUCCESS) {
1501+
if ((rc = ldap_delete_ext_s(ld->link, dn, NULL, NULL)) != LDAP_SUCCESS) {
15241502
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Delete: %s", ldap_err2string(rc));
15251503
RETURN_FALSE;
15261504
}
@@ -1943,9 +1921,13 @@ PHP_FUNCTION(ldap_compare)
19431921
return;
19441922
}
19451923

1924+
struct berval lvalue;
1925+
lvalue.bv_val = value;
1926+
lvalue.bv_len = value_len;
1927+
19461928
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link);
19471929

1948-
errno = ldap_compare_s(ld->link, dn, attr, value);
1930+
errno = ldap_compare_ext_s(ld->link, dn, attr, &lvalue, NULL, NULL);
19491931

19501932
switch (errno) {
19511933
case LDAP_COMPARE_TRUE:
@@ -2310,7 +2292,7 @@ PHP_FUNCTION(ldap_parse_result)
23102292
add_next_index_string(referrals, *refp, 1);
23112293
refp++;
23122294
}
2313-
ldap_value_free(lreferrals);
2295+
ldap_memvfree((void**)lreferrals);
23142296
}
23152297
case 5:
23162298
zval_dtor(errmsg);
@@ -2421,7 +2403,7 @@ PHP_FUNCTION(ldap_parse_reference)
24212403
add_next_index_string(referrals, *refp, 1);
24222404
refp++;
24232405
}
2424-
ldap_value_free(lreferrals);
2406+
ldap_memvfree((void**)lreferrals);
24252407
}
24262408
RETURN_TRUE;
24272409
}
@@ -2495,7 +2477,7 @@ PHP_FUNCTION(ldap_start_tls)
24952477
#endif
24962478
#endif /* (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP */
24972479

2498-
#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
2480+
#if defined(HAVE_3ARG_SETREBINDPROC)
24992481
/* {{{ _ldap_rebind_proc()
25002482
*/
25012483
int _ldap_rebind_proc(LDAP *ldap, const char *url, ber_tag_t req, ber_int_t msgid, void *params)
@@ -2847,7 +2829,7 @@ PHP_FUNCTION(ldap_control_paged_result_response)
28472829
RETURN_FALSE;
28482830
}
28492831

2850-
lctrl = ldap_find_control(LDAP_CONTROL_PAGEDRESULTS, lserverctrls);
2832+
lctrl = ldap_control_find(LDAP_CONTROL_PAGEDRESULTS, lserverctrls, NULL);
28512833
if (lctrl == NULL) {
28522834
ldap_controls_free(lserverctrls);
28532835
php_error_docref(NULL TSRMLS_CC, E_WARNING, "No paged results control response in result");
@@ -3148,7 +3130,7 @@ ZEND_END_ARG_INFO()
31483130
#endif
31493131
#endif
31503132

3151-
#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
3133+
#if defined(HAVE_3ARG_SETREBINDPROC)
31523134
ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_set_rebind_proc, 0, 0, 2)
31533135
ZEND_ARG_INFO(0, link)
31543136
ZEND_ARG_INFO(0, callback)
@@ -3236,7 +3218,7 @@ const zend_function_entry ldap_functions[] = {
32363218
#endif
32373219
#endif
32383220

3239-
#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
3221+
#if defined(HAVE_3ARG_SETREBINDPROC)
32403222
PHP_FE(ldap_set_rebind_proc, arginfo_ldap_set_rebind_proc)
32413223
#endif
32423224

0 commit comments

Comments
 (0)