Changeset 46763


Ignore:
Timestamp:
2015-09-01T20:48:22+02:00 (2 years ago)
Author:
cyrus
Message:

map: add debug-code for mapcalc

Signed-off-by: Steven Barth <steven@…>

Location:
trunk/package/network/ipv6/map
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/network/ipv6/map/Makefile

    r45936 r46763  
    1010PKG_NAME:=map 
    1111PKG_VERSION:=4 
    12 PKG_RELEASE:=2 
     12PKG_RELEASE:=3 
    1313PKG_LICENSE:=GPL-2.0 
    1414 
  • trunk/package/network/ipv6/map/src/mapcalc.c

    r45770 r46763  
    158158        OPT_BR, 
    159159        OPT_DMR, 
     160        OPT_PD, 
     161        OPT_PDLEN, 
    160162        OPT_MAX 
    161163}; 
     
    174176        [OPT_BR] = "br", 
    175177        [OPT_DMR] = "dmr", 
     178        [OPT_PD] = "pd", 
     179        [OPT_PDLEN] = "pdlen", 
    176180        [OPT_MAX] = NULL 
    177181}; 
     
    240244                        } else if (idx == OPT_IPV6PREFIX && inet_pton(AF_INET6, value, &ipv6prefix) == 1) { 
    241245                                // dummy 
     246                        } else if (idx == OPT_PD && inet_pton(AF_INET6, value, &pd) == 1) { 
     247                                // dummy 
    242248                        } else if (idx == OPT_OFFSET && (intval = strtoul(value, NULL, 0)) <= 16 && !errno) { 
    243249                                offset = intval; 
    244250                        } else if (idx == OPT_PSIDLEN && (intval = strtoul(value, NULL, 0)) <= 16 && !errno) { 
    245251                                psidlen = intval; 
     252                        } else if (idx == OPT_PDLEN && (intval = strtoul(value, NULL, 0)) <= 128 && !errno) { 
     253                                pdlen = intval; 
    246254                        } else if (idx == OPT_PSID && (intval = strtoul(value, NULL, 0)) <= 65535 && !errno) { 
    247255                                psid = intval; 
     
    271279 
    272280                // Find PD 
    273                 struct blob_attr *c; 
    274                 unsigned rem; 
    275                 blobmsg_for_each_attr(c, dump, rem) { 
    276                         struct blob_attr *tb[IFACE_ATTR_MAX]; 
    277                         blobmsg_parse(iface_attrs, IFACE_ATTR_MAX, tb, blobmsg_data(c), blobmsg_data_len(c)); 
    278  
    279                         if (!tb[IFACE_ATTR_INTERFACE] || (strcmp(argv[1], "*") && strcmp(argv[1], 
    280                                         blobmsg_get_string(tb[IFACE_ATTR_INTERFACE])))) 
    281                                 continue; 
    282  
    283                         match_prefix(&pdlen, &pd, tb[IFACE_ATTR_PREFIX], &ipv6prefix, prefix6len); 
    284  
    285                         if (lw4o6) 
    286                                 match_prefix(&pdlen, &pd, tb[IFACE_ATTR_ADDRESS], &ipv6prefix, prefix6len); 
    287  
    288                         if (pdlen >= 0) { 
    289                                 iface = blobmsg_get_string(tb[IFACE_ATTR_INTERFACE]); 
    290                                 break; 
     281                if (pdlen < 0) { 
     282                        struct blob_attr *c; 
     283                        unsigned rem; 
     284                        blobmsg_for_each_attr(c, dump, rem) { 
     285                                struct blob_attr *tb[IFACE_ATTR_MAX]; 
     286                                blobmsg_parse(iface_attrs, IFACE_ATTR_MAX, tb, blobmsg_data(c), blobmsg_data_len(c)); 
     287 
     288                                if (!tb[IFACE_ATTR_INTERFACE] || (strcmp(argv[1], "*") && strcmp(argv[1], 
     289                                                blobmsg_get_string(tb[IFACE_ATTR_INTERFACE])))) 
     290                                        continue; 
     291 
     292                                match_prefix(&pdlen, &pd, tb[IFACE_ATTR_PREFIX], &ipv6prefix, prefix6len); 
     293 
     294                                if (lw4o6) 
     295                                        match_prefix(&pdlen, &pd, tb[IFACE_ATTR_ADDRESS], &ipv6prefix, prefix6len); 
     296 
     297                                if (pdlen >= 0) { 
     298                                        iface = blobmsg_get_string(tb[IFACE_ATTR_INTERFACE]); 
     299                                        break; 
     300                                } 
    291301                        } 
    292302                } 
Note: See TracChangeset for help on using the changeset viewer.