| 361 | } |
| 362 | |
| 363 | CipConnectionObject *GetNextNonControlMasterConnection( |
| 364 | const EipUint32 input_point) { |
| 365 | DoublyLinkedListNode *node = connection_list.first; |
| 366 | |
| 367 | while (NULL != node) { |
| 368 | CipConnectionObject *next_non_control_master_connection = |
| 369 | node->data; |
| 370 | if ( true == |
| 371 | ConnectionObjectIsTypeNonLOIOConnection( |
| 372 | next_non_control_master_connection) |
| 373 | && kConnectionObjectStateEstablished == |
| 374 | ConnectionObjectGetState(next_non_control_master_connection) |
| 375 | && input_point == |
| 376 | next_non_control_master_connection->produced_path.instance_id |
| 377 | && kConnectionObjectConnectionTypeMulticast == |
| 378 | ConnectionObjectGetTToOConnectionType( |
| 379 | next_non_control_master_connection) |
| 380 | && (kEipInvalidSocket == |
| 381 | next_non_control_master_connection->socket[ |
| 382 | kUdpCommuncationDirectionProducing |
| 383 | ]) ) { |
| 384 | /* we have a connection that produces the same input assembly, |
| 385 | * is a multicast producer and does not manage the connection. |
| 386 | */ |
| 387 | return next_non_control_master_connection; |
| 388 | } |
| 389 | node = node->next; |
| 390 | } |
| 391 | return NULL; |
| 392 | } |
| 393 | |
| 394 | void CloseAllConnectionsForInputWithSameType(const EipUint32 input_point, |
| 395 | const ConnectionObjectInstanceType instance_type) |
no test coverage detected