diff options
author | Jani Taskinen <jani@php.net> | 2007-10-06 01:43:26 +0000 |
---|---|---|
committer | Jani Taskinen <jani@php.net> | 2007-10-06 01:43:26 +0000 |
commit | d473e198f574554d8d4f7170c83630602f087246 (patch) | |
tree | 69be84aa52df4d613633f95da122f18a9fe81cff | |
parent | 8b9b553aa264d3c0afe611f49499e787004983c7 (diff) | |
download | php-git-d473e198f574554d8d4f7170c83630602f087246.tar.gz |
MFH: - Added LDAP_OPT_NETWORK_TIMEOUT option for ldap_set_option() to allow setting network timeout (FR#42837)
-rw-r--r-- | ext/ldap/ldap.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index 9e7a7759b4..b71efd6d60 100644 --- a/ext/ldap/ldap.c +++ b/ext/ldap/ldap.c @@ -258,6 +258,9 @@ PHP_MINIT_FUNCTION(ldap) REGISTER_LONG_CONSTANT("LDAP_OPT_DEREF", LDAP_OPT_DEREF, CONST_PERSISTENT | CONST_CS); REGISTER_LONG_CONSTANT("LDAP_OPT_SIZELIMIT", LDAP_OPT_SIZELIMIT, CONST_PERSISTENT | CONST_CS); REGISTER_LONG_CONSTANT("LDAP_OPT_TIMELIMIT", LDAP_OPT_TIMELIMIT, CONST_PERSISTENT | CONST_CS); +#ifdef LDAP_OPT_NETWORK_TIMEOUT + REGISTER_LONG_CONSTANT("LDAP_OPT_NETWORK_TIMEOUT", LDAP_OPT_NETWORK_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); @@ -1716,12 +1719,29 @@ PHP_FUNCTION(ldap_get_option) #endif { int val; + if (ldap_get_option(ld->link, opt, &val)) { RETURN_FALSE; } zval_dtor(*retval); ZVAL_LONG(*retval, val); } break; +#ifdef LDAP_OPT_NETWORK_TIMEOUT + case LDAP_OPT_NETWORK_TIMEOUT: + { + struct timeval *timeout; + + if (ldap_get_option(ld->link, opt, (void *) &timeout)) { + if (timeout) { + ldap_memfree(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 @@ -1797,12 +1817,26 @@ PHP_FUNCTION(ldap_set_option) #endif { int val; + convert_to_long_ex(newval); val = Z_LVAL_PP(newval); if (ldap_set_option(ldap, opt, &val)) { RETURN_FALSE; } } break; +#ifdef LDAP_OPT_NETWORK_TIMEOUT + case LDAP_OPT_NETWORK_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, opt, (void *) &timeout)) { + RETURN_FALSE; + } + } break; +#endif /* options with string value */ case LDAP_OPT_ERROR_STRING: #ifdef LDAP_OPT_HOST_NAME |