map: ignore insignificant PSID bits
authorcyrus <cyrus@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 7 Sep 2015 16:21:15 +0000 (16:21 +0000)
committercyrus <cyrus@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 7 Sep 2015 16:21:15 +0000 (16:21 +0000)
Signed-off-by: Steven Barth <steven@midlink.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46804 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/network/ipv6/map/Makefile
package/network/ipv6/map/src/mapcalc.c

index a45e9bc..1d42315 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=map
 PKG_VERSION:=4
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
index b9fab4d..7aa28e5 100644 (file)
@@ -314,7 +314,9 @@ int main(int argc, char *argv[])
                        psid = be16_to_cpu(psid16);
                }
 
-               psid16 = cpu_to_be16(psid >> (16 - psidlen));
+               psid = psid >> (16 - psidlen);
+               psid16 = cpu_to_be16(psid);
+               psid = psid << (16 - psidlen);
 
                if (prefix4len < 0 || prefix6len < 0 || ealen < 0 || ealen < psidlen) {
                        fprintf(stderr, "Skipping invalid or incomplete rule: %s\n", argv[i]);