Many thanks Klaus. Changing the data type to integer worked perfectly.
In postgresqldb.sh, someone may want to modify the create table statement: CREATE TABLE address ( id $AUTO_INCREMENT, grp smallint NOT NULL default '0', ip_addr varchar(15) NOT NULL default '', mask $TINYINT NOT NULL default 32, port smallint NOT NULL default '0' ) $TABLE_TYPE; As the $TINYINT variable is defined in postgresqldb.sh as: TINYINT="NUMERIC(4,0)" Thanks, kw -----Original Message----- From: Klaus Darilion [mailto:[EMAIL PROTECTED] Sent: Monday, June 25, 2007 3:13 AM To: Kelvin Williams Cc: [email protected] Subject: Re: [OpenSER-Users] Permissions Module 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 > [email protected] > http://openser.org/cgi-bin/mailman/listinfo/users _______________________________________________ Users mailing list [email protected] http://openser.org/cgi-bin/mailman/listinfo/users
