diff --git a/bacnet-stack/src/bip.c b/bacnet-stack/src/bip.c index aae6fb74..f8aafd49 100644 --- a/bacnet-stack/src/bip.c +++ b/bacnet-stack/src/bip.c @@ -166,7 +166,9 @@ int bip_send_pdu( mtu[0] = BVLL_TYPE_BACNET_IP; bip_dest.sin_family = AF_INET; - if (dest->net == BACNET_BROADCAST_NETWORK) { + if (dest->net == BACNET_BROADCAST_NETWORK + || dest->len == 0 + || dest->mac_len == 0) { /* broadcast */ address.s_addr = BIP_Broadcast_Address.s_addr; port = BIP_Port; diff --git a/bacnet-stack/src/bvlc.c b/bacnet-stack/src/bvlc.c index d7a53411..f5eac94c 100644 --- a/bacnet-stack/src/bvlc.c +++ b/bacnet-stack/src/bvlc.c @@ -1140,7 +1140,9 @@ int bvlc_send_pdu( /* bip datalink doesn't need to know the npdu data */ (void) npdu_data; mtu[0] = BVLL_TYPE_BACNET_IP; - if (dest->net == BACNET_BROADCAST_NETWORK) { + if ( dest->net == BACNET_BROADCAST_NETWORK + || dest->len == 0 + || dest->mac_len == 0) { /* if we are a foreign device */ if (Remote_BBMD.sin_port) { mtu[1] = BVLC_DISTRIBUTE_BROADCAST_TO_NETWORK;