-
- if(!@ldap_bind($this->linkid)) {
- if(function_exists('ldap_error')) {
- return $this->set_error(ldap_error($this->linkid));
- } else {
- return $this->set_error('ldap_bind failed');
- }
+
+ if(!empty($this->protocol)) {
+ if(!@ldap_set_option($this->linkid, LDAP_OPT_PROTOCOL_VERSION, $this->protocol)) {
+ if(function_exists('ldap_error')) {
+ return $this->set_error(ldap_error($this->linkid));
+ } else {
+ return $this->set_error('ldap_set_option failed');
+ }
+ }
+ }
+
+ if(!empty($this->binddn)) {
+ if(!@ldap_bind($this->linkid, $this->binddn, $this->bindpw)) {
+ if(function_exists('ldap_error')) {
+ return $this->set_error(ldap_error($this->linkid));
+ } else {
+ return $this->set_error('authenticated ldap_bind failed');
+ }
+ }
+ } else {
+ if(!@ldap_bind($this->linkid)) {
+ if(function_exists('ldap_error')) {
+ return $this->set_error(ldap_error($this->linkid));
+ } else {
+ return $this->set_error('anonymous ldap_bind failed');
+ }
+ }