From 89658f6d6c0cea83f62109ad15f93df89873e499 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Thu, 15 May 2008 09:26:47 +0000 Subject: [PATCH] static leases use 0, not NULL timeout fixed static leases --- src/charon/plugins/sql/mysql.sql | 2 +- src/charon/plugins/sql/sql_attribute.c | 4 ++-- src/charon/plugins/sql/sqlite.sql | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/charon/plugins/sql/mysql.sql b/src/charon/plugins/sql/mysql.sql index 3624abd33..f98fe71e2 100644 --- a/src/charon/plugins/sql/mysql.sql +++ b/src/charon/plugins/sql/mysql.sql @@ -158,7 +158,7 @@ CREATE TABLE pools ( `start` varbinary(16) NOT NULL, `end` varbinary(16) NOT NULL, `next` varbinary(16) NOT NULL, - `timeout` int(10) unsigned DEFAULT NULL, + `timeout` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), UNIQUE (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; diff --git a/src/charon/plugins/sql/sql_attribute.c b/src/charon/plugins/sql/sql_attribute.c index 2007d94ab..c5a9e05f1 100644 --- a/src/charon/plugins/sql/sql_attribute.c +++ b/src/charon/plugins/sql/sql_attribute.c @@ -95,7 +95,7 @@ static host_t* get_lease(private_sql_attribute_t *this, "JOIN pools AS p ON l.pool = p.id " "JOIN identities AS i ON l.identity = i.id " "WHERE p.name = ? AND i.type = ? AND i.data = ? " - "AND (l.released IS NULL OR p.timeout IS NULL " + "AND (l.released IS NULL OR p.timeout = 0 " " OR (l.released >= (? - p.timeout))) " "ORDER BY l.acquired LIMIT 1", DB_TEXT, name, DB_INT, id->get_type(id), DB_BLOB, id->get_encoding(id), @@ -146,7 +146,7 @@ static host_t* create_lease(private_sql_attribute_t *this, e = this->db->query(this->db, "SELECT pool, address, released, timeout FROM leases " "JOIN pools ON leases.pool = pools.id " - "WHERE name = ? " + "WHERE name = ? and timeout > 0 " "GROUP BY address HAVING COUNT(released) = COUNT(*) " "AND MAX(released) < (? - timeout) LIMIT 1", DB_TEXT, name, DB_UINT, time(NULL), diff --git a/src/charon/plugins/sql/sqlite.sql b/src/charon/plugins/sql/sqlite.sql index 760cf1b04..49d350129 100644 --- a/src/charon/plugins/sql/sqlite.sql +++ b/src/charon/plugins/sql/sqlite.sql @@ -159,7 +159,7 @@ CREATE TABLE pools ( start BLOB NOT NULL, end BLOB NOT NULL, next BLOB NOT NULL, - timeout INTEGER DEFAULT NULL, + timeout INTEGER NOT NULL, UNIQUE (name) ); DROP INDEX IF EXISTS pools_name;