[SR-Users] bug in authdb_mod ??

Daniel-Constantin Mierla miconda at gmail.com
Thu Feb 6 16:11:09 CET 2014


To conclude this thread, the discussion was restarted on sr-dev mailing 
list and a reworked patch is now in master branch.

Cheers,
Daniel

On 09/12/13 13:23, jay binks wrote:
> Ok so... yea I should have waited another 10 min before posting to the 
> list..
>
> I did the patch...  it works for me.
> if someone familiar with db_cassandra can clean this up and commit it, 
> I would be quite grateful.
>
>
> # git diff dbcassa_base.cpp
> diff --git a/modules/db_cassandra/dbcassa_base.cpp 
> b/modules/db_cassandra/dbcassa_base.cpp
> index e9d3a32..155221d 100644
> --- a/modules/db_cassandra/dbcassa_base.cpp
> +++ b/modules/db_cassandra/dbcassa_base.cpp
> @@ -439,6 +439,7 @@ ColumnVecPtr cassa_translate_query(const 
> db1_con_t* _h, const db_key_t* _k,
>         int key_len=0, seckey_len = 0;
>         int no_kc, no_sec_kc;
>         dbcassa_table_p tbc;
> +       char pk[255];
>         /** Lock table schema and construct primary and secondary key **/
>         if(_k) {
> @@ -495,8 +496,12 @@ ColumnVecPtr cassa_translate_query(const 
> db1_con_t* _h, const db_key_t* _k,
>                 } else { /* the table doesn't have any secondary key 
> defined */
>                         if(_c) {
>                                 for(int i=0; i< _nc; i++) {
> - sp.column_names.push_back(_c[i]->s);
> -                                       LM_DBG("Query col: %s\n", 
> _c[i]->s);
> +                                       sprintf(pk, "%.*s", 
> _c[i]->len, _c[i]->s );
> + sp.column_names.push_back( pk);
> + //sp.column_names.push_back(_c[i]->s);
> +                                       LM_DBG("Query col: %s\n", pk );
> +                                       //LM_DBG("Query col: %s\n", 
> _c[i]->s);
> +                                       LM_DBG("JAY Query col: 
> %.*s\n", _c[i]->len, _c[i]->s);
>                                 }
>                                 LM_DBG("get %d columns\n", _nc);
>                                 sp.__isset.column_names = true; // set
>
>
>
>
> yea I know I left crap in there, but it give syou an idea... also...
> yea pk is a crap name... copy paste... and I havnt given any thought 
> to the size 255 ,  but thats probably fairly safe and anything smaller 
> might not be so safe.
> ( unless there is a limit elsewhere I should observe )
>
> Jay
>
>
>
>
>
>
>
> On 9 December 2013 22:14, jay binks <jaybinks at gmail.com 
> <mailto:jaybinks at gmail.com>> wrote:
>
>     Ok my latest makes me think this is an issue in db_cassandra.
>
>     when I add the following debug line it displays as expected.
>
>      496       if(_c) {
>      497         for(int i=0; i< _nc; i++) {
>      498 sp.column_names.push_back(_c[i]->s);
>      499           LM_DBG("Query col: %s\n", _c[i]->s);
>      500           LM_DBG("JAY Query col: %.*s\n", _c[i]->len, _c[i]->s);
>      501         }
>      502         LM_DBG("get %d columns\n", _nc);
>      503         sp.__isset.column_names = true; // set
>
>     so _c[i]->s is just going to the end of the string, instead of
>     respecting _c[i]->len
>
>
>     While I COULD work out a fix for this using sprintf or similar,
>      it would probably not be in keeping with kamaiio convention.
>     ( since im not experienced with kamailio code )
>     Also, im not sure what other places I would miss.
>
>     can someone more experienced with kamailio take a look and propose
>     a patch for me to test.
>
>
>     Thanks
>
>     Jay
>
>
>
>
>     On 9 December 2013 21:34, jay binks <jaybinks at gmail.com
>     <mailto:jaybinks at gmail.com>> wrote:
>
>         kamailio -v
>         version: kamailio 4.2.0
>
>         im still digging, but my current hunch is that my prior
>         diagnosis may be wrong, and this might be in db_cassandra ...
>         still digging, but I will update the list with my findings if
>         they are of interest.
>
>
>
>
>         On 9 December 2013 21:26, Daniel-Constantin Mierla
>         <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>             What version are you using?
>
>             Daniel
>
>
>             On 09/12/13 12:17, jay binks wrote:
>>
>>             So when Im trying to use is_subscriber & load_credentials
>>             together, It seems I have either hit a bug or just a bad
>>             config ( but I dont think its the latter )
>>
>>             My symptom is that only the field on the far right of
>>             "load_credentials" ever returns the correct value, the
>>             other fields are always null.
>>
>>             My config has this setting :
>>              modparam("auth_db", "load_credentials", "field1;field2")
>>
>>             and I can see the following debug when running kamailio
>>             -ddddd
>>
>>              0(14174) DEBUG: auth_db [authdb_mod.c:291]:
>>             w_is_subscriber(): uri [sip: 1112 at 192.168.173.5
>>             <mailto:1112 at 192.168.173.5>] table [subscriber] flags [1]
>>              0(14174) DEBUG: db_cassandra [dbcassa_base.cpp:807]:
>>             db_cassa_query(): query table=subscriber
>>              0(14174) DEBUG: db_cassandra [dbcassa_table.c:461]:
>>             dbcassa_db_get_table(): found dbname=kamailio,
>>             table=subscriber
>>              0(14174) DEBUG: db_cassandra [dbcassa_base.cpp:351]:
>>             cassa_constr_key(): query col = username
>>              0(14174) DEBUG: db_cassandra [dbcassa_base.cpp:351]:
>>             cassa_constr_key(): query col = domain
>>              0(14174) DEBUG: db_cassandra [dbcassa_base.cpp:376]:
>>             cassa_constr_key(): key = 1112 192.168.173.5
>>              0(14174) DEBUG: db_cassandra [dbcassa_base.cpp:499]:
>>             cassa_translate_query(): Query col: field2
>>              0(14174) DEBUG: db_cassandra [dbcassa_base.cpp:499]:
>>             cassa_translate_query(): Query col: field1; field2
>>              0(14174) DEBUG: db_cassandra [dbcassa_base.cpp:501]:
>>             cassa_translate_query(): get 2 columns
>>              0(14174) DEBUG: <core> [db_res.c:118]: db_new_result():
>>             allocate 56 bytes for result set at 0x7fc6ce770e78
>>
>>             if I had to put money on where the bug is, I would look
>>             in parse_aaa_pvs in authdb_mod.c
>>             however, an initial glance revealed nothing glaring, also
>>             this file was last changed in /2013-01-20 ( and that was
>>             only a move from modules_k )/
>>
>>             SURELY I cant be the only person wanting to use this for
>>             more than one field ?
>>             This code looks like its almost the same as when first
>>             committed in August 2011 ....
>>
>>             Id love someone to see if they can confirm this and point
>>             me in the right direction ( if this is my fault ) or lets
>>             get this fixed, if its a bug :)
>>
>>             -- 
>>             Sincerely
>>
>>             Jay
>>
>>
>>             _______________________________________________
>>             SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>             sr-users at lists.sip-router.org  <mailto:sr-users at lists.sip-router.org>
>>             http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>             -- 
>             Daniel-Constantin Mierla -http://www.asipto.com
>             http://twitter.com/#!/miconda  <http://twitter.com/#%21/miconda>  -http://www.linkedin.com/in/miconda
>
>
>             _______________________________________________
>             SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
>             mailing list
>             sr-users at lists.sip-router.org
>             <mailto:sr-users at lists.sip-router.org>
>             http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
>
>         -- 
>         Sincerely
>
>         Jay
>
>
>
>
>     -- 
>     Sincerely
>
>     Jay
>
>
>
>
> -- 
> Sincerely
>
> Jay

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20140206/d7a4751f/attachment-0001.html>


More information about the sr-users mailing list