[quagga-dev 1002]. Also fix date of previous commit in Chanelog.
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index d337a3e..981c85c 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,4 +1,9 @@
-2004-04-18  Hasso Tepper <hasso@estpak.ee>
+2004-04-06  Krzysztof Oledzki <oleq@ans.pl>
+
+	* rt_netlink.c: Do not ignore metric when reading kernel routing
+	  table on Linux with rt_netlink interface.
+
+2004-03-18  Hasso Tepper <hasso@estpak.ee>
 
 	* interface.c: Temporary fix for handling secondary addresses
 	  with label.
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index e50f12f..fed8829 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -633,6 +633,8 @@
 
   int index;
   int table;
+  int metric;
+
   void *dest;
   void *gate;
 
@@ -671,6 +673,7 @@
     flags |= ZEBRA_FLAG_SELFROUTE;
 
   index = 0;
+  metric = 0;
   dest = NULL;
   gate = NULL;
 
@@ -686,6 +689,9 @@
   if (tb[RTA_GATEWAY])
     gate = RTA_DATA (tb[RTA_GATEWAY]);
 
+  if (tb[RTA_PRIORITY])
+    metric = *(int *) RTA_DATA(tb[RTA_PRIORITY]);
+
   if (rtm->rtm_family == AF_INET)
     {
       struct prefix_ipv4 p;
@@ -693,7 +699,7 @@
       memcpy (&p.prefix, dest, 4);
       p.prefixlen = rtm->rtm_dst_len;
 
-      rib_add_ipv4 (ZEBRA_ROUTE_KERNEL, flags, &p, gate, index, table, 0, 0);
+      rib_add_ipv4 (ZEBRA_ROUTE_KERNEL, flags, &p, gate, index, table, metric, 0);
     }
 #ifdef HAVE_IPV6
   if (rtm->rtm_family == AF_INET6)