jani Sat Oct 6 01:43:26 2007 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/ldap ldap.c
Log:
MFH: - Added LDAP_OPT_NETWORK_TIMEOUT option for ldap_set_option() to allow
setting network timeout (FR#42837)
http://cvs.php.net/viewvc.cgi/php-src/ext/ldap/ldap.c?r1=1.161.2.3.2.11.2.1&r2=1.161.2.3.2.11.2.2&diff_format=u
Index: php-src/ext/ldap/ldap.c
diff -u php-src/ext/ldap/ldap.c:1.161.2.3.2.11.2.1
php-src/ext/ldap/ldap.c:1.161.2.3.2.11.2.2
--- php-src/ext/ldap/ldap.c:1.161.2.3.2.11.2.1 Thu Sep 27 18:00:39 2007
+++ php-src/ext/ldap/ldap.c Sat Oct 6 01:43:26 2007
@@ -23,7 +23,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ldap.c,v 1.161.2.3.2.11.2.1 2007/09/27 18:00:39 dmitry Exp $ */
+/* $Id: ldap.c,v 1.161.2.3.2.11.2.2 2007/10/06 01:43:26 jani Exp $ */
#define IS_EXT_MODULE
#ifdef HAVE_CONFIG_H
@@ -258,6 +258,9 @@
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);
@@ -322,7 +325,7 @@
php_info_print_table_start();
php_info_print_table_row(2, "LDAP Support", "enabled");
- php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v
1.161.2.3.2.11.2.1 2007/09/27 18:00:39 dmitry Exp $");
+ php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v
1.161.2.3.2.11.2.2 2007/10/06 01:43:26 jani Exp $");
if (LDAPG(max_links) == -1) {
snprintf(tmp, 31, "%ld/unlimited", LDAPG(num_links));
@@ -1716,12 +1719,29 @@
#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 @@
#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
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php