Fix couple compiler warnings (#737)
* linux/bip6: Use function over PRINTF macro Our repo should be C89 compatibale. C89 does not support variac macros. For this reason use variac functions. This also enables to print different streams than just stderr. Also now if something is changed in debug_fprintf it also affect here which is good. * Use __inline__ over inline in library Use __inline__ over inline as that is C89/C90 combatible. With MSVC we need to use __inline so just define __inline__ to it if not already. * h_get_alarm_sum: Fix -Wself-assign compiler warning We get Wself-assign if PRINT_ENABLED is 0 ``` src/bacnet/basic/service/h_get_alarm_sum.c:129:16: warning: explicitly assigning value of variable of type 'int' to itself [-Wself-assign] [build] 129 | bytes_sent = bytes_sent; [build] | ~~~~~~~~~~ ^ ~~~~~~~~~~ ``` --------- Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
This commit is contained in:
+32
-15
@@ -15,21 +15,38 @@
|
||||
#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"
|
||||
|
||||
/* enable debugging */
|
||||
static bool BIP6_Debug = false;
|
||||
#if PRINT_ENABLED
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#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
|
||||
@@ -38,7 +55,7 @@ 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],
|
||||
@@ -84,12 +101,12 @@ void bip6_set_interface(char *ifname)
|
||||
exit(1);
|
||||
}
|
||||
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)) {
|
||||
@@ -110,7 +127,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(stderr, "BIP6: unable to set interface: %s\n", ifname);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@@ -398,7 +415,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);
|
||||
|
||||
Reference in New Issue
Block a user