in address.c:
119 val = ROW_VALUES(row + i);
120 if ((ROW_N(row + i) == 4) &&
121 (VAL_TYPE(val) == DB_INT) && !VAL_NULL(val) &&
122 (VAL_TYPE(val + 1) == DB_STRING) && !VAL_NULL(val + 1) &&
123 inet_aton((char *)VAL_STRING(val + 1), &ip_addr) != 0 &&
124 (VAL_TYPE(val + 2) == DB_INT) && !VAL_NULL(val + 2) &&
125 ((unsigned int)VAL_INT(val + 2) > 0) &&
126 ((unsigned int)VAL_INT(val + 2) <= 32) &&
127 (VAL_TYPE(val + 3) == DB_INT) && !VAL_NULL(val + 3)) {
128 if ((unsigned int)VAL_INT(val + 2) == 32) {
129 if (addr_hash_table_insert(new_hash_table,
130 (unsigned int)VAL_INT(val),
131 (unsigned int)ip_addr.s_addr,
132 (unsigned int)VAL_INT(val + 3))
133 == -1) {
I guess this check fails: (VAL_TYPE(val + 3) == DB_INT)
as the mask is returned as DOUBLE from postgres:
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[convert_row]: col[0]
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[str2val]: Converting
INT [0]
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[convert_row]: col[1]
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[str2val]: Converting
STRING [192.168.1.100]
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[convert_row]: col[2]
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[str2val]: Converting
DOUBLE [32]
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[convert_row]: col[3]
Jun 25 08:56:41 ds3000 /usr/sbin/openser[19796]: PG[str2val]: Converting
INT [5060]
try to change the table definition.
regards
klaus
Kelvin Williams wrote:
Does anyone have Openser 1.2, with PostgreSQL 8.2.4
and the Permissions
module working with at least one entry in the address table?
If anyone has Openser 1.2 and PostgreSQL 8.2.4 running in combination, could
you see if you can duplicate this problem? Any time any entry is in the
address table, OpenSER will not start, reporting this error:
openser=# select * from address;
id | grp | ip_addr | mask | port
----+-----+---------+------+------
(0 rows)
Starts fine!
openser=# insert into address (grp, ip_addr, mask, port) values (0,
'192.168.1.100',32, 5060);
INSERT 0 1
openser=# select * from address;
id | grp | ip_addr | mask | port
----+-----+---------------+------+------
5 | 0 | 192.168.1.100 | 32 | 5060
(1 row)
openser=#
Jun 23 16:55:47 gaia /usr/local/sbin/openser[24163]: ERROR: permissions:
address_reload(): Database problem
Jun 23 16:55:47 gaia /usr/local/sbin/openser[24163]:
permissions:init_addresses(): Reload of address table failed
Jun 23 16:55:47 gaia /usr/local/sbin/openser[24163]: Error while
initializing allow_address function
Jun 23 16:55:47 gaia /usr/local/sbin/openser[24163]: init_mod(): Error while
initializing module permissions
Thanks in advance,
kw
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users