[OpenSER-Users] Error when using avp_db_load: "avpops:dbrow2avp: wrong field types in dbrow"

Daniel-Constantin Mierla miconda at gmail.com
Sat Apr 19 12:35:11 CEST 2008


What is the operating system? Did you compile complete openser (core and 
all modules) from sources or just the avpops and replaced it the 
/usr/lib/openser/modules?

You need to compile all of them to properly link the symbols.

PREFIX=/usr make all include_modules="mysql"
PREFIX=/usr make install include_modules="mysql"

Cheers,
Daniel



On 04/18/08 22:34, Noel R. Morais wrote:
> I'm using the 1.1.0 notls version.
>
> I tried to change the code to:
>  /* check the value types */
>                 if ( (row->values[0].type!=DB_STRING &&
> row->values[0].type!=DB_STR)
>                         ||  (row->values[1].type!=DB_STRING &&
> row->values[1].type!=DB_STR)
>                         || row->values[2].type!=DB_INT )
>                 {
>                         LOG(L_ERR,"ERROR:avpops:dbrow2avp: wrong field
> types in dbrow: [attr value: %i"
>                                    "], [attr name: %i], [attr type:
> %i]",row->values[0].type, row->values[1].type, row->values[2].type);
>                         return -1;
>                 }
>
>
> But when I try to start openser I get the follow error:
> openser: ERROR: load_module: could not open module
> </usr/lib/openser/modules/avpops.so>:
> /usr/lib/openser/modules/avpops.so: unde
> fined symbol: fm_malloc
>
> is There another way to know what type is returned?
>
> Thank you Daniel,
>
> Noel
>
> On Thu, Apr 17, 2008 at 3:46 AM, Daniel-Constantin Mierla
> <miconda at gmail.com> wrote:
>   
>> Hello,
>>
>>  can you change the code and print the type of the rows in that error
>> message (function dbrow2avp() in avpops_impl.c). I can send a patch if you
>> let me know the version of your openser.
>>
>>  Seems that the driver sets a different type for returned values than
>> openser expects.
>>
>>  Cheers,
>>  Daniel
>>
>>
>>
>>
>>  On 04/17/08 04:44, Noel R. Morais wrote:
>>
>>     
>>>
>>> Hi all,
>>>
>>>  I'm trying to load some attributes from DB to an avp and check if the
>>>  value is greater than 0 (zero). I'm trying to limit the max sessions
>>>  per user at domain. But when I execute "avp_db_load(..)" I get the error:
>>>  "avpops:dbrow2avp: wrong field types in dbrow".
>>>  I'm using unixodbc with oracle as DBRMs. The table DDL is:
>>>  UUID(VARCHAR2), USERNAME(VARCHAR2), DOMAIN(VARCHAR2),
>>>  ATTRIBUTE(VARCHAR2), VALUE(VARCHAR2), TYPE(NUMBER)
>>>
>>>  Follow bellow the source:
>>>
>>>  if (method == "REGISTER") {
>>>      if ( avp_db_load("$fu","$avp(s:maxsessions)/avp_user_attributes")
>>>  && avp_check("$avp(s:maxsessions)", "gt/0/g") ) {
>>>        save("location") ;
>>>        return;
>>>      } else {
>>>        sl_send_reply("503", "Service Unavailable");
>>>        return;
>>>      }
>>>    }
>>>
>>>
>>>  I've checked the AVP source and the field types seems to be ok. I
>>>  don't what to do.
>>>
>>>  Thanks in advance,
>>>
>>>  Noel
>>>
>>>  ps: Sorry about the poor English
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.openser.org
>>> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>       
>>  --
>>  http://www.asipto.com
>>
>>
>>     

-- 
http://www.asipto.com





More information about the sr-users mailing list