Skip to content

Commit

Permalink
nsq: add db_table_lock_type
Browse files Browse the repository at this point in the history
  • Loading branch information
Emmanuel Schmidbauer committed Nov 29, 2016
1 parent 1d1d224 commit 17fadef
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 1 deletion.
19 changes: 19 additions & 0 deletions modules/nsq/doc/nsq_admin.xml
Expand Up @@ -437,6 +437,25 @@ modparam("nsq", "db_url", "&defaultdb;")
...
modparam("nsq", "presentity_table", "my_presentity_table")
...
</programlisting>
</example>
</section>

<section>
<title><varname>db_table_lock_type</varname>(int)</title>
<para>
Enable (=1) or disable (=0) the locks for table during a
transaction.
</para>
<para>
<emphasis>Default value is <quote>1</quote>.</emphasis>
</para>
<example>
<title>Set <varname>db_table_lock_type</varname> parameter</title>
<programlisting format="linespecific">
...
modparam("nsq", "db_table_lock_type", 0)
...
</programlisting>
</example>
</section>
Expand Down
5 changes: 5 additions & 0 deletions modules/nsq/nsq_mod.c
Expand Up @@ -65,6 +65,7 @@ static param_export_t params[]=
{"db_url", PARAM_STR, &nsq_db_url},
{"pua_mode", INT_PARAM, &dbn_pua_mode},
{"json_escape_char", PARAM_STR, &nsq_json_escape_str},
{"db_table_lock_type", INT_PARAM, &db_table_lock_type},
{ 0, 0, 0 }
};

Expand Down Expand Up @@ -191,6 +192,10 @@ static int mod_init(void)
return -1;
}

if (db_table_lock_type != 1) {
db_table_lock = DB_LOCKING_NONE;
}

nsq_pa_dbf.close(nsq_pa_db);
nsq_pa_db = NULL;
}
Expand Down
2 changes: 2 additions & 0 deletions modules/nsq/nsq_mod.h
Expand Up @@ -87,6 +87,8 @@ db1_con_t *nsq_pa_db = NULL;
db_func_t nsq_pa_dbf;
str nsq_presentity_table = str_init(PRESENTITY_TABLE);
str nsq_db_url = {NULL, 0};
int db_table_lock_type = 1;
db_locking_t db_table_lock = DB_LOCKING_WRITE;

static int mod_init(void);
static int mod_child_init(int);
Expand Down
3 changes: 2 additions & 1 deletion modules/nsq/nsq_pua.c
Expand Up @@ -37,6 +37,7 @@

extern db1_con_t *nsq_pa_db;
extern db_func_t nsq_pa_dbf;
extern db_locking_t db_table_lock;
extern str nsq_presentity_table;
extern str nsq_db_url;

Expand Down Expand Up @@ -152,7 +153,7 @@ int nsq_pua_update_presentity(str* event, str* realm, str* user, str* etag, str*
}

if (nsq_pa_dbf.start_transaction) {
if (nsq_pa_dbf.start_transaction(nsq_pa_db, DB_LOCKING_WRITE) < 0) {
if (nsq_pa_dbf.start_transaction(nsq_pa_db, db_table_lock) < 0) {
LM_ERR("in start_transaction\n");
goto error;
}
Expand Down

0 comments on commit 17fadef

Please sign in to comment.