@@ -158,31 +158,26 @@ void uecho_controller_handlepostresponse(uEchoController* ctrl, uEchoMessage* ms
158158 * uecho_controller_handlenodemessage
159159 ****************************************/
160160
161- void uecho_controller_handlenodemessage (uEchoController * ctrl , uEchoMessage * msg )
161+ void uecho_controller_handlenodemessage (uEchoController * ctrl , uEchoNode * node , uEchoMessage * msg )
162162{
163- uEchoNode * src_node ;
164163 bool node_updated ;
165164
166- src_node = uecho_controller_getnodebyaddress (ctrl , uecho_message_getsourceaddress (msg ));
167- if (!src_node )
168- return ;
169-
170165 node_updated = false;
171166 if (uecho_message_isreadresponse (msg ) || uecho_message_isnotifyresponse (msg )) {
172- node_updated = uecho_controller_updatenodebyresponsemessage (ctrl , src_node , msg );
167+ node_updated = uecho_controller_updatenodebyresponsemessage (ctrl , node , msg );
173168 }
174169
175170 // Notify node status
176171
177172 if (ctrl -> node_listener ) {
178173 if (uecho_message_isnotification (msg )) {
179- ctrl -> node_listener (ctrl , src_node , uEchoNodeStatusAnnounced , msg );
174+ ctrl -> node_listener (ctrl , node , uEchoNodeStatusAnnounced , msg );
180175 }
181176 if (uecho_message_isresponse (msg )) {
182- ctrl -> node_listener (ctrl , src_node , uEchoNodeStatusResponded , msg );
177+ ctrl -> node_listener (ctrl , node , uEchoNodeStatusResponded , msg );
183178 }
184179 if (node_updated ) {
185- ctrl -> node_listener (ctrl , src_node , uEchoNodeStatusUpdated , msg );
180+ ctrl -> node_listener (ctrl , node , uEchoNodeStatusUpdated , msg );
186181 }
187182 }
188183}
@@ -193,6 +188,8 @@ void uecho_controller_handlenodemessage(uEchoController* ctrl, uEchoMessage* msg
193188
194189void uecho_controller_servermessagelistener (uEchoController * ctrl , uEchoMessage * msg )
195190{
191+ uEchoNode * src_node ;
192+
196193 if (!ctrl || !msg )
197194 return ;
198195
@@ -210,6 +207,9 @@ void uecho_controller_servermessagelistener(uEchoController* ctrl, uEchoMessage*
210207 }
211208
212209 if (uecho_node_hasobjectbycode (ctrl -> node , uecho_message_getdestinationobjectcode (msg ))) {
213- uecho_controller_handlenodemessage (ctrl , msg );
210+ src_node = uecho_controller_getnodebyaddress (ctrl , uecho_message_getsourceaddress (msg ));
211+ if (src_node ) {
212+ uecho_controller_handlenodemessage (ctrl , src_node , msg );
213+ }
214214 }
215215}
0 commit comments