/**
* 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;
}