def test_decode_puncture_request(self):
     lan_walker_address = ("2.2.2.2", 2)
     wan_walker_address = ("3.3.3.3", 3)
     #message = walker.create_puncture_request(lan_walker_address,wan_walker_address)
     message = Message(neighbor_discovery=neighbor_discovery,
                       private_address_to_puncture=lan_walker_address,
                       public_address_to_puncture=wan_walker_address)
     message.encode_puncture_request()
     #message_decode = walker.decode_puncture_request(message.packet)
     message_decode = Message(packet=message.packet)
     message_decode.decode_puncture_request()
     assert_equals(message.private_address_to_puncture,
                   message_decode.private_address_to_puncture)
     assert_equals(message.public_address_to_puncture,
                   message_decode.public_address_to_puncture)
Ejemplo n.º 2
0
 def on_puncture_request(self, packet, addr):
     """
     1.decode a puncture request and knows which neighbor we should send the puncture to
     2.send a puncture to both private and public address of that neighbor
     """
     message_puncture_request = Message(packet=packet)
     message_puncture_request.decode_puncture_request()
     self.global_time = message_puncture_request.global_time
     private_address_to_puncture = message_puncture_request.private_address_to_puncture
     public_address_to_puncture = message_puncture_request.public_address_to_puncture
     self.public_address = self.get_majority_vote()
     print("the public addr from majority vote is:")
     print(self.public_address)
     message_puncture = Message(neighbor_discovery=self,
                                source_private_address=self.private_address,
                                source_public_address=self.public_address)
     message_puncture.encode_puncture()
     #self.transport.write(message_puncture.packet,private_address_to_puncture)
     self.send_message(message_puncture.packet, private_address_to_puncture)
     #self.transport.write(message_puncture.packet,public_address_to_puncture)
     self.send_message(message_puncture.packet, public_address_to_puncture)