Thanks for spotting it. Should be fixed in master branch now.

Daniel

On 07/01/14 05:00, Kelvin Chua wrote:
np is undefined in find_group_in_subnet_table()
it should be:

@@ -717,7 +728,16 @@ int find_group_in_subnet_table(struct subnet* table,
        while (i < count) {
                if ( ((table[i].port == port) || (table[i].port == 0))
                        && (ip_addr_match_net(addr, &table[i].subnet, table[i].mask)==0))
+               {
+                       if (tag_avp.n && table[i].tag.s) {
+                               val.s = table[i].tag;
+                               if (add_avp(tag_avp_type|AVP_VAL_STR, tag_avp, val) != 0) {
+                                       LM_ERR("setting of tag_avp failed\n");
+                                       return -1;
+                               }
+                       }
                        return table[i].grp;
+               }
                i++;
        }

Kelvin Chua


On Tue, Jan 7, 2014 at 5:33 AM, Daniel-Constantin Mierla <miconda@gmail.com> wrote:
Your patch seemed to be only for matching against individual IP addresses, I added also for subnet matching. Can you try with the patch from next commit?

- http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0c67042fa629ee4744cfc31a15e571b7340b0881

Cheers,
Daniel


On 06/01/14 13:09, Kelvin Chua wrote:
sorry my bad, it is available on the other address functions, just not on the allow_source_address_group.
anyway, here is the patch to master

diff --git a/modules/permissions/hash.c b/modules/permissions/hash.c
index 3a16581..c80a3f2 100644
--- a/modules/permissions/hash.c
+++ b/modules/permissions/hash.c
@@ -486,13 +486,23 @@ int find_group_in_addr_hash_table(struct addr_list** table,
 {
        struct addr_list *np;
        str addr_str;
+       int_str avp_val;
 
        addr_str.s = (char*)addr->u.addr;
        addr_str.len = 4;
 
+       get_tag_avp(&tag_avp, &tag_avp_type);
        for (np = table[perm_hash(addr_str)]; np != NULL; np = np->next) {
                if (((np->port == 0) || (np->port == port))
                                && ip_addr_cmp(&np->addr, addr)) {
+                       if ( np->tag.s != NULL ) {
+                               avp_val.s.s = (char *)np->tag.s;
+                               avp_val.s.len = strlen(avp_val.s.s);
+                               if (add_avp(tag_avp_type|AVP_VAL_STR, tag_avp, avp_val) != 0) {
+                                       LM_ERR("failed to set of tag_avp failed\n");
+                                       return -1;
+                               }       
+                       }
                        return np->grp;
                }
        }


Kelvin Chua


On Mon, Jan 6, 2014 at 7:59 PM, Kelvin Chua <kelchy@gmail.com> wrote:
checking the source code, looks like, it's not being set at all on any of those functions

Kelvin Chua


On Mon, Jan 6, 2014 at 7:37 PM, Daniel-Constantin Mierla <miconda@gmail.com> wrote:
Hello,


On 04/01/14 21:47, Juha Heinanen wrote:
Kelvin Chua writes:

is the peer_tag_avp used on allow_source_address_group?
based on fast scan of permissions module source, it appears that
peer_tag_avp is set only by allow_trusted function.
the peer tag avp should be set also for allow_address() and allow_source_address(). I don't think it is set for allow_source_address_group().

Cheers,
Daniel

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



_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@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://www.linkedin.com/in/miconda


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