aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/sql/sql_logger.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/plugins/sql/sql_logger.c')
-rw-r--r--src/libcharon/plugins/sql/sql_logger.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/libcharon/plugins/sql/sql_logger.c b/src/libcharon/plugins/sql/sql_logger.c
index e693bac48..e7267b875 100644
--- a/src/libcharon/plugins/sql/sql_logger.c
+++ b/src/libcharon/plugins/sql/sql_logger.c
@@ -50,7 +50,7 @@ struct private_sql_logger_t {
METHOD(logger_t, log_, void,
private_sql_logger_t *this, debug_t group, level_t level, int thread,
- ike_sa_t* ike_sa, char *format, va_list args)
+ ike_sa_t* ike_sa, char *message)
{
if (this->recursive->get(this->recursive))
{
@@ -58,9 +58,8 @@ METHOD(logger_t, log_, void,
}
this->recursive->set(this->recursive, this->recursive);
- if (ike_sa && level <= this->level)
+ if (ike_sa)
{
- char buffer[8192];
chunk_t local_spi, remote_spi;
host_t *local_host, *remote_host;
identification_t *local_id, *remote_id;
@@ -86,8 +85,6 @@ METHOD(logger_t, log_, void,
local_host = ike_sa->get_my_host(ike_sa);
remote_host = ike_sa->get_other_host(ike_sa);
- vsnprintf(buffer, sizeof(buffer), format, args);
-
this->db->execute(this->db, NULL, "REPLACE INTO ike_sas ("
"local_spi, remote_spi, id, initiator, "
"local_id_type, local_id_data, "
@@ -107,11 +104,18 @@ METHOD(logger_t, log_, void,
this->db->execute(this->db, NULL, "INSERT INTO logs ("
"local_spi, signal, level, msg) VALUES (?, ?, ?, ?)",
DB_BLOB, local_spi, DB_INT, group, DB_INT, level,
- DB_TEXT, buffer);
+ DB_TEXT, message);
}
+
this->recursive->set(this->recursive, NULL);
}
+METHOD(logger_t, get_level, level_t,
+ private_sql_logger_t *this, debug_t group)
+{
+ return this->level;
+}
+
METHOD(sql_logger_t, destroy, void,
private_sql_logger_t *this)
{
@@ -129,6 +133,7 @@ sql_logger_t *sql_logger_create(database_t *db)
.public = {
.logger = {
.log = _log_,
+ .get_level = _get_level,
},
.destroy = _destroy,
},