diff --git a/src/app/clusters/push-av-stream-transport-server/push-av-stream-transport-logic.cpp b/src/app/clusters/push-av-stream-transport-server/push-av-stream-transport-logic.cpp index 3cc8c750adf7df..db2ab4b487fc33 100644 --- a/src/app/clusters/push-av-stream-transport-server/push-av-stream-transport-logic.cpp +++ b/src/app/clusters/push-av-stream-transport-server/push-av-stream-transport-logic.cpp @@ -1012,6 +1012,9 @@ PushAvStreamTransportServerLogic::HandleModifyPushTransport(CommandHandler & han if (status == Status::Success) { transportConfiguration->SetTransportOptionsPtr(transportOptionsPtr); + + MatterReportingAttributeChangeCallback(mEndpointId, PushAvStreamTransport::Id, + PushAvStreamTransport::Attributes::CurrentConnections::Id); } handler.AddStatus(commandPath, status); @@ -1079,6 +1082,9 @@ PushAvStreamTransportServerLogic::HandleSetTransportStatus(CommandHandler & hand } } } + + MatterReportingAttributeChangeCallback(mEndpointId, PushAvStreamTransport::Id, + PushAvStreamTransport::Attributes::CurrentConnections::Id); } handler.AddStatus(commandPath, status); diff --git a/src/app/clusters/tls-certificate-management-server/tls-certificate-management-server.cpp b/src/app/clusters/tls-certificate-management-server/tls-certificate-management-server.cpp index bf44d18095a0c1..65688a1ad27a47 100644 --- a/src/app/clusters/tls-certificate-management-server/tls-certificate-management-server.cpp +++ b/src/app/clusters/tls-certificate-management-server/tls-certificate-management-server.cpp @@ -257,7 +257,11 @@ void TlsCertificateManagementServer::HandleProvisionRootCertificate(HandlerConte } VerifyOrDieWithMsg(response.caid <= kMaxRootCertId, NotSpecified, "Spec requires CAID to be < kMaxRootCertId"); + ctx.mCommandHandler.AddResponse(ctx.mRequestPath, response); + + MatterReportingAttributeChangeCallback(ctx.mRequestPath.mEndpointId, TlsCertificateManagement::Id, + TlsCertificateManagement::Attributes::ProvisionedRootCertificates::Id); } void TlsCertificateManagementServer::HandleFindRootCertificate(HandlerContext & ctx, const FindRootCertificate::DecodableType & req) @@ -338,6 +342,13 @@ void TlsCertificateManagementServer::HandleRemoveRootCertificate(HandlerContext ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::InvalidInState)); auto result = mDelegate.RemoveRootCert(ctx.mRequestPath.mEndpointId, ctx.mCommandHandler.GetAccessingFabricIndex(), req.caid); + + if (result == Status::Success) + { + MatterReportingAttributeChangeCallback(ctx.mRequestPath.mEndpointId, TlsCertificateManagement::Id, + TlsCertificateManagement::Attributes::ProvisionedRootCertificates::Id); + } + ctx.mCommandHandler.AddStatus(ctx.mRequestPath, result); } @@ -412,6 +423,13 @@ void TlsCertificateManagementServer::HandleProvisionClientCertificate(HandlerCon ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::NotFound)); auto status = mDelegate.ProvisionClientCert(ctx.mRequestPath.mEndpointId, fabric, req); + + if (status == Status::Success) + { + MatterReportingAttributeChangeCallback(ctx.mRequestPath.mEndpointId, TlsCertificateManagement::Id, + TlsCertificateManagement::Attributes::ProvisionedClientCertificates::Id); + } + ctx.mCommandHandler.AddStatus(ctx.mRequestPath, status); } @@ -498,6 +516,13 @@ void TlsCertificateManagementServer::HandleRemoveClientCertificate(HandlerContex auto result = mDelegate.RemoveClientCert(ctx.mRequestPath.mEndpointId, ctx.mCommandHandler.GetAccessingFabricIndex(), req.ccdid); + + if (result == Status::Success) + { + MatterReportingAttributeChangeCallback(ctx.mRequestPath.mEndpointId, TlsCertificateManagement::Id, + TlsCertificateManagement::Attributes::ProvisionedClientCertificates::Id); + } + ctx.mCommandHandler.AddStatus(ctx.mRequestPath, result); } diff --git a/src/app/clusters/tls-client-management-server/tls-client-management-server.cpp b/src/app/clusters/tls-client-management-server/tls-client-management-server.cpp index 911723c143941b..6edf6b7d4de7b1 100644 --- a/src/app/clusters/tls-client-management-server/tls-client-management-server.cpp +++ b/src/app/clusters/tls-client-management-server/tls-client-management-server.cpp @@ -169,6 +169,9 @@ void TlsClientManagementServer::HandleProvisionEndpoint(HandlerContext & ctx, if (status.IsSuccess()) { ctx.mCommandHandler.AddResponse(ctx.mRequestPath, response); + + MatterReportingAttributeChangeCallback(ctx.mRequestPath.mEndpointId, TlsClientManagement::Id, + TlsClientManagement::Attributes::ProvisionedEndpoints::Id); } else { @@ -209,6 +212,13 @@ void TlsClientManagementServer::HandleRemoveEndpoint(HandlerContext & ctx, const auto status = mDelegate.RemoveProvisionedEndpointByID(ctx.mRequestPath.mEndpointId, ctx.mCommandHandler.GetAccessingFabricIndex(), req.endpointID); + + if (status == Status::Success) + { + MatterReportingAttributeChangeCallback(ctx.mRequestPath.mEndpointId, TlsClientManagement::Id, + TlsClientManagement::Attributes::ProvisionedEndpoints::Id); + } + ctx.mCommandHandler.AddStatus(ctx.mRequestPath, status); }