diff --git a/ports/bsd/bip-init.c b/ports/bsd/bip-init.c index 82a88a6f..1e065e9c 100644 --- a/ports/bsd/bip-init.c +++ b/ports/bsd/bip-init.c @@ -84,12 +84,23 @@ static void debug_print_ipv4(const char *str, /** * @brief Return the active BIP socket. * @return The active BIP socket, or -1 if uninitialized. + * @see bip_get_broadcast_socket */ int bip_get_socket(void) { return BIP_Socket; } +/** + * @brief Return the active BIP Broadcast socket. + * @return The active BIP Broadcast socket, or -1 if uninitialized. + * @see bip_get_socket + */ +int bip_get_broadcast_socket(void) +{ + return BIP_Broadcast_Socket; +} + /** * @brief Enabled debug printing of BACnet/IPv4 */ diff --git a/ports/linux/bip-init.c b/ports/linux/bip-init.c index 0d206e4c..d9c132d8 100644 --- a/ports/linux/bip-init.c +++ b/ports/linux/bip-init.c @@ -95,16 +95,25 @@ static void debug_print_ipv4(const char *str, } } - /** * @brief Return the active BIP socket. * @return The active BIP socket, or -1 if uninitialized. + * @see bip_get_broadcast_socket */ int bip_get_socket(void) { return BIP_Socket; } +/** + * @brief Return the active BIP Broadcast socket. + * @return The active BIP Broadcast socket, or -1 if uninitialized. + * @see bip_get_socket + */ +int bip_get_broadcast_socket(void) +{ + return BIP_Broadcast_Socket; +} /** * @brief Enabled debug printing of BACnet/IPv4 diff --git a/ports/win32/bip-init.c b/ports/win32/bip-init.c index a8328a8b..e52288b7 100644 --- a/ports/win32/bip-init.c +++ b/ports/win32/bip-init.c @@ -89,12 +89,25 @@ static void debug_print_ipv4(const char *str, * @return The active BIP socket, or INVALID_SOCKET if uninitialized. * @note Strictly, the return type should be SOCKET, however in practice * Windows never returns values large enough that truncation is an issue. + * @see bip_get_broadcast_socket */ int bip_get_socket(void) { return (int)BIP_Socket; } +/** + * @brief Return the active BIP Broadcast socket. + * @return The active BIP Broadcast socket, or INVALID_SOCKET if uninitialized. + * @note Strictly, the return type should be SOCKET, however in practice + * Windows never returns values large enough that truncation is an issue. + * @see bip_get_socket + */ +int bip_get_broadcast_socket(void) +{ + return (int)BIP_Broadcast_Socket; +} + /** * @brief Enabled debug printing of BACnet/IPv4 */ diff --git a/src/bacnet/datalink/bip.h b/src/bacnet/datalink/bip.h index 136ba0ea..5a93a3de 100644 --- a/src/bacnet/datalink/bip.h +++ b/src/bacnet/datalink/bip.h @@ -119,6 +119,9 @@ extern "C" { BACNET_STACK_EXPORT int bip_get_socket(void); + BACNET_STACK_EXPORT + int bip_get_broadcast_socket(void); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/test/bacnet/datalink/mock/src/bip-mock.c b/test/bacnet/datalink/mock/src/bip-mock.c index 8b012459..1ae69c79 100644 --- a/test/bacnet/datalink/mock/src/bip-mock.c +++ b/test/bacnet/datalink/mock/src/bip-mock.c @@ -133,3 +133,8 @@ int bip_get_socket(void) { return ztest_get_return_value(); } + +int bip_get_broadcast_socket(void) +{ + return ztest_get_return_value(); +}