Skip to content

Commit

Permalink
feat: possibility to get node id of the unsolicited message sender (p…
Browse files Browse the repository at this point in the history
  • Loading branch information
j0tunn authored Jun 26, 2024
1 parent ce71ed5 commit b63c271
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
14 changes: 12 additions & 2 deletions src/messaging/ExchangeDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class DLL_EXPORT ExchangeDelegate
/**
* @brief
* This class handles unsolicited messages. The implementation can select an exchange delegate to use based on the payload header
* of the incoming message.
* of the incoming message or its session.
*/
class DLL_EXPORT UnsolicitedMessageHandler
{
Expand All @@ -158,9 +158,19 @@ class DLL_EXPORT UnsolicitedMessageHandler
*
* @param[in] payloadHeader A reference to the PayloadHeader object for the unsolicited message. The protocol and message
* type of this header match the UnsolicitedMessageHandler.
* @param[in] session A reference to the session where unsolicited message was received.
* @param[out] newDelegate A new exchange delegate to be used by the new exchange created to handle the message.
*/
virtual CHIP_ERROR OnUnsolicitedMessageReceived(const PayloadHeader & payloadHeader, ExchangeDelegate *& newDelegate) = 0;
virtual CHIP_ERROR OnUnsolicitedMessageReceived(const PayloadHeader & payloadHeader, const SessionHandle & session,
ExchangeDelegate *& newDelegate)
{
return OnUnsolicitedMessageReceived(payloadHeader, newDelegate);
}

virtual CHIP_ERROR OnUnsolicitedMessageReceived(const PayloadHeader & payloadHeader, ExchangeDelegate *& newDelegate)
{
return CHIP_ERROR_NOT_IMPLEMENTED;
}

/**
* @brief
Expand Down
2 changes: 1 addition & 1 deletion src/messaging/ExchangeMgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ void ExchangeManager::OnMessageReceived(const PacketHeader & packetHeader, const
ExchangeDelegate * delegate = nullptr;

// Fetch delegate from the handler
CHIP_ERROR err = matchingUMH->Handler->OnUnsolicitedMessageReceived(payloadHeader, delegate);
CHIP_ERROR err = matchingUMH->Handler->OnUnsolicitedMessageReceived(payloadHeader, session, delegate);
if (err != CHIP_NO_ERROR)
{
// Using same error message for all errors to reduce code size.
Expand Down

0 comments on commit b63c271

Please sign in to comment.