diff --git a/overlay_abbreviations.c b/overlay_abbreviations.c index c678e25c..92b19805 100644 --- a/overlay_abbreviations.c +++ b/overlay_abbreviations.c @@ -245,6 +245,14 @@ int overlay_abbreviate_address(unsigned char *in,unsigned char *out,int *ofs) for(i=0;idestination)) return WHY("This broadcast packet ID has been seen recently"); int i; - for(i=0;inexthop[i]=0xff; + /* Copy the broadcast address exactly so that we preserve the BPI */ + for(i=0;inexthop[i]=p->destination[i]; p->nexthop_address_status=OA_RESOLVED; } else { if (overlay_get_nexthop((unsigned char *)p->destination,p->nexthop,&nexthoplen,&p->nexthop_interface)) {