diff --git a/ports/bsd/bip6.c b/ports/bsd/bip6.c index 02584630..1eaf060b 100644 --- a/ports/bsd/bip6.c +++ b/ports/bsd/bip6.c @@ -15,6 +15,9 @@ #include "bacnet/datalink/bip6.h" #include "bacnet/basic/object/device.h" #include "bacnet/basic/bbmd6/h_bbmd6.h" +#if DEBUG_ENABLED +#include "bacnet/basic/sys/debug.h" +#endif #include "bacport.h" #if defined(__APPLE__) || defined(__darwin__) @@ -29,17 +32,31 @@ /* enable debugging */ static bool BIP6_Debug = false; -#if PRINT_ENABLED -#include -#include -#define PRINTF(...) \ - if (BIP6_Debug) { \ - fprintf(stderr,__VA_ARGS__); \ - fflush(stderr); \ + +/** + * @brief Conditionally use the debug_printf function + * + * @param stream - file stream to print to + * @param format - printf format string + * @param ... - variable arguments + * @note This function is only works if + * PRINT_ENABLED and BIP6_Debug is non-zero + */ +static void debug_fprintf_bip6(FILE *stream, const char *format, ...) +{ +#if DEBUG_ENABLED + va_list ap; + + if (BIP6_Debug) { + va_start(ap, format); + debug_fprintf(stream, format, ap); + va_end(ap); } #else -#define PRINTF(...) + (void)stream; + (void)format; #endif +} /** * @brief Print the IPv6 address with debug info @@ -48,7 +65,9 @@ static bool BIP6_Debug = false; */ static void debug_print_ipv6(const char *str, const struct in6_addr *addr) { - PRINTF("BIP6: %s " + debug_fprintf_bip6( + stdout, + "BIP6: %s " "%02x%02x:%02x%02x:%02x%02x:%02x%02x:" "%02x%02x:%02x%02x:%02x%02x:%02x%02x\n", str, (int)addr->s6_addr[0], (int)addr->s6_addr[1], @@ -62,7 +81,7 @@ static void debug_print_ipv6(const char *str, const struct in6_addr *addr) } /** - * @brief Enabled debug printing of BACnet/IPv4 + * @brief Enabled debug printing of BACnet/IPv6 */ void bip6_debug_enable(void) { @@ -95,11 +114,11 @@ void bip6_set_interface(char *ifname) } ifa_tmp = ifa; if (BIP6_Debug) { - PRINTF("BIP6: seeking interface: %s\n", ifname); + debug_fprintf_bip6(stdout, "BIP6: seeking interface: %s\n", ifname); } while (ifa_tmp) { if ((ifa_tmp->ifa_addr) && (ifa_tmp->ifa_addr->sa_family == AF_INET6)) { - PRINTF("BIP6: found interface: %s\n", ifa_tmp->ifa_name); + debug_fprintf_bip6(stdout, "BIP6: found interface: %s\n", ifa_tmp->ifa_name); } if ((ifa_tmp->ifa_addr) && (ifa_tmp->ifa_addr->sa_family == AF_INET6) && (strcasecmp(ifa_tmp->ifa_name, ifname) == 0)) { @@ -120,7 +139,7 @@ void bip6_set_interface(char *ifname) ifa_tmp = ifa_tmp->ifa_next; } if (!found) { - PRINTF("BIP6: unable to set interface: %s\n", ifname); + debug_fprintf_bip6(stdout, "BIP6: unable to set interface: %s\n", ifname); exit(1); } } @@ -409,7 +428,7 @@ bool bip6_init(char *ifname) if (BIP6_Addr.port == 0) { bip6_set_port(0xBAC0U); } - PRINTF("BIP6: IPv6 UDP port: 0x%04X\n", BIP6_Addr.port); + debug_fprintf_bip6(stdout, "BIP6: IPv6 UDP port: 0x%04X\n", BIP6_Addr.port); if (BIP6_Broadcast_Addr.address[0] == 0) { bvlc6_address_set(&BIP6_Broadcast_Addr, BIP6_MULTICAST_SITE_LOCAL, 0, 0, 0, 0, 0, 0, BIP6_MULTICAST_GROUP_ID); diff --git a/ports/linux/bip6.c b/ports/linux/bip6.c index c1139ed4..6628bf56 100644 --- a/ports/linux/bip6.c +++ b/ports/linux/bip6.c @@ -69,7 +69,7 @@ static void debug_print_ipv6(const char *str, const struct in6_addr *addr) } /** - * @brief Enabled debug printing of BACnet/IPv4 + * @brief Enabled debug printing of BACnet/IPv6 */ void bip6_debug_enable(void) {