Bugfix/service request refactor size check (#553)
* refactor service requests from service header * add APDU size checking and length feature * add unit tests to check for length when passing NULL buffer --------- Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
+20
-12
@@ -31,27 +31,35 @@
|
||||
#include "bacnet/bacdef.h"
|
||||
#include "bacnet/bacstr.h"
|
||||
|
||||
typedef struct {
|
||||
uint32_t processId;
|
||||
BACNET_CHARACTER_STRING requestingSrc;
|
||||
BACNET_LIFE_SAFETY_OPERATION operation;
|
||||
BACNET_OBJECT_ID targetObject;
|
||||
bool use_target:1;
|
||||
} BACNET_LSO_DATA;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* Life Safety Operation Service */
|
||||
|
||||
typedef struct {
|
||||
uint32_t processId;
|
||||
BACNET_CHARACTER_STRING requestingSrc;
|
||||
BACNET_LIFE_SAFETY_OPERATION operation;
|
||||
BACNET_OBJECT_ID targetObject;
|
||||
bool use_target:1;
|
||||
} BACNET_LSO_DATA;
|
||||
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
int lso_encode_apdu(
|
||||
uint8_t * apdu,
|
||||
uint8_t invoke_id,
|
||||
BACNET_LSO_DATA * data);
|
||||
/* decode the service request only */
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
int life_safety_operation_encode(
|
||||
uint8_t *apdu,
|
||||
BACNET_LSO_DATA *data);
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
size_t life_safety_operation_request_encode(
|
||||
uint8_t *apdu,
|
||||
size_t apdu_size,
|
||||
BACNET_LSO_DATA *data);
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
int lso_decode_service_request(
|
||||
uint8_t * apdu,
|
||||
|
||||
Reference in New Issue
Block a user