From 2cf4772ec879d6d430e7cdb53d254bf0bbc257bd Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Tue, 21 Apr 2026 22:31:51 -0500 Subject: [PATCH] Fixed EPICS values for recipient list, empty lists, and authentication factors (#1310) * Add BACnet authentication factor support with comparison functions and text strings and parsing * Fix MyReadPropertyAckHandler to allow zero length for empty property list * Fix rp_ack_fully_decode_service_request to handle empty recipient list * Enhance PrintReadPropertyArray to handle empty lists with improved output formatting * Refactor command line argument handling for target-address to accept dotted IP if offered. * This commit introduces the inclusion of `authentication_factor.c` and `authentication_factor_format.c` in the CMakeLists.txt files for multiple BACnet tests to fix the broken test builds. * Refactor bacapp.c for improved readability and documentation; streamline code formatting and enhance function comments. * Fix return value assignment in bacapp_snprintf_value for authentication format * Enhance help message to clarify target MAC or IP address format and improve readability * Implement memory management for ReadProperty ACK service requests and improve error handling in decoding --- CMakeLists.txt | 2 +- apps/epics/main.c | 38 ++-- src/bacnet/authentication_factor.c | 22 +++ src/bacnet/authentication_factor.h | 6 +- src/bacnet/authentication_factor_format.c | 31 +++ src/bacnet/authentication_factor_format.h | 5 + src/bacnet/bacapp.c | 178 +++++++++++++++++- src/bacnet/bacapp.h | 6 + src/bacnet/bacenum.h | 10 +- src/bacnet/bactext.c | 63 +++++++ src/bacnet/bactext.h | 4 + src/bacnet/basic/service/h_rp_a.c | 65 ++++--- src/bacnet/config.h | 4 + test/bacnet/access_rule/CMakeLists.txt | 2 + .../CMakeLists.txt | 1 + test/bacnet/bacapp/CMakeLists.txt | 2 + test/bacnet/bacaudit/CMakeLists.txt | 2 + test/bacnet/bacdest/CMakeLists.txt | 2 + test/bacnet/bacdevobjpropref/CMakeLists.txt | 2 + test/bacnet/baclog/CMakeLists.txt | 2 + test/bacnet/bactimevalue/CMakeLists.txt | 2 + .../basic/binding/address/CMakeLists.txt | 2 + test/bacnet/basic/object/acc/CMakeLists.txt | 2 + .../object/access_credential/CMakeLists.txt | 1 + .../basic/object/access_door/CMakeLists.txt | 2 + .../basic/object/access_point/CMakeLists.txt | 2 + .../basic/object/access_rights/CMakeLists.txt | 2 + .../basic/object/access_user/CMakeLists.txt | 2 + .../basic/object/access_zone/CMakeLists.txt | 1 + test/bacnet/basic/object/ai/CMakeLists.txt | 2 + test/bacnet/basic/object/ao/CMakeLists.txt | 2 + .../basic/object/auditlog/CMakeLists.txt | 2 + test/bacnet/basic/object/av/CMakeLists.txt | 2 + .../basic/object/bacfile/CMakeLists.txt | 2 + test/bacnet/basic/object/bi/CMakeLists.txt | 2 + .../object/bitstring_value/CMakeLists.txt | 2 + test/bacnet/basic/object/blo/CMakeLists.txt | 2 + test/bacnet/basic/object/bo/CMakeLists.txt | 2 + test/bacnet/basic/object/bv/CMakeLists.txt | 2 + .../basic/object/calendar/CMakeLists.txt | 2 + .../basic/object/channel/CMakeLists.txt | 2 + .../basic/object/color_object/CMakeLists.txt | 2 + .../object/color_temperature/CMakeLists.txt | 2 + .../basic/object/command/CMakeLists.txt | 2 + test/bacnet/basic/object/csv/CMakeLists.txt | 2 + test/bacnet/basic/object/iv/CMakeLists.txt | 2 + test/bacnet/basic/object/lc/CMakeLists.txt | 2 + test/bacnet/basic/object/lo/CMakeLists.txt | 2 + test/bacnet/basic/object/loop/CMakeLists.txt | 2 + test/bacnet/basic/object/lsp/CMakeLists.txt | 2 + test/bacnet/basic/object/lsz/CMakeLists.txt | 2 + .../basic/object/ms-input/CMakeLists.txt | 2 + test/bacnet/basic/object/mso/CMakeLists.txt | 2 + test/bacnet/basic/object/msv/CMakeLists.txt | 2 + test/bacnet/basic/object/nc/CMakeLists.txt | 2 + .../basic/object/netport/CMakeLists.txt | 2 + test/bacnet/basic/object/osv/CMakeLists.txt | 2 + test/bacnet/basic/object/piv/CMakeLists.txt | 2 + .../basic/object/program/CMakeLists.txt | 2 + .../basic/object/schedule/CMakeLists.txt | 2 + .../object/structured_view/CMakeLists.txt | 2 + .../basic/object/time_value/CMakeLists.txt | 2 + test/bacnet/basic/object/timer/CMakeLists.txt | 2 + .../basic/object/trendlog/CMakeLists.txt | 2 + .../basic/server/bacnet_device/CMakeLists.txt | 2 + .../bacnet/basic/service/h_cov/CMakeLists.txt | 2 + test/bacnet/cov/CMakeLists.txt | 2 + test/bacnet/create_object/CMakeLists.txt | 2 + .../datalink/bsc-datalink/CMakeLists.txt | 2 + test/bacnet/datalink/bsc-node/CMakeLists.txt | 2 + .../bacnet/datalink/bsc-socket/CMakeLists.txt | 2 + test/bacnet/datalink/hub-sc/CMakeLists.txt | 2 + test/bacnet/delete_object/CMakeLists.txt | 2 + test/bacnet/event/CMakeLists.txt | 2 + test/bacnet/getalarm/CMakeLists.txt | 2 + test/bacnet/getevent/CMakeLists.txt | 2 + test/bacnet/hostnport/CMakeLists.txt | 2 + test/bacnet/list_element/CMakeLists.txt | 2 + test/bacnet/lso/CMakeLists.txt | 2 + test/bacnet/ptransfer/CMakeLists.txt | 2 + test/bacnet/rpm/CMakeLists.txt | 2 + test/bacnet/secure_connect/CMakeLists.txt | 2 + test/bacnet/specialevent/CMakeLists.txt | 2 + test/bacnet/timesync/CMakeLists.txt | 2 + test/bacnet/weeklyschedule/CMakeLists.txt | 2 + test/bacnet/wp/CMakeLists.txt | 2 + test/bacnet/wpm/CMakeLists.txt | 2 + test/bacnet/write_group/CMakeLists.txt | 2 + 88 files changed, 523 insertions(+), 58 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b8df231d..284a6521 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,9 +274,9 @@ add_library(${PROJECT_NAME} src/bacnet/assigned_access_rights.c src/bacnet/assigned_access_rights.h src/bacnet/authentication_factor.c + src/bacnet/authentication_factor.h src/bacnet/authentication_factor_format.c src/bacnet/authentication_factor_format.h - src/bacnet/authentication_factor.h src/bacnet/awf.c src/bacnet/awf.h src/bacnet/bacaddr.c diff --git a/apps/epics/main.c b/apps/epics/main.c index 67372741..1b512f89 100644 --- a/apps/epics/main.c +++ b/apps/epics/main.c @@ -245,7 +245,7 @@ static void MyReadPropertyAckHandler( len = rp_ack_fully_decode_service_request( service_request, service_len, rp_data); } - if (len > 0) { + if (len >= 0) { memmove( &Read_Property_Multiple_Data.service_data, service_data, sizeof(BACNET_CONFIRMED_SERVICE_ACK_DATA)); @@ -472,7 +472,11 @@ static void PrintReadPropertyArray( if (Walked_List_Index == 1) { /* If the array is empty, make it VTS3-friendly */ if (value->tag == BACNET_APPLICATION_TAG_EMPTYLIST) { - fprintf(stdout, "?\n "); + if (ShowValues) { + fprintf(stdout, "{}\n"); + } else { + fprintf(stdout, "{?}\n"); + } return; } @@ -575,7 +579,7 @@ static void PrintReadPropertyData( * But are we showing Values? We (VTS3) want ? instead of {?,?} to show * up. */ switch (rpm_property->propertyIdentifier) { - /* Screen the Properties that can be arrays or Sequences */ + /* Screen the Properties that can be arrays or Sequences */ case PROP_PRESENT_VALUE: case PROP_PRIORITY_ARRAY: if (!ShowValues) { @@ -922,11 +926,12 @@ static void print_help(const char *filename) printf("-v: show values instead of '?' \n"); printf("-c: columns break for BACnetARRAY. Default is 0=always\n"); printf("-d: show only device object properties\n"); - printf("-p: Use sport for \"my\" port. 0xBAC0 is default.\n"); + printf("-p: Use sport for \"my\" port. 47808 is default.\n"); printf(" Allows you to communicate with a localhost target.\n"); - printf("-t: declare target's MAC instead of using Who-Is to bind to \n"); - printf(" device-instance. Format is \"C0:A8:00:18:BA:C0\"\n"); - printf(" Use \"7F:00:00:01:BA:C0\" for loopback testing \n"); + printf("-t: declare target's MAC or IP address instead of using Who-Is\n"); + printf(" to bind to device-instance.\n"); + printf(" Format is \"192.168.1.42:47808\" or \"C0:A8:01:2A:BA:C0\".\n"); + printf(" Use \"127.0.0.1:47808\" for loopback testing.\n"); printf("-n: specify target's DNET if not local BACnet network \n"); printf(" or on routed Virtual Network \n"); printf("\n"); @@ -938,6 +943,7 @@ static int CheckCommandLineArgs(int argc, char *argv[]) { int i; bool bFoundTarget = false; + BACNET_MAC_ADDRESS mac = { 0 }; int argi = 0; const char *filename = NULL; @@ -1002,22 +1008,8 @@ static int CheckCommandLineArgs(int argc, char *argv[]) break; case 't': if (++i < argc) { - /* decoded MAC addresses */ - unsigned mac[6]; - /* number of successful decodes */ - int count; - /* loop counter */ - unsigned j; - count = sscanf( - argv[i], "%2x:%2x:%2x:%2x:%2x:%2x", &mac[0], - &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]); - if (count == 6) { /* success */ - Target_Address.mac_len = count; - for (j = 0; j < 6; j++) { - Target_Address.mac[j] = (uint8_t)mac[j]; - } - Target_Address.net = 0; - Target_Address.len = 0; /* No src address */ + if (bacnet_address_mac_from_ascii(&mac, argv[i])) { + bacnet_address_init(&Target_Address, &mac, 0, NULL); Provided_Targ_MAC = true; break; } else { diff --git a/src/bacnet/authentication_factor.c b/src/bacnet/authentication_factor.c index d40d2e08..1821b279 100644 --- a/src/bacnet/authentication_factor.c +++ b/src/bacnet/authentication_factor.c @@ -205,3 +205,25 @@ int bacapp_decode_context_authentication_factor( return bacnet_authentication_factor_context_decode(apdu, MAX_APDU, tag, af); } #endif + +/** + * @brief Compare two BACnetAuthenticationFactor values for equality + * @param value Pointer to the first value to compare + * @param test_value Pointer to the second value to compare + * @return true if the values are the same, false otherwise + */ +bool bacnet_authentication_factor_same( + const BACNET_AUTHENTICATION_FACTOR *value, + const BACNET_AUTHENTICATION_FACTOR *test_value) +{ + if (value == NULL || test_value == NULL) { + return false; + } + if (value->format_type != test_value->format_type) { + return false; + } + if (value->format_class != test_value->format_class) { + return false; + } + return octetstring_value_same(&value->value, &test_value->value); +} diff --git a/src/bacnet/authentication_factor.h b/src/bacnet/authentication_factor.h index cf3ac343..f19e2970 100644 --- a/src/bacnet/authentication_factor.h +++ b/src/bacnet/authentication_factor.h @@ -13,7 +13,7 @@ /* BACnet Stack defines - first */ #include "bacnet/bacdef.h" /* BACnet Stack API */ -#include "bacnet/bacapp.h" +#include "bacnet/bacstr.h" typedef struct BACnetAuthenticationFactor { BACNET_AUTHENTICATION_FACTOR_TYPE format_type; @@ -51,6 +51,10 @@ BACNET_STACK_DEPRECATED( BACNET_STACK_EXPORT int bacapp_decode_context_authentication_factor( const uint8_t *apdu, uint8_t tag, BACNET_AUTHENTICATION_FACTOR *af); +BACNET_STACK_EXPORT +bool bacnet_authentication_factor_same( + const BACNET_AUTHENTICATION_FACTOR *value, + const BACNET_AUTHENTICATION_FACTOR *test_value); #ifdef __cplusplus } diff --git a/src/bacnet/authentication_factor_format.c b/src/bacnet/authentication_factor_format.c index 3e15b1fd..2808f2f8 100644 --- a/src/bacnet/authentication_factor_format.c +++ b/src/bacnet/authentication_factor_format.c @@ -223,3 +223,34 @@ int bacapp_decode_context_authentication_factor_format( apdu, MAX_APDU, tag, data); } #endif + +/** + * @brief Compare two BACNET_AUTHENTICATION_FACTOR_FORMAT structures + * @param data1 Pointer to the first structure to compare + * @param data2 Pointer to the second structure to compare + * @return true if the structures are the same, false otherwise + * @details The structures are considered the same if they have the same format + * type, and if the format type is CUSTOM, they must also have the same vendor + * ID and vendor format. + */ +bool bacnet_authentication_factor_format_same( + const BACNET_AUTHENTICATION_FACTOR_FORMAT *data1, + const BACNET_AUTHENTICATION_FACTOR_FORMAT *data2) +{ + if (!data1 || !data2) { + return false; + } + if (data1->format_type != data2->format_type) { + return false; + } + if (data1->format_type == AUTHENTICATION_FACTOR_CUSTOM) { + if (data1->vendor_id != data2->vendor_id) { + return false; + } + if (data1->vendor_format != data2->vendor_format) { + return false; + } + } + + return true; +} diff --git a/src/bacnet/authentication_factor_format.h b/src/bacnet/authentication_factor_format.h index 741d473d..4d64e9c9 100644 --- a/src/bacnet/authentication_factor_format.h +++ b/src/bacnet/authentication_factor_format.h @@ -55,6 +55,11 @@ int bacapp_decode_context_authentication_factor_format( uint8_t tag_number, BACNET_AUTHENTICATION_FACTOR_FORMAT *aff); +BACNET_STACK_EXPORT +bool bacnet_authentication_factor_format_same( + const BACNET_AUTHENTICATION_FACTOR_FORMAT *data1, + const BACNET_AUTHENTICATION_FACTOR_FORMAT *data2); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/bacapp.c b/src/bacnet/bacapp.c index 6dd5885b..77589503 100644 --- a/src/bacnet/bacapp.c +++ b/src/bacnet/bacapp.c @@ -409,6 +409,18 @@ int bacapp_encode_application_data( apdu_len = bacnet_timer_value_no_value_encode(apdu); break; #endif +#if defined(BACAPP_AUTHENTICATION) + case BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT: + /* BACnetAuthenticationFactorFormat */ + apdu_len = bacapp_encode_authentication_factor_format( + apdu, &value->type.Authentication_Format); + break; + case BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR: + /* BACnetAuthenticationFactor */ + apdu_len = bacapp_encode_authentication_factor( + apdu, &value->type.Authentication_Factor); + break; +#endif #if defined(BACAPP_LOG_RECORD) case BACNET_APPLICATION_TAG_LOG_RECORD: /* BACnetLogRecord */ @@ -1138,6 +1150,9 @@ int bacapp_known_property_tag( } else if (object_type == OBJECT_CHANNEL) { /* Properties using BACnetChannelValue */ return BACNET_APPLICATION_TAG_CHANNEL_VALUE; + } else if (object_type == OBJECT_CREDENTIAL_DATA_INPUT) { + /* Properties using BACnetAuthenticationFactor */ + return BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR; } /* note: primitive application tagged present-values return '-1' */ return -1; @@ -1193,7 +1208,9 @@ int bacapp_known_property_tag( case PROP_SLAVE_ADDRESS_BINDING: /* BACnetAddressBinding */ return BACNET_APPLICATION_TAG_ADDRESS_BINDING; - + case PROP_SUPPORTED_FORMATS: + /* BACnetAuthenticationFactorFormat */ + return BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT; case PROP_LOG_BUFFER: /* BACnetLogRecord */ return BACNET_APPLICATION_TAG_LOG_RECORD; @@ -1573,6 +1590,19 @@ int bacapp_decode_application_tag_value( apdu, apdu_size, &value->type.Address_Binding); break; #endif +#if defined(BACAPP_AUTHENTICATION) + case BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT: + /* BACnetAuthenticationFactorFormat */ + apdu_len = bacnet_authentication_factor_format_decode( + apdu, apdu_size, &value->type.Authentication_Format); + break; + case BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR: + /* BACnetAuthenticationFactor */ + apdu_len = bacnet_authentication_factor_decode( + apdu, apdu_size, &value->type.Authentication_Factor); + break; + +#endif #if defined(BACAPP_LOG_RECORD) case BACNET_APPLICATION_TAG_LOG_RECORD: /* BACnetLogRecord */ @@ -1629,7 +1659,7 @@ int bacapp_decode_known_array_property( int apdu_len = 0; int tag; - if (bacnet_is_closing_tag(apdu, apdu_size)) { + if ((apdu_size == 0) || bacnet_is_closing_tag(apdu, apdu_size)) { if (value) { value->tag = BACNET_APPLICATION_TAG_EMPTYLIST; } @@ -3755,6 +3785,29 @@ static int bacapp_snprintf_action_command( } #endif +#if defined(BACAPP_AUTHENTICATION) +int bacapp_snprintf_authentication_factor( + char *str, size_t str_len, const BACNET_AUTHENTICATION_FACTOR *value) +{ + int slen; + int ret_val = 0; + + slen = bacapp_snprintf(str, str_len, "{"); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + slen = bacapp_snprintf( + str, str_len, "%s,%lu,", + bactext_authentication_factor_type_name(value->format_type), + (unsigned long)value->format_class); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + slen = bacapp_snprintf_octet_string(str, str_len, &value->value); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + slen = bacapp_snprintf(str, str_len, "}"); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + + return ret_val; +} +#endif + /** * @brief Extract the value into a text string * @param str - the buffer to store the extracted value, or NULL for length @@ -4053,6 +4106,22 @@ int bacapp_snprintf_value( ret_val = bacnet_timer_value_no_value_to_ascii(str, str_len); break; #endif +#if defined(BACAPP_AUTHENTICATION) + case BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT: + ret_val = bacapp_snprintf( + str, str_len, "{%s,%lu,%lu}", + bactext_authentication_factor_type_name( + value->type.Authentication_Format.format_type), + (unsigned long)value->type.Authentication_Format.vendor_id, + (unsigned long) + value->type.Authentication_Format.vendor_format); + break; + case BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR: + /* BACnetAuthenticationFactor */ + ret_val = bacapp_snprintf_authentication_factor( + str, str_len, &value->type.Authentication_Factor); + break; +#endif #if defined(BACAPP_LOG_RECORD) case BACNET_APPLICATION_TAG_LOG_RECORD: ret_val = bacapp_snprintf_log_record( @@ -4798,9 +4867,82 @@ special_event_from_ascii(BACNET_APPLICATION_DATA_VALUE *value, char *str) } #endif /* BACAPP_SPECIAL_EVENT */ -/* used to load the app data struct with the proper data - converted from a command line argument. - "argv" is not const to allow using strtok internally. It MAY be modified. */ +#if defined(BACAPP_AUTHENTICATION) +/** + * @brief Parse a string into a BACnetAuthenticationFactorFormat value + * @param value [out] The BACnetAuthenticationFactorFormat value + * @param argv [in] The string to parse + * @return True on success, else False + */ +static bool bacnet_authentication_format_from_ascii( + BACNET_AUTHENTICATION_FACTOR_FORMAT *value, const char *argv) +{ + bool status = false; + int count; + unsigned long format_type, vendor_id, vendor_format; + + if (!status) { + count = sscanf( + argv, "%lu,%lu,%lu", &format_type, &vendor_id, &vendor_format); + if (count == 3) { + /* optional fields are required when Format-Type + field has a value of CUSTOM. */ + value->format_type = (BACNET_AUTHENTICATION_FACTOR_TYPE)format_type; + value->vendor_id = (uint32_t)vendor_id; + value->vendor_format = (uint32_t)vendor_format; + status = true; + } else if (count == 1) { + value->format_type = (BACNET_AUTHENTICATION_FACTOR_TYPE)format_type; + value->vendor_id = 0; + value->vendor_format = 0; + status = true; + } + } + + return status; +} +/** + * @brief Parse a string into a BACnetAuthenticationFactor value + * @param value [out] The BACnetAuthenticationFactor value + * @param argv [in] The string to parse + * @return True on success, else False + */ +static bool bacnet_authentication_factor_from_ascii( + BACNET_AUTHENTICATION_FACTOR *value, const char *argv) +{ + bool status = false; + int count; + unsigned long format_type, format_class; + char factor_value[256] = { 0 }; + + count = sscanf( + argv, "%lu,%lu,%255s", &format_type, &format_class, factor_value); + if (count == 3) { + value->format_type = (BACNET_AUTHENTICATION_FACTOR_TYPE)format_type; + value->format_class = (uint32_t)format_class; + octetstring_init_ascii_epics(&value->value, factor_value); + status = true; + } + + return status; +} +#endif + +/** + * @brief Load the app data struct with the proper data converted from a command + * line argument. "argv" is not const to allow using strtok internally. It MAY + * be modified. + * @param tag_number The expected application tag number of the value to parse. + * This is used to determine how to parse the argv string. + * @param argv The string to parse into the value struct. This is typically a + * command line argument, and may be modified by this function. + * @param value [out] The BACNET_APPLICATION_DATA_VALUE struct to load with the + * parsed value. The tag field will be set to tag_number, and the type field + * will be set based on the tag. The value field will be set to the parsed value + * from argv. + * @return true if the data was successfully parsed and loaded into the value + * struct, else false + */ bool bacapp_parse_application_data( BACNET_APPLICATION_TAG tag_number, char *argv, @@ -5108,6 +5250,18 @@ bool bacapp_parse_application_data( bacnet_timer_value_no_value_from_ascii(&value->tag, argv); break; #endif +#if defined(BACAPP_AUTHENTICATION) + case BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT: + /* BACnetAuthenticationFactorFormat */ + status = bacnet_authentication_format_from_ascii( + &value->type.Authentication_Format, argv); + break; + case BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR: + /* BACnetAuthenticationFactor */ + status = bacnet_authentication_factor_from_ascii( + &value->type.Authentication_Factor, argv); + break; +#endif #if defined(BACAPP_LOG_RECORD) case BACNET_APPLICATION_TAG_LOG_RECORD: status = bacnet_log_record_datum_from_ascii( @@ -5876,6 +6030,20 @@ bool bacapp_same_value( } break; #endif +#if defined(BACAPP_AUTHENTICATION) + case BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT: + /* BACnetAuthenticationFactorFormat */ + status = bacnet_authentication_factor_format_same( + &value->type.Authentication_Format, + &test_value->type.Authentication_Format); + break; + case BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR: + /* BACnetAuthenticationFactor */ + status = bacnet_authentication_factor_same( + &value->type.Authentication_Factor, + &test_value->type.Authentication_Factor); + break; +#endif #if defined(BACAPP_LOG_RECORD) case BACNET_APPLICATION_TAG_LOG_RECORD: status = bacnet_log_record_same( diff --git a/src/bacnet/bacapp.h b/src/bacnet/bacapp.h index 7971739c..f6066f69 100644 --- a/src/bacnet/bacapp.h +++ b/src/bacnet/bacapp.h @@ -16,6 +16,8 @@ #include "bacnet/bacdef.h" /* BACnet Stack API */ #include "bacnet/access_rule.h" +#include "bacnet/authentication_factor.h" +#include "bacnet/authentication_factor_format.h" #include "bacnet/bacaction.h" #include "bacnet/bacaddr.h" #include "bacnet/bacdest.h" @@ -185,6 +187,10 @@ typedef struct BACnet_Application_Data_Value { BACNET_SC_HUB_FUNCTION_CONNECTION_STATUS SC_Hub_Function_Status; BACNET_SC_DIRECT_CONNECTION_STATUS SC_Direct_Status; BACNET_SC_HUB_CONNECTION_STATUS SC_Hub_Status; +#endif +#if defined(BACAPP_AUTHENTICATION) + BACNET_AUTHENTICATION_FACTOR_FORMAT Authentication_Format; + BACNET_AUTHENTICATION_FACTOR Authentication_Factor; #endif } type; /* simple linked list if needed */ diff --git a/src/bacnet/bacenum.h b/src/bacnet/bacenum.h index dc95f2d1..7e0432ca 100644 --- a/src/bacnet/bacenum.h +++ b/src/bacnet/bacenum.h @@ -1705,6 +1705,10 @@ typedef enum { BACNET_APPLICATION_TAG_ADDRESS_BINDING, /* no-value - context tagged null */ BACNET_APPLICATION_TAG_NO_VALUE, + /* BACnetAuthenticationFactorFormat */ + BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT, + /* BACnetAuthenticationFactor */ + BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR, /* ABSTRACT-SYNTAX - constructed value */ BACNET_APPLICATION_TAG_ABSTRACT_SYNTAX, /* == mark the end of this list == */ @@ -2965,10 +2969,14 @@ typedef enum BACnetAuthenticationDisableReason { AUTHENTICATION_DISABLED_STOLEN = 3, AUTHENTICATION_DISABLED_DAMAGED = 4, AUTHENTICATION_DISABLED_DESTROYED = 5, - AUTHENTICATION_DISABLED_MAX = 6 + AUTHENTICATION_DISABLED_MAX = 6, + AUTHENTICATION_DISABLED_RESERVED_MIN = 6, + AUTHENTICATION_DISABLED_RESERVED_MAX = 63, /* Enumerated values 0-63 are reserved for definition by ASHRAE. Enumerated values 64-65535 may be used by others subject to the procedures and constraints described in Clause 23. */ + AUTHENTICATION_DISABLED_PROPRIETARY_MIN = 64, + AUTHENTICATION_DISABLED_PROPRIETARY_MAX = 65535 } BACNET_AUTHENTICATION_DISABLE_REASON; typedef enum BACnetAuthenticationFactorType { diff --git a/src/bacnet/bactext.c b/src/bacnet/bactext.c index 6918abde..22c9e041 100644 --- a/src/bacnet/bactext.c +++ b/src/bacnet/bactext.c @@ -191,6 +191,10 @@ INDTEXT_DATA bacnet_application_tag_names[] = { { BACNET_APPLICATION_TAG_TIMER_VALUE, "BACnetTimerStateChangeValue" }, { BACNET_APPLICATION_TAG_ADDRESS_BINDING, "BACnetAddressBinding" }, { BACNET_APPLICATION_TAG_NO_VALUE, "BACnetNoValue" }, + { BACNET_APPLICATION_TAG_AUTHENTICATION_FORMAT, + "BACnetAuthenticationFormat" }, + { BACNET_APPLICATION_TAG_AUTHENTICATION_FACTOR, + "BACnetAuthenticationFactor" }, { BACNET_APPLICATION_TAG_ABSTRACT_SYNTAX, "ABSTRACT-SYNTAX" }, { 0, NULL } }; @@ -3379,6 +3383,65 @@ const char *bactext_authentication_status_name(uint32_t index) bactext_authentication_status_names, index, ASHRAE_Reserved_String); } +INDTEXT_DATA bactext_authentication_disable_reason_names[] = { + /* BACnetAuthenticationDisableReason enumerations */ + { AUTHENTICATION_NONE, "none" }, + { AUTHENTICATION_DISABLED, "disabled" }, + { AUTHENTICATION_DISABLED_LOST, "lost" }, + { AUTHENTICATION_DISABLED_STOLEN, "stolen" }, + { AUTHENTICATION_DISABLED_DAMAGED, "damaged" }, + { AUTHENTICATION_DISABLED_DESTROYED, "destroyed" }, + { 0, NULL } +}; + +const char *bactext_authentication_disable_reason_name(uint32_t index) +{ + /* Enumerated values 0-63 are reserved for definition by ASHRAE. + Enumerated values 64-65535 may be used by others subject to + the procedures and constraints described in Clause 23. */ + return indtext_by_index_split_default( + bactext_authentication_disable_reason_names, index, + AUTHENTICATION_DISABLED_PROPRIETARY_MIN, ASHRAE_Reserved_String, + Vendor_Proprietary_String); +} + +INDTEXT_DATA bactext_authentication_factor_type_names[] = { + /* BACnetAuthenticationFactorType enumerations */ + { AUTHENTICATION_FACTOR_UNDEFINED, "undefined" }, + { AUTHENTICATION_FACTOR_ERROR, "error" }, + { AUTHENTICATION_FACTOR_CUSTOM, "custom" }, + { AUTHENTICATION_FACTOR_SIMPLE_NUMBER16, "simple-number16" }, + { AUTHENTICATION_FACTOR_SIMPLE_NUMBER32, "simple-number32" }, + { AUTHENTICATION_FACTOR_SIMPLE_NUMBER56, "simple-number56" }, + { AUTHENTICATION_FACTOR_SIMPLE_ALPHA_NUMERIC, "simple-alpha-numeric" }, + { AUTHENTICATION_FACTOR_ABA_TRACK2, "aba-track2" }, + { AUTHENTICATION_FACTOR_WIEGAND26, "wiegand26" }, + { AUTHENTICATION_FACTOR_WIEGAND37, "wiegand37" }, + { AUTHENTICATION_FACTOR_WIEGAND37_FACILITY, "wiegand37-facility" }, + { AUTHENTICATION_FACTOR_FACILITY16_CARD32, "facility16-card32" }, + { AUTHENTICATION_FACTOR_FACILITY32_CARD32, "facility32-card32" }, + { AUTHENTICATION_FACTOR_FASC_N, "fasc-n" }, + { AUTHENTICATION_FACTOR_FASC_N_BCD, "fasc-n-bcd" }, + { AUTHENTICATION_FACTOR_FASC_N_LARGE, "fasc-n-large" }, + { AUTHENTICATION_FACTOR_FASC_N_LARGE_BCD, "fasc-n-large-bcd" }, + { AUTHENTICATION_FACTOR_GSA75, "gsa75" }, + { AUTHENTICATION_FACTOR_CHUID, "chuid" }, + { AUTHENTICATION_FACTOR_CHUID_FULL, "chuid-full" }, + { AUTHENTICATION_FACTOR_GUID, "guid" }, + { AUTHENTICATION_FACTOR_CBEFF_A, "cbeff-a" }, + { AUTHENTICATION_FACTOR_CBEFF_B, "cbeff-b" }, + { AUTHENTICATION_FACTOR_CBEFF_C, "cbeff-c" }, + { AUTHENTICATION_FACTOR_USER_PASSWORD, "user-password" }, + { 0, NULL } +}; + +const char *bactext_authentication_factor_type_name(uint32_t index) +{ + return indtext_by_index_default( + bactext_authentication_factor_type_names, index, + ASHRAE_Reserved_String); +} + INDTEXT_DATA bactext_authorization_mode_names[] = { /* BACnetAuthorizationMode enumerations */ { AUTHORIZATION_MODE_AUTHORIZE, "authorize" }, diff --git a/src/bacnet/bactext.h b/src/bacnet/bactext.h index db042f8e..b49313fd 100644 --- a/src/bacnet/bactext.h +++ b/src/bacnet/bactext.h @@ -385,6 +385,10 @@ bactext_access_event_name_default(uint32_t index, const char *default_string); BACNET_STACK_EXPORT const char *bactext_authentication_status_name(uint32_t index); +BACNET_STACK_EXPORT +const char *bactext_authentication_disable_reason_name(uint32_t index); +BACNET_STACK_EXPORT +const char *bactext_authentication_factor_type_name(uint32_t index); BACNET_STACK_EXPORT const char *bactext_authorization_mode_name(uint32_t index); diff --git a/src/bacnet/basic/service/h_rp_a.c b/src/bacnet/basic/service/h_rp_a.c index b5c2b1f3..79f6e146 100644 --- a/src/bacnet/basic/service/h_rp_a.c +++ b/src/bacnet/basic/service/h_rp_a.c @@ -131,6 +131,25 @@ void handler_read_property_ack( } } +/** + * @brief Free the memory allocated for a ReadProperty ACK service request. + * @param value [in] The head of the linked list of values to free. + * @param property [in] The property reference to free. + */ +static void rp_ack_service_request_free( + BACNET_APPLICATION_DATA_VALUE *value, BACNET_PROPERTY_REFERENCE *property) +{ + BACNET_APPLICATION_DATA_VALUE *old_value; + + while (value) { + /* free the linked list of values */ + old_value = value; + value = value->next; + free(old_value); + } + free(property); +} + /** Decode the received RP data into a linked list of the results, with the * same data structure used by RPM ACK replies. * This function is provided to provide common handling for RP and RPM data, @@ -149,7 +168,7 @@ int rp_ack_fully_decode_service_request( uint8_t *apdu, int apdu_len, BACNET_READ_ACCESS_DATA *read_access_data) { int decoded_len = 0; /* return value */ - BACNET_READ_PROPERTY_DATA rp1data; + BACNET_READ_PROPERTY_DATA rp1data = { 0 }; BACNET_PROPERTY_REFERENCE *rp1_property; /* single property */ BACNET_APPLICATION_DATA_VALUE *value, *old_value; uint8_t *vdata; @@ -170,33 +189,31 @@ int rp_ack_fully_decode_service_request( } rp1_property->propertyIdentifier = rp1data.object_property; rp1_property->propertyArrayIndex = rp1data.array_index; - /* Is there no Error case possible here, as there is when decoding RPM? - */ - /* rp1_property->error.error_class = ?? */ /* rp_ack_decode_service_request() processing already removed the - * Opening and Closing '3' Tags. - * note: if this is an array, there will be - more than one element to decode */ + * Opening and Closing '3' Tags. */ vdata = rp1data.application_data; vlen = rp1data.application_data_len; value = calloc(1, sizeof(BACNET_APPLICATION_DATA_VALUE)); + if (value == NULL) { + /* can't proceed if calloc failed. */ + rp_ack_service_request_free(NULL, rp1_property); + read_access_data->listOfProperties = NULL; + return BACNET_STATUS_ERROR; + } rp1_property->value = value; + /* check for empty list */ + if (rp1data.application_data_len == 0) { + bacapp_value_list_init(value, 1); + value->tag = BACNET_APPLICATION_TAG_EMPTYLIST; + return 0; + } while (value && vdata && (vlen > 0)) { - if (IS_CONTEXT_SPECIFIC(*vdata)) { - len = bacapp_decode_context_data( - vdata, vlen, value, rp1_property->propertyIdentifier); - } else { - len = bacapp_decode_application_data(vdata, vlen, value); - } + len = bacapp_decode_known_array_property( + vdata, (unsigned)vlen, value, rp1data.object_type, + rp1data.object_property, rp1data.array_index); if (len < 0) { /* unable to decode the data */ - while (value) { - /* free the linked list of values */ - old_value = value; - value = value->next; - free(old_value); - } - free(rp1_property); + rp_ack_service_request_free(value, rp1_property); read_access_data->listOfProperties = NULL; return len; } @@ -211,13 +228,7 @@ int rp_ack_fully_decode_service_request( } else { if (len == 0) { /* nothing decoded and no closing tag, so malformed */ - while (value) { - /* free the linked list of values */ - old_value = value; - value = value->next; - free(old_value); - } - free(rp1_property); + rp_ack_service_request_free(value, rp1_property); read_access_data->listOfProperties = NULL; return BACNET_STATUS_ERROR; } diff --git a/src/bacnet/config.h b/src/bacnet/config.h index 68c96e41..b9f30b24 100644 --- a/src/bacnet/config.h +++ b/src/bacnet/config.h @@ -241,6 +241,7 @@ defined(BACAPP_RECIPIENT) || \ defined(BACAPP_ADDRESS_BINDING) || \ defined(BACAPP_NO_VALUE) || \ + defined(BACAPP_AUTHENTICATION) || \ defined(BACAPP_LOG_RECORD) || \ defined(BACAPP_SECURE_CONNECT) || \ defined(BACAPP_TYPES_EXTRA)) @@ -335,6 +336,8 @@ #define BACAPP_ADDRESS_BINDING #undef BACAPP_NO_VALUE #define BACAPP_NO_VALUE +#undef BACAPP_AUTHENTICATION +#define BACAPP_AUTHENTICATION #undef BACAPP_LOG_RECORD #define BACAPP_LOG_RECORD #undef BACAPP_SECURE_CONNECT @@ -368,6 +371,7 @@ defined(BACAPP_RECIPIENT) || \ defined(BACAPP_ADDRESS_BINDING) || \ defined(BACAPP_NO_VALUE) || \ + defined(BACAPP_AUTHENTICATION) || \ defined(BACAPP_LOG_RECORD) #undef BACAPP_COMPLEX_TYPES #define BACAPP_COMPLEX_TYPES diff --git a/test/bacnet/access_rule/CMakeLists.txt b/test/bacnet/access_rule/CMakeLists.txt index 08b3a23e..eaed888f 100644 --- a/test/bacnet/access_rule/CMakeLists.txt +++ b/test/bacnet/access_rule/CMakeLists.txt @@ -39,6 +39,8 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/access_rule.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/authentication_factor_format/CMakeLists.txt b/test/bacnet/authentication_factor_format/CMakeLists.txt index dcac5885..9cec216f 100644 --- a/test/bacnet/authentication_factor_format/CMakeLists.txt +++ b/test/bacnet/authentication_factor_format/CMakeLists.txt @@ -34,6 +34,7 @@ include_directories( add_executable(${PROJECT_NAME} # File(s) under test + ${SRC_DIR}/bacnet/authentication_factor.c ${SRC_DIR}/bacnet/authentication_factor_format.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/bacaction.c diff --git a/test/bacnet/bacapp/CMakeLists.txt b/test/bacnet/bacapp/CMakeLists.txt index 06c6a32b..f2294dfe 100644 --- a/test/bacnet/bacapp/CMakeLists.txt +++ b/test/bacnet/bacapp/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/bacapp.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacdest.c diff --git a/test/bacnet/bacaudit/CMakeLists.txt b/test/bacnet/bacaudit/CMakeLists.txt index 1de8dd14..b06f6fad 100644 --- a/test/bacnet/bacaudit/CMakeLists.txt +++ b/test/bacnet/bacaudit/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/bacaudit.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/bacdest/CMakeLists.txt b/test/bacnet/bacdest/CMakeLists.txt index 49dd81e2..1c242bfa 100644 --- a/test/bacnet/bacdest/CMakeLists.txt +++ b/test/bacnet/bacdest/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/bacdest.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/bacdevobjpropref/CMakeLists.txt b/test/bacnet/bacdevobjpropref/CMakeLists.txt index 970e61fa..a211b51f 100644 --- a/test/bacnet/bacdevobjpropref/CMakeLists.txt +++ b/test/bacnet/bacdevobjpropref/CMakeLists.txt @@ -40,6 +40,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/bacdevobjpropref.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/baclog/CMakeLists.txt b/test/bacnet/baclog/CMakeLists.txt index 9ed3188e..2876d323 100644 --- a/test/bacnet/baclog/CMakeLists.txt +++ b/test/bacnet/baclog/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/baclog.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/bactimevalue/CMakeLists.txt b/test/bacnet/bactimevalue/CMakeLists.txt index a587053a..caa90f9b 100644 --- a/test/bacnet/bactimevalue/CMakeLists.txt +++ b/test/bacnet/bactimevalue/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/bactimevalue.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/binding/address/CMakeLists.txt b/test/bacnet/basic/binding/address/CMakeLists.txt index b5ead17b..a0ab4608 100644 --- a/test/bacnet/basic/binding/address/CMakeLists.txt +++ b/test/bacnet/basic/binding/address/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/binding/address.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/acc/CMakeLists.txt b/test/bacnet/basic/object/acc/CMakeLists.txt index b525a3a5..7b0c15cb 100644 --- a/test/bacnet/basic/object/acc/CMakeLists.txt +++ b/test/bacnet/basic/object/acc/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/acc.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_credential/CMakeLists.txt b/test/bacnet/basic/object/access_credential/CMakeLists.txt index 2d98d50b..a291457e 100644 --- a/test/bacnet/basic/object/access_credential/CMakeLists.txt +++ b/test/bacnet/basic/object/access_credential/CMakeLists.txt @@ -37,6 +37,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/assigned_access_rights.c ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_door/CMakeLists.txt b/test/bacnet/basic/object/access_door/CMakeLists.txt index fcdc5895..bba0e6e6 100644 --- a/test/bacnet/basic/object/access_door/CMakeLists.txt +++ b/test/bacnet/basic/object/access_door/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/access_door.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_point/CMakeLists.txt b/test/bacnet/basic/object/access_point/CMakeLists.txt index e3ede1f8..e4aa3d4b 100644 --- a/test/bacnet/basic/object/access_point/CMakeLists.txt +++ b/test/bacnet/basic/object/access_point/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/access_point.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_rights/CMakeLists.txt b/test/bacnet/basic/object/access_rights/CMakeLists.txt index 3f8f47d1..0b67ceec 100644 --- a/test/bacnet/basic/object/access_rights/CMakeLists.txt +++ b/test/bacnet/basic/object/access_rights/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/access_rights.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_user/CMakeLists.txt b/test/bacnet/basic/object/access_user/CMakeLists.txt index d17bd469..cfb96729 100644 --- a/test/bacnet/basic/object/access_user/CMakeLists.txt +++ b/test/bacnet/basic/object/access_user/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/access_user.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_zone/CMakeLists.txt b/test/bacnet/basic/object/access_zone/CMakeLists.txt index e7b34f8a..20455654 100644 --- a/test/bacnet/basic/object/access_zone/CMakeLists.txt +++ b/test/bacnet/basic/object/access_zone/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/assigned_access_rights.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c diff --git a/test/bacnet/basic/object/ai/CMakeLists.txt b/test/bacnet/basic/object/ai/CMakeLists.txt index e35d369f..c493dbb8 100644 --- a/test/bacnet/basic/object/ai/CMakeLists.txt +++ b/test/bacnet/basic/object/ai/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/ai.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacdcode.c diff --git a/test/bacnet/basic/object/ao/CMakeLists.txt b/test/bacnet/basic/object/ao/CMakeLists.txt index 2ca1ca80..65cd5688 100644 --- a/test/bacnet/basic/object/ao/CMakeLists.txt +++ b/test/bacnet/basic/object/ao/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/ao.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/auditlog/CMakeLists.txt b/test/bacnet/basic/object/auditlog/CMakeLists.txt index ad4d416b..5c322c0c 100644 --- a/test/bacnet/basic/object/auditlog/CMakeLists.txt +++ b/test/bacnet/basic/object/auditlog/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/auditlog.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaudit.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/av/CMakeLists.txt b/test/bacnet/basic/object/av/CMakeLists.txt index 73810256..b40d592c 100644 --- a/test/bacnet/basic/object/av/CMakeLists.txt +++ b/test/bacnet/basic/object/av/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/av.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bacfile/CMakeLists.txt b/test/bacnet/basic/object/bacfile/CMakeLists.txt index a0cb46fa..57566763 100644 --- a/test/bacnet/basic/object/bacfile/CMakeLists.txt +++ b/test/bacnet/basic/object/bacfile/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/bacfile.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/awf.c ${SRC_DIR}/bacnet/bacaction.c diff --git a/test/bacnet/basic/object/bi/CMakeLists.txt b/test/bacnet/basic/object/bi/CMakeLists.txt index 8c68de54..f3df5c1f 100644 --- a/test/bacnet/basic/object/bi/CMakeLists.txt +++ b/test/bacnet/basic/object/bi/CMakeLists.txt @@ -38,6 +38,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/bi.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bitstring_value/CMakeLists.txt b/test/bacnet/basic/object/bitstring_value/CMakeLists.txt index b9ee0c67..70d5ee5c 100644 --- a/test/bacnet/basic/object/bitstring_value/CMakeLists.txt +++ b/test/bacnet/basic/object/bitstring_value/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/bitstring_value.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/blo/CMakeLists.txt b/test/bacnet/basic/object/blo/CMakeLists.txt index b61d5c60..9b94757a 100644 --- a/test/bacnet/basic/object/blo/CMakeLists.txt +++ b/test/bacnet/basic/object/blo/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/blo.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bo/CMakeLists.txt b/test/bacnet/basic/object/bo/CMakeLists.txt index aaef3f3d..e5766ace 100644 --- a/test/bacnet/basic/object/bo/CMakeLists.txt +++ b/test/bacnet/basic/object/bo/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/bo.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bv/CMakeLists.txt b/test/bacnet/basic/object/bv/CMakeLists.txt index d56237f2..92cce711 100644 --- a/test/bacnet/basic/object/bv/CMakeLists.txt +++ b/test/bacnet/basic/object/bv/CMakeLists.txt @@ -38,6 +38,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/bv.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/calendar/CMakeLists.txt b/test/bacnet/basic/object/calendar/CMakeLists.txt index 61bafdc2..815ef1eb 100644 --- a/test/bacnet/basic/object/calendar/CMakeLists.txt +++ b/test/bacnet/basic/object/calendar/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/calendar.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/channel/CMakeLists.txt b/test/bacnet/basic/object/channel/CMakeLists.txt index aab76341..85d96d3e 100644 --- a/test/bacnet/basic/object/channel/CMakeLists.txt +++ b/test/bacnet/basic/object/channel/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/channel.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/color_object/CMakeLists.txt b/test/bacnet/basic/object/color_object/CMakeLists.txt index f193fbda..c6c002e3 100644 --- a/test/bacnet/basic/object/color_object/CMakeLists.txt +++ b/test/bacnet/basic/object/color_object/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/color_object.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/color_temperature/CMakeLists.txt b/test/bacnet/basic/object/color_temperature/CMakeLists.txt index 814ef64f..3048f440 100644 --- a/test/bacnet/basic/object/color_temperature/CMakeLists.txt +++ b/test/bacnet/basic/object/color_temperature/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/color_temperature.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/command/CMakeLists.txt b/test/bacnet/basic/object/command/CMakeLists.txt index 452f3b4f..812d0121 100644 --- a/test/bacnet/basic/object/command/CMakeLists.txt +++ b/test/bacnet/basic/object/command/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/command.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/csv/CMakeLists.txt b/test/bacnet/basic/object/csv/CMakeLists.txt index d846b85e..a8ffc651 100644 --- a/test/bacnet/basic/object/csv/CMakeLists.txt +++ b/test/bacnet/basic/object/csv/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/csv.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/iv/CMakeLists.txt b/test/bacnet/basic/object/iv/CMakeLists.txt index 496dc26b..721c7480 100644 --- a/test/bacnet/basic/object/iv/CMakeLists.txt +++ b/test/bacnet/basic/object/iv/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/iv.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lc/CMakeLists.txt b/test/bacnet/basic/object/lc/CMakeLists.txt index 9ed34ebc..a3f71c33 100644 --- a/test/bacnet/basic/object/lc/CMakeLists.txt +++ b/test/bacnet/basic/object/lc/CMakeLists.txt @@ -39,6 +39,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/lc.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lo/CMakeLists.txt b/test/bacnet/basic/object/lo/CMakeLists.txt index 7eb0d449..f2483268 100644 --- a/test/bacnet/basic/object/lo/CMakeLists.txt +++ b/test/bacnet/basic/object/lo/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/lo.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/loop/CMakeLists.txt b/test/bacnet/basic/object/loop/CMakeLists.txt index 1f1a5ebb..0559c7db 100644 --- a/test/bacnet/basic/object/loop/CMakeLists.txt +++ b/test/bacnet/basic/object/loop/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/loop.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lsp/CMakeLists.txt b/test/bacnet/basic/object/lsp/CMakeLists.txt index a73ed32c..4aff5447 100644 --- a/test/bacnet/basic/object/lsp/CMakeLists.txt +++ b/test/bacnet/basic/object/lsp/CMakeLists.txt @@ -34,6 +34,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/lsp.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lsz/CMakeLists.txt b/test/bacnet/basic/object/lsz/CMakeLists.txt index c5f6be9c..6a4e530e 100644 --- a/test/bacnet/basic/object/lsz/CMakeLists.txt +++ b/test/bacnet/basic/object/lsz/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/lsz.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/ms-input/CMakeLists.txt b/test/bacnet/basic/object/ms-input/CMakeLists.txt index e7f1c9b1..04ab1f70 100644 --- a/test/bacnet/basic/object/ms-input/CMakeLists.txt +++ b/test/bacnet/basic/object/ms-input/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/ms-input.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/mso/CMakeLists.txt b/test/bacnet/basic/object/mso/CMakeLists.txt index 7f3c4f11..1e220b2d 100644 --- a/test/bacnet/basic/object/mso/CMakeLists.txt +++ b/test/bacnet/basic/object/mso/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/mso.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/msv/CMakeLists.txt b/test/bacnet/basic/object/msv/CMakeLists.txt index 2376b145..533f7421 100644 --- a/test/bacnet/basic/object/msv/CMakeLists.txt +++ b/test/bacnet/basic/object/msv/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/msv.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/nc/CMakeLists.txt b/test/bacnet/basic/object/nc/CMakeLists.txt index b23614b2..0a8a6c93 100644 --- a/test/bacnet/basic/object/nc/CMakeLists.txt +++ b/test/bacnet/basic/object/nc/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/nc.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/netport/CMakeLists.txt b/test/bacnet/basic/object/netport/CMakeLists.txt index 966523cb..46a89815 100644 --- a/test/bacnet/basic/object/netport/CMakeLists.txt +++ b/test/bacnet/basic/object/netport/CMakeLists.txt @@ -52,6 +52,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/sc_netport.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c diff --git a/test/bacnet/basic/object/osv/CMakeLists.txt b/test/bacnet/basic/object/osv/CMakeLists.txt index 0bf87502..4c52d410 100644 --- a/test/bacnet/basic/object/osv/CMakeLists.txt +++ b/test/bacnet/basic/object/osv/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/osv.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/piv/CMakeLists.txt b/test/bacnet/basic/object/piv/CMakeLists.txt index 8883b236..5621cf81 100644 --- a/test/bacnet/basic/object/piv/CMakeLists.txt +++ b/test/bacnet/basic/object/piv/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/piv.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/program/CMakeLists.txt b/test/bacnet/basic/object/program/CMakeLists.txt index 4a369f09..a90ff651 100644 --- a/test/bacnet/basic/object/program/CMakeLists.txt +++ b/test/bacnet/basic/object/program/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/program.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/schedule/CMakeLists.txt b/test/bacnet/basic/object/schedule/CMakeLists.txt index 55220daa..10d0c04e 100644 --- a/test/bacnet/basic/object/schedule/CMakeLists.txt +++ b/test/bacnet/basic/object/schedule/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/schedule.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/structured_view/CMakeLists.txt b/test/bacnet/basic/object/structured_view/CMakeLists.txt index 4475ab5b..f220d4b4 100644 --- a/test/bacnet/basic/object/structured_view/CMakeLists.txt +++ b/test/bacnet/basic/object/structured_view/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/structured_view.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/time_value/CMakeLists.txt b/test/bacnet/basic/object/time_value/CMakeLists.txt index 5d85128a..05871ca7 100644 --- a/test/bacnet/basic/object/time_value/CMakeLists.txt +++ b/test/bacnet/basic/object/time_value/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/time_value.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/timer/CMakeLists.txt b/test/bacnet/basic/object/timer/CMakeLists.txt index 7b1a88e9..8a216175 100644 --- a/test/bacnet/basic/object/timer/CMakeLists.txt +++ b/test/bacnet/basic/object/timer/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/timer.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/trendlog/CMakeLists.txt b/test/bacnet/basic/object/trendlog/CMakeLists.txt index b194fee6..1ac6fd87 100644 --- a/test/bacnet/basic/object/trendlog/CMakeLists.txt +++ b/test/bacnet/basic/object/trendlog/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/trendlog.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/server/bacnet_device/CMakeLists.txt b/test/bacnet/basic/server/bacnet_device/CMakeLists.txt index 097ad1c6..9222515b 100644 --- a/test/bacnet/basic/server/bacnet_device/CMakeLists.txt +++ b/test/bacnet/basic/server/bacnet_device/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(${PROJECT_NAME} # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/abort.c ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c diff --git a/test/bacnet/basic/service/h_cov/CMakeLists.txt b/test/bacnet/basic/service/h_cov/CMakeLists.txt index 59938882..d6779454 100644 --- a/test/bacnet/basic/service/h_cov/CMakeLists.txt +++ b/test/bacnet/basic/service/h_cov/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/service/h_cov.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/cov/CMakeLists.txt b/test/bacnet/cov/CMakeLists.txt index 9502f3c3..717d2c88 100644 --- a/test/bacnet/cov/CMakeLists.txt +++ b/test/bacnet/cov/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/cov.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/create_object/CMakeLists.txt b/test/bacnet/create_object/CMakeLists.txt index 74db0a36..53eae234 100644 --- a/test/bacnet/create_object/CMakeLists.txt +++ b/test/bacnet/create_object/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/create_object.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/datalink/bsc-datalink/CMakeLists.txt b/test/bacnet/datalink/bsc-datalink/CMakeLists.txt index 20734357..b0e8a7dc 100644 --- a/test/bacnet/datalink/bsc-datalink/CMakeLists.txt +++ b/test/bacnet/datalink/bsc-datalink/CMakeLists.txt @@ -171,6 +171,8 @@ target_sources(${PROJECT_NAME} PRIVATE ${SRC_DIR}/bacnet/basic/sys/keylist.c ${SRC_DIR}/bacnet/basic/sys/mstimer.c ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/datalink/bsc-node/CMakeLists.txt b/test/bacnet/datalink/bsc-node/CMakeLists.txt index 7828dcc9..5d2d40de 100644 --- a/test/bacnet/datalink/bsc-node/CMakeLists.txt +++ b/test/bacnet/datalink/bsc-node/CMakeLists.txt @@ -160,6 +160,8 @@ target_sources(${PROJECT_NAME} PRIVATE ${SRC_DIR}/bacnet/basic/sys/keylist.c ${SRC_DIR}/bacnet/basic/sys/mstimer.c ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/datalink/bsc-socket/CMakeLists.txt b/test/bacnet/datalink/bsc-socket/CMakeLists.txt index b14acf2c..f9f7c3a5 100644 --- a/test/bacnet/datalink/bsc-socket/CMakeLists.txt +++ b/test/bacnet/datalink/bsc-socket/CMakeLists.txt @@ -158,6 +158,8 @@ target_sources(${PROJECT_NAME} PRIVATE ${SRC_DIR}/bacnet/basic/sys/keylist.c ${SRC_DIR}/bacnet/basic/sys/mstimer.c ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/datalink/hub-sc/CMakeLists.txt b/test/bacnet/datalink/hub-sc/CMakeLists.txt index 162cd411..c20ccd1e 100644 --- a/test/bacnet/datalink/hub-sc/CMakeLists.txt +++ b/test/bacnet/datalink/hub-sc/CMakeLists.txt @@ -163,6 +163,8 @@ target_sources(${PROJECT_NAME} PRIVATE ${SRC_DIR}/bacnet/basic/sys/keylist.c ${SRC_DIR}/bacnet/basic/sys/mstimer.c ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/delete_object/CMakeLists.txt b/test/bacnet/delete_object/CMakeLists.txt index 6748043f..7e298f3e 100644 --- a/test/bacnet/delete_object/CMakeLists.txt +++ b/test/bacnet/delete_object/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/delete_object.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/event/CMakeLists.txt b/test/bacnet/event/CMakeLists.txt index da50fac2..1b402d2f 100644 --- a/test/bacnet/event/CMakeLists.txt +++ b/test/bacnet/event/CMakeLists.txt @@ -60,6 +60,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/sys/days.c # Dependencies of bacapp.c ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bactext.c ${SRC_DIR}/bacnet/indtext.c diff --git a/test/bacnet/getalarm/CMakeLists.txt b/test/bacnet/getalarm/CMakeLists.txt index 45fe4a84..666ce6b6 100644 --- a/test/bacnet/getalarm/CMakeLists.txt +++ b/test/bacnet/getalarm/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/get_alarm_sum.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/getevent/CMakeLists.txt b/test/bacnet/getevent/CMakeLists.txt index 820eb21e..6992c401 100644 --- a/test/bacnet/getevent/CMakeLists.txt +++ b/test/bacnet/getevent/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/getevent.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/hostnport/CMakeLists.txt b/test/bacnet/hostnport/CMakeLists.txt index 3b8ad1a0..e9dd887a 100644 --- a/test/bacnet/hostnport/CMakeLists.txt +++ b/test/bacnet/hostnport/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/hostnport.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/list_element/CMakeLists.txt b/test/bacnet/list_element/CMakeLists.txt index 7cb9d445..b8450a44 100644 --- a/test/bacnet/list_element/CMakeLists.txt +++ b/test/bacnet/list_element/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/list_element.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/lso/CMakeLists.txt b/test/bacnet/lso/CMakeLists.txt index a189709c..bc26bd66 100644 --- a/test/bacnet/lso/CMakeLists.txt +++ b/test/bacnet/lso/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/lso.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/ptransfer/CMakeLists.txt b/test/bacnet/ptransfer/CMakeLists.txt index 754d7727..901016ca 100644 --- a/test/bacnet/ptransfer/CMakeLists.txt +++ b/test/bacnet/ptransfer/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/ptransfer.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/rpm/CMakeLists.txt b/test/bacnet/rpm/CMakeLists.txt index 67d5dbde..ce8786cf 100644 --- a/test/bacnet/rpm/CMakeLists.txt +++ b/test/bacnet/rpm/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/rpm.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/secure_connect/CMakeLists.txt b/test/bacnet/secure_connect/CMakeLists.txt index e90b4acc..af055d7f 100644 --- a/test/bacnet/secure_connect/CMakeLists.txt +++ b/test/bacnet/secure_connect/CMakeLists.txt @@ -34,6 +34,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/secure_connect.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/specialevent/CMakeLists.txt b/test/bacnet/specialevent/CMakeLists.txt index 81971781..e8106ceb 100644 --- a/test/bacnet/specialevent/CMakeLists.txt +++ b/test/bacnet/specialevent/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/special_event.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/timesync/CMakeLists.txt b/test/bacnet/timesync/CMakeLists.txt index 7d937c60..3ca09bb5 100644 --- a/test/bacnet/timesync/CMakeLists.txt +++ b/test/bacnet/timesync/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/timesync.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/weeklyschedule/CMakeLists.txt b/test/bacnet/weeklyschedule/CMakeLists.txt index 46a62567..aa36fbf1 100644 --- a/test/bacnet/weeklyschedule/CMakeLists.txt +++ b/test/bacnet/weeklyschedule/CMakeLists.txt @@ -38,6 +38,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/dailyschedule.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/wp/CMakeLists.txt b/test/bacnet/wp/CMakeLists.txt index 753edfb6..76421ef0 100644 --- a/test/bacnet/wp/CMakeLists.txt +++ b/test/bacnet/wp/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/wp.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/wpm/CMakeLists.txt b/test/bacnet/wpm/CMakeLists.txt index 8e8afa99..6f4de920 100644 --- a/test/bacnet/wpm/CMakeLists.txt +++ b/test/bacnet/wpm/CMakeLists.txt @@ -36,6 +36,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/wpm.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/write_group/CMakeLists.txt b/test/bacnet/write_group/CMakeLists.txt index adf94ba8..7447b835 100644 --- a/test/bacnet/write_group/CMakeLists.txt +++ b/test/bacnet/write_group/CMakeLists.txt @@ -35,6 +35,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/write_group.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/access_rule.c + ${SRC_DIR}/bacnet/authentication_factor.c + ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c