diff --git a/ports/bsd/bip-init.c b/ports/bsd/bip-init.c index d284a6ae..181c1684 100644 --- a/ports/bsd/bip-init.c +++ b/ports/bsd/bip-init.c @@ -460,13 +460,13 @@ static void *get_addr_ptr(struct sockaddr *sockaddr_ptr) /** * @brief Get the default interface name using routing info * @return interface name, or NULL if not found or none -*/ + */ static char *ifname_default(void) { if (BIP_Interface_Name[0] != 0) { return BIP_Interface_Name; } - snprintf(BIP_Interface_Name, sizeof(BIP_Interface_Name), "%s", "en0"); + snprintf(BIP_Interface_Name, sizeof(BIP_Interface_Name), "%s", "en0"); return BIP_Interface_Name; } @@ -606,7 +606,8 @@ void bip_set_interface(const char *ifname) } BIP_Broadcast_Addr.s_addr = htonl(broadcast_address); #else - rv = bip_get_local_address_ioctl(ifname, &broadcast_address, SIOCGIFBRDADDR); + rv = + bip_get_local_address_ioctl(ifname, &broadcast_address, SIOCGIFBRDADDR); if (rv < 0) { BIP_Broadcast_Addr.s_addr = ~0; } else { @@ -723,7 +724,8 @@ bool bip_init(char *ifname) broadcast_sin_config.sin_family = AF_INET; broadcast_sin_config.sin_port = BIP_Port; - memset(&(broadcast_sin_config.sin_zero), '\0', + memset( + &(broadcast_sin_config.sin_zero), '\0', sizeof(broadcast_sin_config.sin_zero)); if (BIP_Broadcast_Binding_Address_Override) { broadcast_sin_config.sin_addr.s_addr = diff --git a/ports/linux/bip-init.c b/ports/linux/bip-init.c index cdd10b93..3c03664e 100644 --- a/ports/linux/bip-init.c +++ b/ports/linux/bip-init.c @@ -817,6 +817,11 @@ void bip_set_interface(const char *ifname) } } +const char *bip_get_interface(void) +{ + return BIP_Interface_Name; +} + static int createSocket(const struct sockaddr_in *sin) { int status = 0; /* return from socket lib calls */ diff --git a/src/bacnet/basic/object/device.c b/src/bacnet/basic/object/device.c index 48022009..3539410c 100644 --- a/src/bacnet/basic/object/device.c +++ b/src/bacnet/basic/object/device.c @@ -1060,6 +1060,23 @@ bool Device_Serial_Number_Set(const char *str, size_t length) return status; } +void Device_Time_Of_Restart(BACNET_TIMESTAMP *time_of_restart) +{ + bacapp_timestamp_copy(time_of_restart, &Time_Of_Device_Restart); +} + +bool Device_Set_Time_Of_Restart(const BACNET_TIMESTAMP *time_of_restart) +{ + bool status = false; + + if (time_of_restart) { + bacapp_timestamp_copy(&Time_Of_Device_Restart, time_of_restart); + status = true; + } + + return status; +} + uint8_t Device_Protocol_Version(void) { return BACNET_PROTOCOL_VERSION; diff --git a/src/bacnet/basic/object/netport.c b/src/bacnet/basic/object/netport.c index 9f43cf0a..9c235e08 100644 --- a/src/bacnet/basic/object/netport.c +++ b/src/bacnet/basic/object/netport.c @@ -1211,6 +1211,7 @@ void Network_Port_Changes_Pending_Discard(uint32_t object_instance) if (index < BACNET_NETWORK_PORTS_MAX) { if (Object_List[index].Discard_Changes) { Object_List[index].Discard_Changes(object_instance); + Object_List[index].Changes_Pending = false; } } } @@ -4662,7 +4663,8 @@ void Network_Port_Changes_Discard(void) for (i = 0; i < BACNET_NETWORK_PORTS_MAX; i++) { if (Object_List[i].Changes_Pending) { - Network_Port_Changes_Pending_Discard(i); + Network_Port_Changes_Pending_Discard( + Object_List[i].Instance_Number); Object_List[i].Changes_Pending = false; } } diff --git a/src/bacnet/datalink/bip.h b/src/bacnet/datalink/bip.h index d095f2a8..0c454cde 100644 --- a/src/bacnet/datalink/bip.h +++ b/src/bacnet/datalink/bip.h @@ -35,6 +35,9 @@ bool bip_init(char *ifname); BACNET_STACK_EXPORT void bip_set_interface(const char *ifname); +BACNET_STACK_EXPORT +const char *bip_get_interface(void); + BACNET_STACK_EXPORT void bip_cleanup(void);