Skip to content

Commit bb4c0c0

Browse files
committed
Merge branch 'PHP-5.6'
2 parents a8368dd + 059dd18 commit bb4c0c0

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

ext/ldap/ldap.c

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,9 @@ PHP_MINIT_FUNCTION(ldap)
186186
REGISTER_LONG_CONSTANT("LDAP_OPT_NETWORK_TIMEOUT", LDAP_OPT_NETWORK_TIMEOUT, CONST_PERSISTENT | CONST_CS);
187187
#elif defined (LDAP_X_OPT_CONNECT_TIMEOUT)
188188
REGISTER_LONG_CONSTANT("LDAP_OPT_NETWORK_TIMEOUT", LDAP_X_OPT_CONNECT_TIMEOUT, CONST_PERSISTENT | CONST_CS);
189+
#endif
190+
#ifdef LDAP_OPT_TIMEOUT
191+
REGISTER_LONG_CONSTANT("LDAP_OPT_TIMEOUT", LDAP_OPT_TIMEOUT, CONST_PERSISTENT | CONST_CS);
189192
#endif
190193
REGISTER_LONG_CONSTANT("LDAP_OPT_PROTOCOL_VERSION", LDAP_OPT_PROTOCOL_VERSION, CONST_PERSISTENT | CONST_CS);
191194
REGISTER_LONG_CONSTANT("LDAP_OPT_ERROR_NUMBER", LDAP_OPT_ERROR_NUMBER, CONST_PERSISTENT | CONST_CS);
@@ -2118,6 +2121,25 @@ PHP_FUNCTION(ldap_get_option)
21182121
zval_ptr_dtor(retval);
21192122
ZVAL_LONG(retval, (timeout / 1000));
21202123
} break;
2124+
#endif
2125+
#ifdef LDAP_OPT_TIMEOUT
2126+
case LDAP_OPT_TIMEOUT:
2127+
{
2128+
struct timeval *timeout = NULL;
2129+
2130+
if (ldap_get_option(ld->link, LDAP_OPT_TIMEOUT, (void *) &timeout)) {
2131+
if (timeout) {
2132+
ldap_memfree(timeout);
2133+
}
2134+
RETURN_FALSE;
2135+
}
2136+
if (!timeout) {
2137+
RETURN_FALSE;
2138+
}
2139+
zval_dtor(retval);
2140+
ZVAL_LONG(retval, timeout->tv_sec);
2141+
ldap_memfree(timeout);
2142+
} break;
21212143
#endif
21222144
/* options with string value */
21232145
case LDAP_OPT_ERROR_STRING:
@@ -2223,6 +2245,19 @@ PHP_FUNCTION(ldap_set_option)
22232245
RETURN_FALSE;
22242246
}
22252247
} break;
2248+
#endif
2249+
#ifdef LDAP_OPT_TIMEOUT
2250+
case LDAP_OPT_TIMEOUT:
2251+
{
2252+
struct timeval timeout;
2253+
2254+
convert_to_long_ex(newval);
2255+
timeout.tv_sec = Z_LVAL_PP(newval);
2256+
timeout.tv_usec = 0;
2257+
if (ldap_set_option(ldap, LDAP_OPT_TIMEOUT, (void *) &timeout)) {
2258+
RETURN_FALSE;
2259+
}
2260+
} break;
22262261
#endif
22272262
/* options with string value */
22282263
case LDAP_OPT_ERROR_STRING:

ext/ldap/tests/ldap_get_option_variation.phpt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ ldap_set_option($link, LDAP_OPT_DEREF, LDAP_DEREF_NEVER);
2121
ldap_set_option($link, LDAP_OPT_SIZELIMIT, 123);
2222
ldap_set_option($link, LDAP_OPT_TIMELIMIT, 33);
2323
ldap_set_option($link, LDAP_OPT_NETWORK_TIMEOUT, 44);
24+
ldap_set_option($link, LDAP_OPT_TIMEOUT, 55);
2425
ldap_set_option($link, LDAP_OPT_REFERRALS, false);
2526
ldap_set_option($link, LDAP_OPT_SERVER_CONTROLS, $controls);
2627
ldap_set_option($link, LDAP_OPT_CLIENT_CONTROLS, $controls);
@@ -35,6 +36,8 @@ var_dump(
3536
$option,
3637
ldap_get_option($link, LDAP_OPT_NETWORK_TIMEOUT, $option),
3738
$option,
39+
ldap_get_option($link, LDAP_OPT_TIMEOUT, $option),
40+
$option,
3841
ldap_get_option($link, LDAP_OPT_REFERRALS, $option),
3942
$option,
4043
ldap_get_option($link, LDAP_OPT_RESTART, $option),
@@ -56,6 +59,8 @@ int(33)
5659
bool(true)
5760
int(44)
5861
bool(true)
62+
int(55)
63+
bool(true)
5964
int(0)
6065
bool(true)
6166
int(0)

0 commit comments

Comments
 (0)