/**
* Get a list of the valid session identifiers.
*
* @return array A list of valid session identifiers.
*/
function getSessionIDs()
{
/* Make sure we have a valid database connection. */
$this->_connect();
/* Session timeout, don't rely on garbage collection */
$timeout = time() - ini_get('session.gc_maxlifetime');
$query = sprintf('(SELECT session_id FROM horde_sessionhandler_0) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_1) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_2) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_3) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_4) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_5) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_6) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_7) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_8) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_9) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_a) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_b) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_c) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_d) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_e) UNION ' .
'(SELECT session_id FROM horde_sessionhandler_f)');
/* Log the query at a DEBUG log level. */
Horde::logMessage(sprintf('SQL Query by SessionHandler_mysql::getSessionIDs(): query = "%s"', $query),
__FILE__, __LINE__, PEAR_LOG_DEBUG);
$result = @mysql_query($query, $this->_db);
if (!$result) {
Horde::logMessage('Error getting session IDs: ' . mysql_error($this->_db),
__FILE__, __LINE__, PEAR_LOG_ERR);
return false;
}
$sessions = array();
while ($row = mysql_fetch_row($result))
$sessions[] = $row[0];
return $sessions;
}