diff --git a/py25/bacpypes/bvllservice.py b/py25/bacpypes/bvllservice.py index e195d39..e1542d0 100755 --- a/py25/bacpypes/bvllservice.py +++ b/py25/bacpypes/bvllservice.py @@ -446,11 +446,6 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): def indication(self, pdu): if _debug: BIPForeign._debug("indication %r", pdu) - # check the BBMD registration status, we may not be registered - if self.registrationStatus != 0: - if _debug: BIPForeign._debug(" - packet dropped, unregistered") - return - # check for local stations if pdu.pduDestination.addrType == Address.localStationAddr: # make an original unicast PDU @@ -462,6 +457,11 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # check for broadcasts elif pdu.pduDestination.addrType == Address.localBroadcastAddr: + # check the BBMD registration status, we may not be registered + if self.registrationStatus != 0: + if _debug: BIPForeign._debug(" - packet dropped, unregistered") + return + # make an original broadcast PDU xpdu = DistributeBroadcastToNetwork(pdu, user_data=pdu.pduUserData) xpdu.pduDestination = self.bbmdAddress @@ -498,6 +498,13 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): return + elif isinstance(pdu, OriginalUnicastNPDU): + # build a vanilla PDU + xpdu = PDU(pdu.pduData, source=pdu.pduSource, destination=pdu.pduDestination, user_data=pdu.pduUserData) + + # send it upstream + self.response(xpdu) + # check the BBMD registration status, we may not be registered if self.registrationStatus != 0: if _debug: BIPForeign._debug(" - packet dropped, unregistered") @@ -511,13 +518,6 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # send this to the service access point self.sap_response(pdu) - elif isinstance(pdu, OriginalUnicastNPDU): - # build a vanilla PDU - xpdu = PDU(pdu.pduData, source=pdu.pduSource, destination=pdu.pduDestination, user_data=pdu.pduUserData) - - # send it upstream - self.response(xpdu) - elif isinstance(pdu, ForwardedNPDU): # build a PDU with the source from the real source xpdu = PDU(pdu.pduData, source=pdu.bvlciAddress, destination=LocalBroadcast(), user_data=pdu.pduUserData) diff --git a/py27/bacpypes/bvllservice.py b/py27/bacpypes/bvllservice.py index 8c01f05..5cc616b 100755 --- a/py27/bacpypes/bvllservice.py +++ b/py27/bacpypes/bvllservice.py @@ -442,11 +442,6 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): def indication(self, pdu): if _debug: BIPForeign._debug("indication %r", pdu) - # check the BBMD registration status, we may not be registered - if self.registrationStatus != 0: - if _debug: BIPForeign._debug(" - packet dropped, unregistered") - return - # check for local stations if pdu.pduDestination.addrType == Address.localStationAddr: # make an original unicast PDU @@ -458,6 +453,11 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # check for broadcasts elif pdu.pduDestination.addrType == Address.localBroadcastAddr: + # check the BBMD registration status, we may not be registered + if self.registrationStatus != 0: + if _debug: BIPForeign._debug(" - packet dropped, unregistered") + return + # make an original broadcast PDU xpdu = DistributeBroadcastToNetwork(pdu, user_data=pdu.pduUserData) xpdu.pduDestination = self.bbmdAddress @@ -494,6 +494,14 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): return + elif isinstance(pdu, OriginalUnicastNPDU): + # build a vanilla PDU + xpdu = PDU(pdu.pduData, source=pdu.pduSource, destination=pdu.pduDestination, user_data=pdu.pduUserData) + + # send it upstream + self.response(xpdu) + return + # check the BBMD registration status, we may not be registered if self.registrationStatus != 0: if _debug: BIPForeign._debug(" - packet dropped, unregistered") @@ -507,13 +515,6 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # send this to the service access point self.sap_response(pdu) - elif isinstance(pdu, OriginalUnicastNPDU): - # build a vanilla PDU - xpdu = PDU(pdu.pduData, source=pdu.pduSource, destination=pdu.pduDestination, user_data=pdu.pduUserData) - - # send it upstream - self.response(xpdu) - elif isinstance(pdu, ForwardedNPDU): # build a PDU with the source from the real source xpdu = PDU(pdu.pduData, source=pdu.bvlciAddress, destination=LocalBroadcast(), user_data=pdu.pduUserData) diff --git a/py34/bacpypes/bvllservice.py b/py34/bacpypes/bvllservice.py index 2a6285c..1b2504a 100755 --- a/py34/bacpypes/bvllservice.py +++ b/py34/bacpypes/bvllservice.py @@ -441,11 +441,6 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): def indication(self, pdu): if _debug: BIPForeign._debug("indication %r", pdu) - # check the BBMD registration status, we may not be registered - if self.registrationStatus != 0: - if _debug: BIPForeign._debug(" - packet dropped, unregistered") - return - # check for local stations if pdu.pduDestination.addrType == Address.localStationAddr: # make an original unicast PDU @@ -457,6 +452,11 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # check for broadcasts elif pdu.pduDestination.addrType == Address.localBroadcastAddr: + # check the BBMD registration status, we may not be registered + if self.registrationStatus != 0: + if _debug: BIPForeign._debug(" - packet dropped, unregistered") + return + # make an original broadcast PDU xpdu = DistributeBroadcastToNetwork(pdu, user_data=pdu.pduUserData) xpdu.pduDestination = self.bbmdAddress @@ -493,6 +493,13 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): return + elif isinstance(pdu, OriginalUnicastNPDU): + # build a vanilla PDU + xpdu = PDU(pdu.pduData, source=pdu.pduSource, destination=pdu.pduDestination, user_data=pdu.pduUserData) + + # send it upstream + self.response(xpdu) + # check the BBMD registration status, we may not be registered if self.registrationStatus != 0: if _debug: BIPForeign._debug(" - packet dropped, unregistered") @@ -506,13 +513,6 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # send this to the service access point self.sap_response(pdu) - elif isinstance(pdu, OriginalUnicastNPDU): - # build a vanilla PDU - xpdu = PDU(pdu.pduData, source=pdu.pduSource, destination=pdu.pduDestination, user_data=pdu.pduUserData) - - # send it upstream - self.response(xpdu) - elif isinstance(pdu, ForwardedNPDU): # build a PDU with the source from the real source xpdu = PDU(pdu.pduData, source=pdu.bvlciAddress, destination=LocalBroadcast(), user_data=pdu.pduUserData)