Hi,
here's a patch that fixes misc. bugs, including the one which
causes unh 3.12 to fail. The changes are:
- ospfd/ospf_abr.c: fix for UNH 3.12 failure: update cost of range to
the *max* cost in the area
- ospfd/ospf_lsa.c: more debug statements.
- lib/log.c: missing tzset()
- ospfd/ospf_route.c, ospfd/ospf_packet.c: fix compiler warnings.
--Sowmini
===================================================================
RCS file: ./ospfd/ospf_abr.c,v
retrieving revision 1.5
diff -uwb -r1.5 ./ospfd/ospf_abr.c
--- ./ospfd/ospf_abr.c 2003/08/10 02:51:22 1.5
+++ ./ospfd/ospf_abr.c 2004/01/28 15:05:59
@@ -580,10 +580,11 @@
if (range->specifics == 0)
range->cost = or->cost; /* 1st time get 1st cost */
- if (or->cost < range->cost)
+ if (or->cost > range->cost)
{
if (IS_DEBUG_OSPF_EVENT)
- zlog_info ("ospf_abr_update_aggregate(): lowest cost, update");
+ zlog_info ("ospf_abr_update_aggregate(): updating cost "
+ "from %d to %d", range->cost, or->cost);
range->cost = or->cost;
}
===================================================================
RCS file: ./ospfd/ospf_lsa.c,v
retrieving revision 1.23
diff -uwb -r1.23 ./ospfd/ospf_lsa.c
--- ./ospfd/ospf_lsa.c 2003/10/13 09:06:46 1.23
+++ ./ospfd/ospf_lsa.c 2004/01/28 15:09:10
@@ -557,6 +557,8 @@
masklen2ip (oi->address->prefixlen, &mask);
id.s_addr = oi->address->u.prefix4.s_addr & mask.s_addr;
link_info_set (s, id, mask, LSA_LINK_TYPE_STUB, 0, oi->output_cost);
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info("lsa_link_broadcast_set id %s STUB", inet_ntoa(id));
return 1;
}
@@ -568,6 +570,9 @@
{
link_info_set (s, DR (oi), oi->address->u.prefix4,
LSA_LINK_TYPE_TRANSIT, 0, oi->output_cost);
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info("lsa_link_broadcast_set id %s TRANSIT",
+ inet_ntoa(oi->address->u.prefix4));
}
/* Describe type 3 link. */
else
@@ -575,6 +580,8 @@
masklen2ip (oi->address->prefixlen, &mask);
id.s_addr = oi->address->u.prefix4.s_addr & mask.s_addr;
link_info_set (s, id, mask, LSA_LINK_TYPE_STUB, 0, oi->output_cost);
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info("lsa_link_broadcast_set Full/DR id %s STUB", inet_ntoa(id));
}
return 1;
}
===================================================================
RCS file: ./ospfd/ospf_route.c,v
retrieving revision 1.4
diff -uwb -r1.4 ./ospfd/ospf_route.c
--- ./ospfd/ospf_route.c 2003/08/15 16:04:21 1.4
+++ ./ospfd/ospf_route.c 2004/01/28 15:28:23
@@ -192,8 +192,9 @@
{
if (rn && rn->info)
{
- struct prefix_ipv4 *p = &rn->p;
- if ( (ext_rn = route_node_lookup (external_routes, p)) )
+ struct prefix_ipv4 *p = (struct prefix_ipv4 *)&rn->p;
+ if ( (ext_rn = route_node_lookup (external_routes,
+ (struct prefix *)p)) )
{
ospf_zebra_delete (p, ext_rn->info);
if (ext_rn->info)
===================================================================
RCS file: ./ospfd/ospf_packet.c,v
retrieving revision 1.24
diff -uwb -r1.24 ./ospfd/ospf_packet.c
--- ./ospfd/ospf_packet.c 2003/12/08 10:34:54 1.24
+++ ./ospfd/ospf_packet.c 2004/01/28 15:28:53
@@ -290,8 +290,8 @@
{
zlog_warn ("interface %s: ospf_check_md5 bad sequence %d (expect %d)",
IF_NAME (oi),
- ntohl(ospfh->u.crypt.crypt_seqnum),
- ntohl(nbr->crypt_seqnum));
+ (int) ntohl(ospfh->u.crypt.crypt_seqnum),
+ (int) ntohl(nbr->crypt_seqnum));
return 0;
}
===================================================================
RCS file: ./lib/log.c,v
retrieving revision 1.4
diff -uwb -r1.4 ./lib/log.c
--- ./lib/log.c 2003/12/23 08:56:19 1.4
+++ ./lib/log.c 2004/01/28 15:09:50
@@ -330,6 +330,7 @@
zl->record_priority = 0;
openlog (progname, syslog_flags, zl->facility);
+ tzset();
return zl;
}
here's a patch that fixes misc. bugs, including the one which
causes unh 3.12 to fail. The changes are:
- ospfd/ospf_abr.c: fix for UNH 3.12 failure: update cost of range to
the *max* cost in the area
- ospfd/ospf_lsa.c: more debug statements.
- lib/log.c: missing tzset()
- ospfd/ospf_route.c, ospfd/ospf_packet.c: fix compiler warnings.
--Sowmini
===================================================================
RCS file: ./ospfd/ospf_abr.c,v
retrieving revision 1.5
diff -uwb -r1.5 ./ospfd/ospf_abr.c
--- ./ospfd/ospf_abr.c 2003/08/10 02:51:22 1.5
+++ ./ospfd/ospf_abr.c 2004/01/28 15:05:59
@@ -580,10 +580,11 @@
if (range->specifics == 0)
range->cost = or->cost; /* 1st time get 1st cost */
- if (or->cost < range->cost)
+ if (or->cost > range->cost)
{
if (IS_DEBUG_OSPF_EVENT)
- zlog_info ("ospf_abr_update_aggregate(): lowest cost, update");
+ zlog_info ("ospf_abr_update_aggregate(): updating cost "
+ "from %d to %d", range->cost, or->cost);
range->cost = or->cost;
}
===================================================================
RCS file: ./ospfd/ospf_lsa.c,v
retrieving revision 1.23
diff -uwb -r1.23 ./ospfd/ospf_lsa.c
--- ./ospfd/ospf_lsa.c 2003/10/13 09:06:46 1.23
+++ ./ospfd/ospf_lsa.c 2004/01/28 15:09:10
@@ -557,6 +557,8 @@
masklen2ip (oi->address->prefixlen, &mask);
id.s_addr = oi->address->u.prefix4.s_addr & mask.s_addr;
link_info_set (s, id, mask, LSA_LINK_TYPE_STUB, 0, oi->output_cost);
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info("lsa_link_broadcast_set id %s STUB", inet_ntoa(id));
return 1;
}
@@ -568,6 +570,9 @@
{
link_info_set (s, DR (oi), oi->address->u.prefix4,
LSA_LINK_TYPE_TRANSIT, 0, oi->output_cost);
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info("lsa_link_broadcast_set id %s TRANSIT",
+ inet_ntoa(oi->address->u.prefix4));
}
/* Describe type 3 link. */
else
@@ -575,6 +580,8 @@
masklen2ip (oi->address->prefixlen, &mask);
id.s_addr = oi->address->u.prefix4.s_addr & mask.s_addr;
link_info_set (s, id, mask, LSA_LINK_TYPE_STUB, 0, oi->output_cost);
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info("lsa_link_broadcast_set Full/DR id %s STUB", inet_ntoa(id));
}
return 1;
}
===================================================================
RCS file: ./ospfd/ospf_route.c,v
retrieving revision 1.4
diff -uwb -r1.4 ./ospfd/ospf_route.c
--- ./ospfd/ospf_route.c 2003/08/15 16:04:21 1.4
+++ ./ospfd/ospf_route.c 2004/01/28 15:28:23
@@ -192,8 +192,9 @@
{
if (rn && rn->info)
{
- struct prefix_ipv4 *p = &rn->p;
- if ( (ext_rn = route_node_lookup (external_routes, p)) )
+ struct prefix_ipv4 *p = (struct prefix_ipv4 *)&rn->p;
+ if ( (ext_rn = route_node_lookup (external_routes,
+ (struct prefix *)p)) )
{
ospf_zebra_delete (p, ext_rn->info);
if (ext_rn->info)
===================================================================
RCS file: ./ospfd/ospf_packet.c,v
retrieving revision 1.24
diff -uwb -r1.24 ./ospfd/ospf_packet.c
--- ./ospfd/ospf_packet.c 2003/12/08 10:34:54 1.24
+++ ./ospfd/ospf_packet.c 2004/01/28 15:28:53
@@ -290,8 +290,8 @@
{
zlog_warn ("interface %s: ospf_check_md5 bad sequence %d (expect %d)",
IF_NAME (oi),
- ntohl(ospfh->u.crypt.crypt_seqnum),
- ntohl(nbr->crypt_seqnum));
+ (int) ntohl(ospfh->u.crypt.crypt_seqnum),
+ (int) ntohl(nbr->crypt_seqnum));
return 0;
}
===================================================================
RCS file: ./lib/log.c,v
retrieving revision 1.4
diff -uwb -r1.4 ./lib/log.c
--- ./lib/log.c 2003/12/23 08:56:19 1.4
+++ ./lib/log.c 2004/01/28 15:09:50
@@ -330,6 +330,7 @@
zl->record_priority = 0;
openlog (progname, syslog_flags, zl->facility);
+ tzset();
return zl;
}