0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 01:31:55 +00:00

Fixes type mismatch in OSPF printf statements.

Mixing ip_addr and u32 does bad things on Ultrasparc.
Although both have the same size. Fascinating.
It was not catched by compiler because of varargs.
This commit is contained in:
Ondrej Zajicek 2009-07-05 19:01:54 +02:00
parent 2d785e8d6a
commit f9bdcad469
3 changed files with 22 additions and 21 deletions

View File

@ -113,7 +113,7 @@ ospf_iface_chstate(struct ospf_iface *ifa, u8 state)
{
OSPF_TRACE(D_EVENTS,
"Changing state of virtual link %I from \"%s\" into \"%s\".",
ifa->vid, ospf_is[oldstate], ospf_is[state]);
ipa_from_u32(ifa->vid), ospf_is[oldstate], ospf_is[state]);
if (state == OSPF_IS_PTP)
{
ifa->ip_sk = ospf_open_ip_socket(ifa);
@ -586,8 +586,8 @@ ospf_iface_info(struct ospf_iface *ifa)
strict = "";
if (ifa->type == OSPF_IT_VLINK)
{
cli_msg(-1015, "Virtual link to %I:", ifa->vid);
cli_msg(-1015, "\tTransit area: %I (%u)", ifa->voa->areaid,
cli_msg(-1015, "Virtual link to %I:", ipa_from_u32(ifa->vid));
cli_msg(-1015, "\tTransit area: %I (%u)", ipa_from_u32(ifa->voa->areaid),
ifa->voa->areaid);
}
else
@ -595,13 +595,14 @@ ospf_iface_info(struct ospf_iface *ifa)
cli_msg(-1015, "Interface \"%s\":",
(ifa->iface ? ifa->iface->name : "(none)"));
cli_msg(-1015, "\tType: %s %s", ospf_it[ifa->type], strict);
cli_msg(-1015, "\tArea: %I (%u)", ifa->oa->areaid, ifa->oa->areaid);
cli_msg(-1015, "\tArea: %I (%u)", ipa_from_u32(ifa->oa->areaid), ifa->oa->areaid);
}
cli_msg(-1015, "\tState: %s %s", ospf_is[ifa->state],
ifa->stub ? "(stub)" : "");
cli_msg(-1015, "\tPriority: %u", ifa->priority);
cli_msg(-1015, "\tCost: %u", ifa->cost);
cli_msg(-1015, "\tHello timer: %u", ifa->helloint);
if (ifa->type == OSPF_IT_NBMA)
{
cli_msg(-1015, "\tPoll timer: %u", ifa->pollint);
@ -611,9 +612,9 @@ ospf_iface_info(struct ospf_iface *ifa)
cli_msg(-1015, "\tRetransmit timer: %u", ifa->rxmtint);
if ((ifa->type == OSPF_IT_BCAST) || (ifa->type == OSPF_IT_NBMA))
{
cli_msg(-1015, "\tDesigned router (ID): %I", ifa->drid);
cli_msg(-1015, "\tDesigned router (ID): %I", ipa_from_u32(ifa->drid));
cli_msg(-1015, "\tDesigned router (IP): %I", ifa->drip);
cli_msg(-1015, "\tBackup designed router (ID): %I", ifa->bdrid);
cli_msg(-1015, "\tBackup designed router (ID): %I", ipa_from_u32(ifa->bdrid));
cli_msg(-1015, "\tBackup designed router (IP): %I", ifa->bdrip);
}
}

View File

@ -43,7 +43,7 @@ ospf_lsack_enqueue(struct ospf_neighbor *n, struct ospf_lsa_header *h,
memcpy(&no->lsa, h, sizeof(struct ospf_lsa_header));
add_tail(&n->ackl[queue], NODE no);
DBG("Adding (%s) ack for %I, ID: %I, RT: %I, Type: %u\n", s_queue[queue],
n->rid, ntohl(h->id), ntohl(h->rt), h->type);
ipa_from_u32(n->rid), ipa_from_u32(ntohl(h->id)), ipa_from_u32(ntohl(h->rt)), h->type);
}
void
@ -77,8 +77,8 @@ ospf_lsack_send(struct ospf_neighbor *n, int queue)
no = (struct lsah_n *) HEAD(n->ackl[queue]);
memcpy(h + i, &no->lsa, sizeof(struct ospf_lsa_header));
i++;
DBG("Iter %u ID: %I, RT: %I, Type: %u\n", i, ntohl((h + i)->id),
ntohl((h + i)->rt), (h + i)->type);
DBG("Iter %u ID: %I, RT: %I, Type: %u\n", i, ipa_from_u32(ntohl((h + i)->id)),
ipa_from_u32(ntohl((h + i)->rt)), (h + i)->type);
rem_node(NODE no);
mb_free(no);
if ((i * sizeof(struct ospf_lsa_header) +
@ -191,7 +191,7 @@ ospf_lsack_receive(struct ospf_lsack_packet *ps,
}
DBG("Deleting LS Id: %I RT: %I Type: %u from LS Retl for neighbor %I\n",
lsa.id, lsa.rt, lsa.type, n->rid);
ipa_from_u32(lsa.id), ipa_from_u32(lsa.rt), lsa.type, ipa_from_u32(n->rid));
s_rem_node(SNODE en);
if (en->lsa_body != NULL)
mb_free(en->lsa_body);

View File

@ -209,11 +209,11 @@ ospf_dump(struct proto *p)
{
OSPF_TRACE(D_EVENTS, "Interface: %s", (ifa->iface ? ifa->iface->name : "(null)"));
OSPF_TRACE(D_EVENTS, "state: %u", ifa->state);
OSPF_TRACE(D_EVENTS, "DR: %I", ifa->drid);
OSPF_TRACE(D_EVENTS, "BDR: %I", ifa->bdrid);
OSPF_TRACE(D_EVENTS, "DR: %I", ipa_from_u32(ifa->drid));
OSPF_TRACE(D_EVENTS, "BDR: %I", ipa_from_u32(ifa->bdrid));
WALK_LIST(n, ifa->neigh_list)
{
OSPF_TRACE(D_EVENTS, " neighbor %I in state %u", n->rid, n->state);
OSPF_TRACE(D_EVENTS, " neighbor %I in state %u", ipa_from_u32(n->rid), n->state);
}
}
@ -310,7 +310,7 @@ schedule_rt_lsa(struct ospf_area *oa)
struct proto *p = &oa->po->proto;
OSPF_TRACE(D_EVENTS, "Scheduling RT lsa origination for area %I.",
oa->areaid);
ipa_from_u32(oa->areaid));
oa->origrt = 1;
}
@ -953,7 +953,7 @@ ospf_sh(struct proto *p)
WALK_LIST(oa, po->area_list)
{
cli_msg(-1014, "\tArea: %I (%u) %s", oa->areaid, oa->areaid,
cli_msg(-1014, "\tArea: %I (%u) %s", ipa_from_u32(oa->areaid), oa->areaid,
oa->areaid == 0 ? "[BACKBONE]" : "");
ifano = 0;
nno = 0;
@ -1088,7 +1088,7 @@ show_lsa_router(struct top_hash_entry *he)
for (i = 0; i < rt->links; i++)
if (rr[i].type == LSART_PTP)
cli_msg(-1016, "\t\trouter %I metric %u ", rr[i].id, rr[i].metric);
cli_msg(-1016, "\t\trouter %I metric %u ", ipa_from_u32(rr[i].id), rr[i].metric);
for (i = 0; i < rt->links; i++)
if (rr[i].type == LSART_NET)
@ -1125,10 +1125,10 @@ show_lsa_network(struct top_hash_entry *he)
cli_msg(-1016, "");
cli_msg(-1016, "\tnetwork %I/%d", ipa_and(ipa_from_u32(lsa->id), ln->netmask), ipa_mklen(ln->netmask));
cli_msg(-1016, "\t\tdr %I", lsa->rt);
cli_msg(-1016, "\t\tdr %I", ipa_from_u32(lsa->rt));
for (i = 0; i < max; i++)
cli_msg(-1016, "\t\trouter %I", rts[i]);
cli_msg(-1016, "\t\trouter %I", ipa_from_u32(rts[i]));
}
static inline void
@ -1143,7 +1143,7 @@ show_lsa_sum_net(struct top_hash_entry *he)
static inline void
show_lsa_sum_rt(struct top_hash_entry *he)
{
cli_msg(-1016, "\t\txrouter %I", he->lsa.id);
cli_msg(-1016, "\t\txrouter %I", ipa_from_u32(he->lsa.id));
}
@ -1207,7 +1207,7 @@ ospf_sh_state(struct proto *p, int verbose)
if (last_area != hea[i]->oa->areaid)
{
cli_msg(-1016, "");
cli_msg(-1016, "area %I", hea[i]->oa->areaid);
cli_msg(-1016, "area %I", ipa_from_u32(hea[i]->oa->areaid));
last_area = hea[i]->oa->areaid;
last_rt = 0xFFFFFFFF;
}
@ -1215,7 +1215,7 @@ ospf_sh_state(struct proto *p, int verbose)
if ((hea[i]->lsa.rt != last_rt) && (hea[i]->lsa.type != LSA_T_NET))
{
cli_msg(-1016, "");
cli_msg(-1016, (hea[i]->lsa.type != LSA_T_EXT) ? "\trouter %I" : "\txrouter %I", hea[i]->lsa.rt);
cli_msg(-1016, (hea[i]->lsa.type != LSA_T_EXT) ? "\trouter %I" : "\txrouter %I", ipa_from_u32(hea[i]->lsa.rt));
last_rt = hea[i]->lsa.rt;
}