/** * Get the RootDSE LdapObject while accounting for the state of the connection. * * @return \LdapTools\Object\LdapObject * @throws LdapConnectionException */ public function get() { $anonymous = !$this->connection->isBound(); try { $rootDse = self::doLdapQuery($anonymous); } catch (\Exception $e) { throw new LdapConnectionException(sprintf('Unable to query the RootDSE. %s', $e->getMessage())); } finally { // Make sure to set things back to how they were... if ($anonymous && $this->connection->isBound()) { $this->connection->close(); } } return $rootDse; }