babeld: fix bug due to v4mapped addresses.
diff --git a/babeld/babeld.c b/babeld/babeld.c
index 6487bbe..0cf8c8a 100644
--- a/babeld/babeld.c
+++ b/babeld/babeld.c
@@ -708,7 +708,7 @@
     struct interface *ifp = NULL;
     struct prefix p;
     p.family = v4mapped(prefix) ? AF_INET : AF_INET6;
-    p.prefixlen = plen;
+    p.prefixlen = v4mapped(prefix) ? plen - 96 : plen;
     if (p.family == AF_INET) {
         uchar_to_inaddr(&p.u.prefix4, prefix);
     } else {
@@ -730,7 +730,7 @@
     struct interface *ifp = NULL;
     struct prefix p;
     p.family = v4mapped(prefix) ? AF_INET : AF_INET6;
-    p.prefixlen = plen;
+    p.prefixlen = v4mapped(prefix) ? plen - 96 : plen;
     if (p.family == AF_INET) {
         uchar_to_inaddr(&p.u.prefix4, prefix);
     } else {
@@ -752,7 +752,7 @@
     struct interface *ifp = NULL;
     struct prefix p;
     p.family = v4mapped(prefix) ? AF_INET : AF_INET6;
-    p.prefixlen = plen;
+    p.prefixlen = v4mapped(prefix) ? plen - 96 : plen;
     if (p.family == AF_INET) {
         uchar_to_inaddr(&p.u.prefix4, prefix);
     } else {
diff --git a/babeld/xroute.c b/babeld/xroute.c
index eb4aaeb..8330b49 100644
--- a/babeld/xroute.c
+++ b/babeld/xroute.c
@@ -63,8 +63,8 @@
 
     inaddr_to_uchar(uchar_prefix, &prefix->prefix);
     debugf(BABEL_DEBUG_ROUTE, "Adding new ipv4 route comming from Zebra.");
-    xroute_add_new_route(uchar_prefix, prefix->prefixlen, api->metric, ifindex,
-                         0, 1);
+    xroute_add_new_route(uchar_prefix, prefix->prefixlen + 96,
+                         api->metric, ifindex, 0, 1);
     return 0;
 }
 
@@ -77,7 +77,7 @@
     struct xroute *xroute = NULL;
 
     inaddr_to_uchar(uchar_prefix, &prefix->prefix);
-    xroute = find_xroute(uchar_prefix, prefix->prefixlen);
+    xroute = find_xroute(uchar_prefix, prefix->prefixlen + 96);
     if (xroute != NULL) {
         debugf(BABEL_DEBUG_ROUTE, "Removing ipv4 route (from zebra).");
         flush_xroute(xroute);