com php-src: Added support of LDAP_OPT_TIMEOUT, fixes #69574: ext/ldap/ldap.c ext/ldap/tests/l dap_get_option_variation.phpt

From: Date: Wed, 09 Sep 2015 16:02:10 +0000
Subject: com php-src: Added support of LDAP_OPT_TIMEOUT, fixes #69574: ext/ldap/ldap.c ext/ldap/tests/l dap_get_option_variation.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-88988@lists.php.net to get a copy of this message
Commit: 059dd18c37d7814da4d496be0c9ab75121536c4b Author: Côme Bernigaud <mcmic@php.net> Wed, 9 Sep 2015 18:02:10 +0200 Parents: 43f6099ce41c0f022e5fae4876927592568c94ed Branches: PHP-5.6 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=059dd18c37d7814da4d496be0c9ab75121536c4b Log: Added support of LDAP_OPT_TIMEOUT, fixes #69574 Bugs: https://bugs.php.net/69574 Changed paths: M ext/ldap/ldap.c M ext/ldap/tests/ldap_get_option_variation.phpt Diff: diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index bc7601f..ab663b1 100644 --- a/ext/ldap/ldap.c +++ b/ext/ldap/ldap.c @@ -191,6 +191,9 @@ PHP_MINIT_FUNCTION(ldap) #elif defined (LDAP_X_OPT_CONNECT_TIMEOUT) REGISTER_LONG_CONSTANT("LDAP_OPT_NETWORK_TIMEOUT", LDAP_X_OPT_CONNECT_TIMEOUT, CONST_PERSISTENT | CONST_CS); #endif +#ifdef LDAP_OPT_TIMEOUT + REGISTER_LONG_CONSTANT("LDAP_OPT_TIMEOUT", LDAP_OPT_TIMEOUT, CONST_PERSISTENT | CONST_CS); +#endif REGISTER_LONG_CONSTANT("LDAP_OPT_PROTOCOL_VERSION", LDAP_OPT_PROTOCOL_VERSION, CONST_PERSISTENT | CONST_CS); REGISTER_LONG_CONSTANT("LDAP_OPT_ERROR_NUMBER", LDAP_OPT_ERROR_NUMBER, CONST_PERSISTENT | CONST_CS); REGISTER_LONG_CONSTANT("LDAP_OPT_REFERRALS", LDAP_OPT_REFERRALS, CONST_PERSISTENT | CONST_CS); @@ -2067,6 +2070,25 @@ PHP_FUNCTION(ldap_get_option) ZVAL_LONG(retval, (timeout / 1000)); } break; #endif +#ifdef LDAP_OPT_TIMEOUT + case LDAP_OPT_TIMEOUT: + { + struct timeval *timeout = NULL; + + if (ldap_get_option(ld->link, LDAP_OPT_TIMEOUT, (void *) &timeout)) { + if (timeout) { + ldap_memfree(timeout); + } + RETURN_FALSE; + } + if (!timeout) { + RETURN_FALSE; + } + zval_dtor(retval); + ZVAL_LONG(retval, timeout->tv_sec); + ldap_memfree(timeout); + } break; +#endif /* options with string value */ case LDAP_OPT_ERROR_STRING: #ifdef LDAP_OPT_HOST_NAME @@ -2170,6 +2192,19 @@ PHP_FUNCTION(ldap_set_option) } } break; #endif +#ifdef LDAP_OPT_TIMEOUT + case LDAP_OPT_TIMEOUT: + { + struct timeval timeout; + + convert_to_long_ex(newval); + timeout.tv_sec = Z_LVAL_PP(newval); + timeout.tv_usec = 0; + if (ldap_set_option(ldap, LDAP_OPT_TIMEOUT, (void *) &timeout)) { + RETURN_FALSE; + } + } break; +#endif /* options with string value */ case LDAP_OPT_ERROR_STRING: #ifdef LDAP_OPT_HOST_NAME diff --git a/ext/ldap/tests/ldap_get_option_variation.phpt b/ext/ldap/tests/ldap_get_option_variation.phpt index da71d89..f83c505 100644 --- a/ext/ldap/tests/ldap_get_option_variation.phpt +++ b/ext/ldap/tests/ldap_get_option_variation.phpt @@ -21,6 +21,7 @@ ldap_set_option($link, LDAP_OPT_DEREF, LDAP_DEREF_NEVER); ldap_set_option($link, LDAP_OPT_SIZELIMIT, 123); ldap_set_option($link, LDAP_OPT_TIMELIMIT, 33); ldap_set_option($link, LDAP_OPT_NETWORK_TIMEOUT, 44); +ldap_set_option($link, LDAP_OPT_TIMEOUT, 55); ldap_set_option($link, LDAP_OPT_REFERRALS, false); ldap_set_option($link, LDAP_OPT_SERVER_CONTROLS, $controls); ldap_set_option($link, LDAP_OPT_CLIENT_CONTROLS, $controls); @@ -35,6 +36,8 @@ var_dump( $option, ldap_get_option($link, LDAP_OPT_NETWORK_TIMEOUT, $option), $option, + ldap_get_option($link, LDAP_OPT_TIMEOUT, $option), + $option, ldap_get_option($link, LDAP_OPT_REFERRALS, $option), $option, ldap_get_option($link, LDAP_OPT_RESTART, $option), @@ -56,6 +59,8 @@ int(33) bool(true) int(44) bool(true) +int(55) +bool(true) int(0) bool(true) int(0)

« previous php.cvs (#88988) next »