- Patch #78732 by webchick et al: made Drupal sessions work with sha1 session ids.

5.x
Dries Buytaert 2006-11-07 22:27:07 +00:00
parent c400b47510
commit 342f95d451
2 changed files with 23 additions and 4 deletions

View File

@ -10,7 +10,7 @@ function statistics_install() {
case 'mysqli':
db_query("CREATE TABLE {accesslog} (
aid int NOT NULL auto_increment,
sid varchar(32) NOT NULL default '',
sid varchar(64) NOT NULL default '',
title varchar(255) default NULL,
path varchar(255) default NULL,
url varchar(255) default NULL,
@ -25,7 +25,7 @@ function statistics_install() {
case 'pgsql':
db_query("CREATE TABLE {accesslog} (
aid serial,
sid varchar(32) NOT NULL default '',
sid varchar(64) NOT NULL default '',
title varchar(255) default NULL,
path varchar(255) default NULL,
url varchar(255) default NULL,
@ -40,6 +40,25 @@ function statistics_install() {
}
}
/**
* Changes session ID field to VARCHAR(64) to add support for SHA-1 hashes.
*/
function statistics_update_1000() {
$ret = array();
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("ALTER TABLE {accesslog} CHANGE COLUMN sid sid varchar(64) NOT NULL default ''");
break;
case 'pgsql':
db_change_column($ret, 'accesslog', 'sid', 'sid', 'varchar(64)', array('not null' => TRUE, 'default' => "''"));
break;
}
return $ret;
}
/**
* Implementation of hook_uninstall().
*/

View File

@ -3361,10 +3361,10 @@ function system_update_1013() {
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql('ALTER TABLE {sessions} CHANGE COLUMN sid sid varchar(64)');
$ret[] = update_sql("ALTER TABLE {sessions} CHANGE COLUMN sid sid varchar(64) NOT NULL default ''");
break;
case 'pgsql':
$ret[] = update_sql('ALTER TABLE {sessions} ALTER COLUMN sid TYPE varchar(64)');
db_change_column($ret, 'sessions', 'sid', 'sid', 'varchar(64)', array('not null' => TRUE, 'default' => "''"));
break;
}
return $ret;