From 9f0dfeed1c7f3c237f2facbc78ad5a13bf3e4936 Mon Sep 17 00:00:00 2001 From: skarg Date: Fri, 2 Sep 2011 14:35:16 +0000 Subject: [PATCH] Fixed Linux datalink call to Master Node FSM which was not doing immediate transitions, and could lose whole messages. Thank you, Nikola Jelic! --- bacnet-stack/ports/linux/dlmstp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bacnet-stack/ports/linux/dlmstp.c b/bacnet-stack/ports/linux/dlmstp.c index 5c344a61..4f24e5ed 100644 --- a/bacnet-stack/ports/linux/dlmstp.c +++ b/bacnet-stack/ports/linux/dlmstp.c @@ -242,7 +242,9 @@ static void *dlmstp_master_fsm_task( } if (run_master) { if (MSTP_Port.This_Station <= DEFAULT_MAX_MASTER) { - MSTP_Master_Node_FSM(&MSTP_Port); + while (MSTP_Master_Node_FSM (&MSTP_Port)) { + /* do nothing while immediate transitioning */ + } } else if (MSTP_Port.This_Station < 255) { MSTP_Slave_Node_FSM(&MSTP_Port); }