Hi Leonid,

Looks like there is a compatibility bug between permission and db_text modules when comes to DB data types....Give me couple of days to sort this out.

In the mean while, if you want to use db_text for permissions, please use the attached patch.

Thanks and regards,
Bogdan


Леонид Наседкин wrote:
Hi there.
I'm trying to use permission module with db_text, and it's not working, and I can't understand what's wrong.
Opensips 1.6.1 svnrevision: 2:6509

In opensips.cfg:
loadmodule "db_text.so"
modparam("db_text", "db_mode", 0)
loadmodule "permissions.so"
modparam("permissions","db_url", "text:///etc/opensips/dbtext")

In /etc/opensips/dbtext/address:
id(int,auto) grp(int) ip(str) mask(int) port(int) proto(str) pattern(str,null) context_info(str,null)
10:1:10.100.0.0:23:5060:udp::
20:1:10.110.0.0:23:5060:udp::
30:1:10.120.0.0:23:5060:udp::

LOG:

DBG:core:init_mod: initializing module permissions
DBG:permissions:mod_init: initializing...
WARNING:permissions:parse_config_file: file not found: /etc/opensips/permissions.allow WARNING:permissions:mod_init: default allow file (/etc/opensips/permissions.allow) not found => empty rule set WARNING:permissions:parse_config_file: file not found: /etc/opensips/permissions.deny WARNING:permissions:mod_init: default deny file (/etc/opensips/permissions.deny) not found => empty rule set DBG:core:find_mod_export: found <db_bind_api> in module db_text [/usr/lib/opensips/modules/]
DBG:core:db_bind_mod: using db bind api for db_text
INFO:db_text:dbt_init: using database at: /etc/opensips/dbtext/
DBG:db_text:dbt_cache_get_db: looking for db /etc/opensips/dbtext/!
DBG:db_text:dbt_cache_get_db: new db!
DBG:db_text:dbt_load_file: request for table [version]
DBG:db_text:dbt_load_file: db is [/etc/opensips/dbtext/]
DBG:db_text:dbt_load_file: loading file [/etc/opensips/dbtext//version]
DBG:db_text:dbt_table_new: mtime is 1263556066
DBG:db_text:dbt_load_file: column[0] is STR!
DBG:db_text:dbt_load_file: column[1] is INT!
DBG:db_text:dbt_query: new res with 1 cols
DBG:db_text:dbt_result_new: new res with 1 cols
DBG:core:db_new_result: allocate 28 bytes for result set at 0x816b044
DBG:core:db_allocate_columns: allocate 16 bytes for result columns at 0x816aedc DBG:core:db_allocate_rows: allocate 28 bytes for result rows and values at 0x816b090
DBG:core:db_free_columns: freeing result columns at 0x816aedc
DBG:core:db_free_rows: freeing 1 rows
DBG:core:db_free_row: freeing row values at 0x816b098
DBG:core:db_free_rows: freeing rows at 0x816b090
DBG:core:db_free_result: freeing result set at 0x816b044
DBG:db_text:dbt_load_file: request for table [address]
DBG:db_text:dbt_load_file: db is [/etc/opensips/dbtext/]
DBG:db_text:dbt_load_file: loading file [/etc/opensips/dbtext//address]
DBG:db_text:dbt_table_new: mtime is 1263558311
DBG:db_text:dbt_load_file: column[0] is INT!
DBG:db_text:dbt_load_file: column[1] is INT!
DBG:db_text:dbt_load_file: column[2] is STR!
DBG:db_text:dbt_load_file: column[3] is INT!
DBG:db_text:dbt_load_file: column[4] is INT!
DBG:db_text:dbt_load_file: column[5] is STR!
DBG:db_text:dbt_load_file: column[6] is STR!
DBG:db_text:dbt_load_file: column[7] is STR!
DBG:db_text:dbt_query: new res with 8 cols
DBG:db_text:dbt_result_new: new res with 8 cols
DBG:core:db_new_result: allocate 28 bytes for result set at 0x816b004
DBG:core:db_allocate_columns: allocate 128 bytes for result columns at 0x8186b68 DBG:core:db_allocate_rows: allocate 504 bytes for result rows and values at 0x8186bf4
DBG:permissions:reload_address_table: number of rows in address table: 3
ERROR:permissions:reload_address_table: database problem
DBG:core:db_free_columns: freeing result columns at 0x8186b68
DBG:core:db_free_rows: freeing 3 rows
DBG:core:db_free_row: freeing row values at 0x8186c0c
DBG:core:db_free_row: freeing row values at 0x8186cac
DBG:core:db_free_row: freeing row values at 0x8186d4c
DBG:core:db_free_rows: freeing rows at 0x8186bf4
DBG:core:db_free_result: freeing result set at 0x816b004
CRITICAL:permissions:init_address: reload of address table failed
ERROR:permissions:mod_init: failed to initialize the allow_address function
ERROR:core:init_mod: failed to initialize module permissions
ERROR:core:main: error while initializing modules
DBG:db_text:destroy: destroy ...


--
WBR, Leonid Nasedkin
icq: 256816
skype: leonidnasedkin
------------------------------------------------------------------------

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


--
Bogdan-Andrei Iancu
www.voice-system.ro

Index: modules/permissions/address.c
===================================================================
--- modules/permissions/address.c	(revision 6510)
+++ modules/permissions/address.c	(working copy)
@@ -140,18 +140,18 @@
 		val = ROW_VALUES(row + i);
 
 	    if ((ROW_N(row + i) == 8) &&
-			VAL_TYPE(val) == DB_STRING && !VAL_NULL(val) &&
+			VAL_TYPE(val) == DB_STR && !VAL_NULL(val) &&
 			VAL_TYPE(val + 1) == DB_INT && !VAL_NULL(val + 1)
 			&& (unsigned int)VAL_INT(val + 1) >= 0 &&
 			VAL_TYPE(val + 2) == DB_INT && !VAL_NULL(val + 2) &&
 			(unsigned int)VAL_INT(val + 2) > 0 &&
 	    	(unsigned int)VAL_INT(val + 2) <= 32 &&
-			VAL_TYPE(val + 4) == DB_STRING && !VAL_NULL(val + 4) &&
+			VAL_TYPE(val + 4) == DB_STR && !VAL_NULL(val + 4) &&
 			VAL_TYPE(val + 3) == DB_INT && !VAL_NULL(val + 3) &&
 			(VAL_NULL(val + 5) || (
-				VAL_TYPE(val + 5) == DB_STRING && !VAL_NULL(val + 5))) &&
+				VAL_TYPE(val + 5) == DB_STR && !VAL_NULL(val + 5))) &&
 			(VAL_NULL(val + 6) || (
-				 VAL_TYPE(val + 6) == DB_STRING && !VAL_NULL(val + 6)))
+				 VAL_TYPE(val + 6) == DB_STR && !VAL_NULL(val + 6)))
 			) {
 
 			id = (unsigned int) VAL_INT(val + 7);
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to