From 32562856b8fe04876513c0ba684508ae08bb50e6 Mon Sep 17 00:00:00 2001 From: skarg Date: Wed, 23 Mar 2005 15:57:09 +0000 Subject: [PATCH] added global address setup to correctly configure global sends --- bacnet-stack/ethernet.h | 2 ++ bacnet-stack/ports/linux/ethernet.c | 29 ++++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/bacnet-stack/ethernet.h b/bacnet-stack/ethernet.h index 9558fefb..0a249105 100644 --- a/bacnet-stack/ethernet.h +++ b/bacnet-stack/ethernet.h @@ -46,6 +46,8 @@ bool ethernet_valid(void); void ethernet_cleanup(void); bool ethernet_init(char *interface_name); +void ethernet_set_broadcast_address( + BACNET_ADDRESS *dest); // destination address /* function to send a packet out the 802.2 socket */ /* returns 0 on success, non-zero on failure */ diff --git a/bacnet-stack/ports/linux/ethernet.c b/bacnet-stack/ports/linux/ethernet.c index 7ef7dfb5..07857309 100644 --- a/bacnet-stack/ports/linux/ethernet.c +++ b/bacnet-stack/ports/linux/ethernet.c @@ -350,13 +350,40 @@ void ethernet_get_my_address(BACNET_ADDRESS *my_address) int i = 0; my_address->mac_len = 0; - my_address->net = 0; // local only, no routing for (i = 0; i < 6; i++) { my_address->mac[i] = Ethernet_MAC_Address[i]; my_address->mac_len++; } + my_address->net = 0; // local only, no routing + my_address->len = 0; + for (i = 0; i < MAX_MAC_LEN; i++) + { + my_address->adr[i] = 0; + } return; } +void ethernet_set_broadcast_address( + BACNET_ADDRESS *dest) // destination address +{ + int i = 0; // counter + + if (dest) + { + for (i = 0; i < 6; i++) + { + dest->mac[i] = 0xFF; + } + dest->mac_len = 6; + dest->net = BACNET_BROADCAST_NETWORK; + dest->len = 0; // denotes broadcast address + for (i = 0; i < MAX_MAC_LEN; i++) + { + dest->adr[i] = 0; + } + } + + return; +}