Lu Xianghui 1 hónapja
szülő
commit
1759d43837
1 módosított fájl, 4 hozzáadás és 0 törlés
  1. 4 0
      app/services/bacnet_service.py

+ 4 - 0
app/services/bacnet_service.py

@@ -15,6 +15,7 @@ BAC0_REGISTERED_WARNING = r"object type .* for vendor identifier 842 already reg
 warnings.filterwarnings("ignore", message=BAC0_REGISTERED_WARNING)
 
 import BAC0
+import BAC0.scripts.Base as bac0_base
 import bacpypes3.app as bacpypes_app
 from bacpypes3.apdu import ErrorRejectAbortNack
 from bacpypes3.basetypes import PropertyIdentifier
@@ -147,6 +148,7 @@ def create_bacnet_bind_socket(port: int) -> socket.socket:
 def go_style_bacnet_binding(port: int):
     bind_socket = create_bacnet_bind_socket(port)
     original_normal_link_layer = bacpypes_app.NormalLinkLayer_ipv4
+    original_validate_ip_address = bac0_base.validate_ip_address
     socket_transferred = False
 
     class GoStyleNormalLinkLayer(BIPNormal):
@@ -165,9 +167,11 @@ def go_style_bacnet_binding(port: int):
 
     try:
         bacpypes_app.NormalLinkLayer_ipv4 = GoStyleNormalLinkLayer
+        bac0_base.validate_ip_address = lambda _ip: True
         yield
     finally:
         bacpypes_app.NormalLinkLayer_ipv4 = original_normal_link_layer
+        bac0_base.validate_ip_address = original_validate_ip_address
         if not socket_transferred:
             bind_socket.close()