summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/ldap/ldap.c7
-rw-r--r--ext/ldap/tests/ldap_connect_variation.phpt5
2 files changed, 11 insertions, 1 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c
index da8936cd76..8b66ba44ca 100644
--- a/ext/ldap/ldap.c
+++ b/ext/ldap/ldap.c
@@ -372,7 +372,12 @@ PHP_FUNCTION(ldap_connect)
}
url = emalloc(urllen);
- snprintf( url, urllen, "ldap://%s:%ld", host ? host : "", port );
+ if (host && (strchr(host, ':') != NULL)) {
+ /* Legacy support for host:port */
+ snprintf( url, urllen, "ldap://%s", host );
+ } else {
+ snprintf( url, urllen, "ldap://%s:%ld", host ? host : "", port );
+ }
}
#ifdef LDAP_API_FEATURE_X_OPENLDAP
diff --git a/ext/ldap/tests/ldap_connect_variation.phpt b/ext/ldap/tests/ldap_connect_variation.phpt
index 09b07e7786..eaee261542 100644
--- a/ext/ldap/tests/ldap_connect_variation.phpt
+++ b/ext/ldap/tests/ldap_connect_variation.phpt
@@ -28,6 +28,10 @@ var_dump($link);
// bad hostname (connect should work, not bind)
$link = ldap_connect("nonexistent" . $host);
var_dump($link);
+
+// Legacy host:port syntax
+$link = ldap_connect("$host:$port");
+var_dump($link);
?>
===DONE===
--EXPECTF--
@@ -36,4 +40,5 @@ resource(%d) of type (ldap link)
resource(%d) of type (ldap link)
resource(%d) of type (ldap link)
resource(%d) of type (ldap link)
+resource(%d) of type (ldap link)
===DONE===