[sr-dev] git:master: modules_k/permissions: fixed reloading of address table
Daniel-Constantin Mierla
miconda at gmail.com
Mon May 10 11:37:39 CEST 2010
Hello,
On 5/9/10 2:08 PM, Juha Heinanen wrote:
> Module: sip-router
> Branch: master
> Commit: 3e3ec3e302e25936af1b24a3769a455abc138e08
> URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=3e3ec3e302e25936af1b24a3769a455abc138e08
>
> Author: Juha Heinanen<jh at tutpro.com>
> Committer: Juha Heinanen<jh at tutpro.com>
> Date: Sun May 9 15:02:11 2010 +0300
>
> modules_k/permissions: fixed reloading of address table
> - Database handle was not initialized when address table was reloaded.
> Now it is initialized/closed at each reload. Looks like this has
> never been tested before. Still don't know why mi_addr_child_init()
> exists and what it is supposed to do.
>
are you using the command via MI transports or over RPC?
Daniel
> ---
>
> modules_k/permissions/address.c | 23 ++++++++++++++++++-----
> 1 files changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/modules_k/permissions/address.c b/modules_k/permissions/address.c
> index 469e21a..0dd7b10 100644
> --- a/modules_k/permissions/address.c
> +++ b/modules_k/permissions/address.c
> @@ -79,6 +79,17 @@ int reload_address_table(void)
> cols[2] =&mask_col;
> cols[3] =&port_col;
> cols[4] =&tag_col;
> +
> + if (db_handle) {
> + LM_ERR("db_handle already exists\n");
> + return -1;
> + }
> +
> + db_handle = perm_dbf.init(&db_url);
> + if (!db_handle) {
> + LM_ERR("unable to connect database\n");
> + return -1;
> + }
>
> if (perm_dbf.use_table(db_handle,&address_table)< 0) {
> LM_ERR("failed to use table\n");
> @@ -166,6 +177,9 @@ int reload_address_table(void)
>
> perm_dbf.free_result(db_handle, res);
>
> + perm_dbf.close(db_handle);
> + db_handle = 0;
> +
> *addr_hash_table = new_hash_table;
> *subnet_table = new_subnet_table;
>
> @@ -208,9 +222,13 @@ int init_addresses(void)
> if(db_check_table_version(&perm_dbf, db_handle,&address_table, TABLE_VERSION)< 0) {
> LM_ERR("error during table version check.\n");
> perm_dbf.close(db_handle);
> + db_handle = 0;
> return -1;
> }
>
> + perm_dbf.close(db_handle);
> + db_handle = 0;
> +
> addr_hash_table_1 = new_addr_hash_table();
> if (!addr_hash_table_1) return -1;
>
> @@ -245,9 +263,6 @@ int init_addresses(void)
> goto error;
> }
>
> - perm_dbf.close(db_handle);
> - db_handle = 0;
> -
> return 0;
>
> error:
> @@ -275,8 +290,6 @@ error:
> shm_free(subnet_table);
> subnet_table = 0;
> }
> - perm_dbf.close(db_handle);
> - db_handle = 0;
> return -1;
> }
>
>
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
--
Daniel-Constantin Mierla
* http://www.asipto.com/
* http://twitter.com/miconda
* http://www.linkedin.com/in/danielconstantinmierla
More information about the sr-dev
mailing list