--- session.inc 2005-04-02 02:15:39.000000000 +0200 +++ session.inc 2005-04-02 02:24:20.000000000 +0200 @@ -24,12 +24,15 @@ function sess_read($key) { $result = db_query_range("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s' AND u.status < 3", $key, 0, 1); - if (!db_num_rows($result)) { + if (($user = db_fetch_object($result)) && $user->hostname != $_SERVER['REMOTE_ADDR']) { + sess_destroy($key); + unset($user); + } + if (!$user) { db_query("INSERT INTO {sessions} (sid, uid, hostname, timestamp) VALUES ('%s', 0, '%s', %d)", $key, $_SERVER["REMOTE_ADDR"], time()); - $result = db_query("SELECT u.* FROM {users} u WHERE u.uid = 0"); + $user = db_fetch_object(db_query("SELECT u.* FROM {users} u WHERE u.uid = 0")); } - $user = db_fetch_object($result); $user = drupal_unpack($user); $user->roles = array();