In the special use case where a message data frame (e.g. message data notify) for the same com id is received on both unicast and multicast addressing, the listener scheme does not work properly.
A listener has to be added for the multicast group. -> this listener does not receive the unicast messages due to the filters set in (trdp_mdcom.c:trdp_mdHandleRequest())
As such as second listener has to be added with multicast group 0. With the current filter rules, this listener now receives both the unicast and multicast messages which might cause issues - e.g. if different callback functions are registered on both listeners.
Proposed change - adapt filter rule for multicast group to also take into account the received message:
if ( (iterListener->addr.mcGroup != 0 || vos_isMulticast(appHandle->pMDRcvEle->addr.destIpAddr))
&&
iterListener->addr.mcGroup != appHandle->pMDRcvEle->addr.destIpAddr )
Is related to #235, #243, #236, #230
Thank you, I have integrated the proposed change.