Author: cyrus
Date: 2015-09-01 20:48:22 +0200 (Tue, 01 Sep 2015)
New Revision: 46763

Modified:
   trunk/package/network/ipv6/map/Makefile
   trunk/package/network/ipv6/map/src/mapcalc.c
Log:
map: add debug-code for mapcalc

Signed-off-by: Steven Barth <[email protected]>

Modified: trunk/package/network/ipv6/map/Makefile
===================================================================
--- trunk/package/network/ipv6/map/Makefile     2015-09-01 18:48:15 UTC (rev 
46762)
+++ trunk/package/network/ipv6/map/Makefile     2015-09-01 18:48:22 UTC (rev 
46763)
@@ -9,7 +9,7 @@
 
 PKG_NAME:=map
 PKG_VERSION:=4
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk

Modified: trunk/package/network/ipv6/map/src/mapcalc.c
===================================================================
--- trunk/package/network/ipv6/map/src/mapcalc.c        2015-09-01 18:48:15 UTC 
(rev 46762)
+++ trunk/package/network/ipv6/map/src/mapcalc.c        2015-09-01 18:48:22 UTC 
(rev 46763)
@@ -157,6 +157,8 @@
        OPT_PSID,
        OPT_BR,
        OPT_DMR,
+       OPT_PD,
+       OPT_PDLEN,
        OPT_MAX
 };
 
@@ -173,6 +175,8 @@
        [OPT_PSID] = "psid",
        [OPT_BR] = "br",
        [OPT_DMR] = "dmr",
+       [OPT_PD] = "pd",
+       [OPT_PDLEN] = "pdlen",
        [OPT_MAX] = NULL
 };
 
@@ -239,10 +243,14 @@
                                // dummy
                        } else if (idx == OPT_IPV6PREFIX && inet_pton(AF_INET6, 
value, &ipv6prefix) == 1) {
                                // dummy
+                       } else if (idx == OPT_PD && inet_pton(AF_INET6, value, 
&pd) == 1) {
+                               // dummy
                        } else if (idx == OPT_OFFSET && (intval = 
strtoul(value, NULL, 0)) <= 16 && !errno) {
                                offset = intval;
                        } else if (idx == OPT_PSIDLEN && (intval = 
strtoul(value, NULL, 0)) <= 16 && !errno) {
                                psidlen = intval;
+                       } else if (idx == OPT_PDLEN && (intval = strtoul(value, 
NULL, 0)) <= 128 && !errno) {
+                               pdlen = intval;
                        } else if (idx == OPT_PSID && (intval = strtoul(value, 
NULL, 0)) <= 65535 && !errno) {
                                psid = intval;
                        } else if (idx == OPT_DMR) {
@@ -270,24 +278,26 @@
                }
 
                // Find PD
-               struct blob_attr *c;
-               unsigned rem;
-               blobmsg_for_each_attr(c, dump, rem) {
-                       struct blob_attr *tb[IFACE_ATTR_MAX];
-                       blobmsg_parse(iface_attrs, IFACE_ATTR_MAX, tb, 
blobmsg_data(c), blobmsg_data_len(c));
+               if (pdlen < 0) {
+                       struct blob_attr *c;
+                       unsigned rem;
+                       blobmsg_for_each_attr(c, dump, rem) {
+                               struct blob_attr *tb[IFACE_ATTR_MAX];
+                               blobmsg_parse(iface_attrs, IFACE_ATTR_MAX, tb, 
blobmsg_data(c), blobmsg_data_len(c));
 
-                       if (!tb[IFACE_ATTR_INTERFACE] || (strcmp(argv[1], "*") 
&& strcmp(argv[1],
-                                       
blobmsg_get_string(tb[IFACE_ATTR_INTERFACE]))))
-                               continue;
+                               if (!tb[IFACE_ATTR_INTERFACE] || 
(strcmp(argv[1], "*") && strcmp(argv[1],
+                                               
blobmsg_get_string(tb[IFACE_ATTR_INTERFACE]))))
+                                       continue;
 
-                       match_prefix(&pdlen, &pd, tb[IFACE_ATTR_PREFIX], 
&ipv6prefix, prefix6len);
+                               match_prefix(&pdlen, &pd, 
tb[IFACE_ATTR_PREFIX], &ipv6prefix, prefix6len);
 
-                       if (lw4o6)
-                               match_prefix(&pdlen, &pd, 
tb[IFACE_ATTR_ADDRESS], &ipv6prefix, prefix6len);
+                               if (lw4o6)
+                                       match_prefix(&pdlen, &pd, 
tb[IFACE_ATTR_ADDRESS], &ipv6prefix, prefix6len);
 
-                       if (pdlen >= 0) {
-                               iface = 
blobmsg_get_string(tb[IFACE_ATTR_INTERFACE]);
-                               break;
+                               if (pdlen >= 0) {
+                                       iface = 
blobmsg_get_string(tb[IFACE_ATTR_INTERFACE]);
+                                       break;
+                               }
                        }
                }
 
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to