* http://www.php.net/ldap-start-tls
* Check if v3 or newer protocol is used,
* check if ldap_start_tls function is available.
- * Silently ignore setting, if requirements are not satisfied
+ * Silently ignore setting, if these requirements are not satisfied.
+ * Break with error message if somebody tries to start TLS on
+ * ldaps or socket connection.
*/
if($this->starttls &&
!empty($this->protocol) && $this->protocol >= 3 &&
function_exists('ldap_start_tls') ) {
- // make sure that $this->host is not ldaps:// URL.
- if (preg_match("/^ldaps:\/\/.+/i",$this->server)) {
- return $this->set_error("you can't enable starttls on ldaps connection.");
+ // make sure that $this->server is not ldaps:// or ldapi:// URL.
+ if (preg_match("/^ldap[si]:\/\/.+/i",$this->server)) {
+ return $this->set_error("you can't enable starttls on ldaps and ldapi connections.");
}
- // TODO: starttls and ldapi:// tests are needed
// try starting tls
if (! @ldap_start_tls($this->linkid)) {