From 5b3067421534b9f9d1edc8054aa114cfa8f3534a Mon Sep 17 00:00:00 2001 From: Alexander Wells <79699091+AlexanderWells-diamond@users.noreply.github.com> Date: Mon, 24 Oct 2022 19:44:42 +0100 Subject: [PATCH] Provide getter for broadcast BIP socket (#350) --- ports/bsd/bip-init.c | 11 +++++++++++ ports/linux/bip-init.c | 11 ++++++++++- ports/win32/bip-init.c | 13 +++++++++++++ src/bacnet/datalink/bip.h | 3 +++ test/bacnet/datalink/mock/src/bip-mock.c | 5 +++++ 5 files changed, 42 insertions(+), 1 deletion(-) 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(); +}