From: Jani Taskinen Date: Sat, 6 Oct 2007 01:42:40 +0000 (+0000) Subject: - Added LDAP_OPT_NETWORK_TIMEOUT option for ldap_set_option() to allow setting networ... X-Git-Tag: RELEASE_2_0_0a1~1648 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cffb1afb105b9b91292ad6217f9b8e3695ee186a;p=php - Added LDAP_OPT_NETWORK_TIMEOUT option for ldap_set_option() to allow setting network timeout --- diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index 00a3c3510a..8440000be6 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); @@ -1714,12 +1717,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 @@ -1795,12 +1815,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