Index: includes/session.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/session.inc,v retrieving revision 1.28 diff -u -F^f -r1.28 session.inc --- includes/session.inc 7 May 2006 00:08:36 -0000 1.28 +++ includes/session.inc 9 Aug 2006 20:07:08 -0000 @@ -17,17 +17,13 @@ function sess_close() { function sess_read($key) { global $user; - // retrieve data for a $user object - $result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key); - if (!db_num_rows($result)) { - $result = db_query("SELECT u.* FROM {users} u WHERE u.uid = 0"); - } - else { - $result = db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s'", $key); - } - // Build $user object: - $user = db_fetch_object($result); + if (!$user = db_fetch_object(db_query("SELECT u.*, s.* FROM {sessions} s LEFT JOIN {users} u ON s.uid = u.uid WHERE s.sid = '%s'", $key))) { + $user = new stdClass(); + $user->uid = 0; + $user->hostname = $_SERVER['REMOTE_ADDR']; + } + // This is done to unserialize the data member of $user $user = drupal_unpack($user); // Add roles element to $user: