aboutsummaryrefslogtreecommitdiff
path: root/src/binlog.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2014-05-29 13:22:59 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2014-05-29 17:04:56 +0300
commit2035536f831b0ce54c28c2a0b405febb113e0fab (patch)
tree2408086b3eae646006a39e0b78892e2838cb2f35 /src/binlog.c
parent35e2816614ab2a1aa585b1ae2547683a69ed9d22 (diff)
downloadvmod-binlog-2035536f831b0ce54c28c2a0b405febb113e0fab.tar.gz
vmod-binlog-2035536f831b0ce54c28c2a0b405febb113e0fab.tar.bz2
Further thread-safety fixes.
* NEWS: Version 1.0.90 * configure.ac: Likewise. * src/binlog.c (binlog_env) <inst_head>: New member. (binlog_env_init): Initialize inst_head and use it instead of conf->inst_head. (env_free): Free inst_head. * src/pack.c (packdup): New function. * src/pack.h (packdup): New proto.
Diffstat (limited to 'src/binlog.c')
-rw-r--r--src/binlog.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/binlog.c b/src/binlog.c
index 4c3f40e..45299f2 100644
--- a/src/binlog.c
+++ b/src/binlog.c
@@ -1,3 +1,3 @@
/* This file is part of vmod-binlog
- Copyright (C) 2013 Sergey Poznyakoff
+ Copyright (C) 2013, 2014 Sergey Poznyakoff
@@ -74,2 +74,3 @@ struct binlog_env {
time_t timestamp; /* timestamp for the entry being built */
+ struct packinst *inst_head; /* compiled format */
struct packinst *inst_cur; /* current instruction */
@@ -123,3 +124,5 @@ binlog_env_init(struct binlog_env *ep, struct binlog_config *conf, time_t ts)
if (!ep->env) {
- ep->env = packenv_create(packsize(conf->inst_head));
+ ep->inst_head = packdup(conf->inst_head);
+ AN(ep->inst_head);
+ ep->env = packenv_create(packsize(ep->inst_head));
AN(ep->env);
@@ -128,3 +131,3 @@ binlog_env_init(struct binlog_env *ep, struct binlog_config *conf, time_t ts)
ep->state = state_start;
- ep->inst_cur = packinit(conf->inst_head);
+ ep->inst_cur = packinit(ep->inst_head);
ep->timestamp = ts;
@@ -249,2 +252,3 @@ env_free(void *f)
struct binlog_env *ep = f;
+ packfree(ep->inst_head);
packenv_free(ep->env);

Return to:

Send suggestions and report system problems to the System administrator.