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@openser.org http://openser.org/cgi-bin/mailman/listinfo/users