fix: enhance KNX OAM router functionality and security features
Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
@@ -34,7 +34,9 @@ bool GatewayKnxTpIpRouter::handleOpenKnxTunnelFrame(const uint8_t* data, size_t
|
||||
if (frame.valid()) {
|
||||
route_to_all_internal_instances = IsKnxBroadcastManagementRequest(frame);
|
||||
if (!route_to_oam && oam_router_ != nullptr &&
|
||||
MatchesOamRouterLocalIndividualAddress(frame, *oam_router_)) {
|
||||
(MatchesOamRouterLocalIndividualAddress(frame, *oam_router_) ||
|
||||
oam_router_->matchesSecureSyncSerial(frame) ||
|
||||
oam_router_->matchesRecentSecureToolAccess(frame))) {
|
||||
route_to_oam = true;
|
||||
}
|
||||
}
|
||||
@@ -326,7 +328,10 @@ bool GatewayKnxTpIpRouter::handleOpenKnxTpIngressFrame(const uint8_t* data, size
|
||||
|
||||
const bool broadcast_management = IsKnxBroadcastManagementRequest(frame);
|
||||
const bool addressed_to_oam =
|
||||
oam_router_ != nullptr && MatchesOamRouterLocalIndividualAddress(frame, *oam_router_);
|
||||
oam_router_ != nullptr &&
|
||||
(MatchesOamRouterLocalIndividualAddress(frame, *oam_router_) ||
|
||||
oam_router_->matchesSecureSyncSerial(frame) ||
|
||||
oam_router_->matchesRecentSecureToolAccess(frame));
|
||||
if (!broadcast_management && !addressed_to_oam) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user