def init_peer(self, msg): print "Initialize Peer: ", msg uri = msg['uri'] pub = msg.get('pub') msg_type = msg.get('type') if not uri in self._peers: # unknown peer print 'Create New Peer: ',uri self.create_peer(uri, pub) if not msg_type: self.send_enc(uri, hello_request(self.get_profile())) elif msg_type == 'hello_request': self.send_enc(uri, hello_response(self.get_profile())) else: # known peer if pub: # test if we have to update the pubkey if not self._peers[uri]._pub: self.log("Setting public key for seed node") self._peers[uri]._pub = pub.decode('hex') if (self._peers[uri]._pub != pub.decode('hex')): self.log("Updating public key for node") self._peers[uri]._pub = pub.decode('hex') if msg_type == 'hello_request': # reply only if necessary self.send_enc(uri, hello_response(self.get_profile()))
def init_peer(self, msg): self._log.info('Initialize Peer: %s' % msg) uri = msg['uri'] pub = msg.get('pub') msg_type = msg.get('type') if not self.valid_peer_uri(uri): self._log.info("Peer " + uri + " is not valid.") return if not uri in self._peers: # unknown peer self._log.info('Create New Peer: %s' % uri) self.create_peer(uri, pub) if not msg_type: self.send_enc(uri, hello_request(self.get_profile())) elif msg_type == 'hello_request': self.send_enc(uri, hello_response(self.get_profile())) else: # known peer if pub: # test if we have to update the pubkey if not self._peers[uri]._pub: self._log.info("Setting public key for seed node") self._peers[uri]._pub = pub.decode('hex') if (self._peers[uri]._pub != pub.decode('hex')): self._log.info("Updating public key for node") self._peers[uri]._pub = pub.decode('hex') if msg_type == 'hello_request': # reply only if necessary self.send_enc(uri, hello_response(self.get_profile()))
def test_get_profile(self): tl = TransportLayer(1, '1.1.1.1', 12345, 1) self.assertEqual( tl.get_profile(), protocol.hello_request({ 'uri': 'tcp://1.1.1.1:12345' }) )
def _init_peer(self, msg): uri = msg['uri'] pub = msg.get('pub') nickname = msg.get('nickname') msg_type = msg.get('type') guid = msg['guid'] if not self.valid_peer_uri(uri): self.log.error("Invalid Peer: %s " % uri) return if uri not in self.peers: # Unknown peer self.log.info('Add New Peer: %s' % uri) self.create_peer(uri, pub, guid) if not msg_type: self.send_enc(uri, hello_request(self.get_profile())) elif msg_type == 'hello_request': self.send_enc(uri, hello_response(self.get_profile())) else: # Known peer if pub: # test if we have to update the pubkey if not self.peers[uri].pub: self.log.info("Setting public key for seed node") self.peers[uri].pub = pub.decode('hex') self.trigger_callbacks('peer', self.peers[uri]) if self.peers[uri].pub != pub.decode('hex'): self.log.info("Updating public key for node") self.peers[uri].nickname = nickname self.peers[uri].pub = pub.decode('hex') self.trigger_callbacks('peer', self.peers[uri]) if msg_type == 'hello_request': # reply only if necessary self.send_enc(uri, hello_response(self.get_profile()))
def init_peer(self, msg): uri = msg["uri"] pub = msg.get("pub") nickname = msg.get("nickname") msg_type = msg.get("type") guid = msg["guid"] if not self.valid_peer_uri(uri): self._log.error("Invalid Peer: %s " % uri) return if uri not in self._peers: # Unknown peer self._log.info("Add New Peer: %s" % uri) self.create_peer(uri, pub, guid) if not msg_type: self.send_enc(uri, hello_request(self.get_profile())) elif msg_type == "hello_request": self.send_enc(uri, hello_response(self.get_profile())) else: # Known peer if pub: # test if we have to update the pubkey if not self._peers[uri]._pub: self._log.info("Setting public key for seed node") self._peers[uri]._pub = pub.decode("hex") self.trigger_callbacks("peer", self._peers[uri]) if self._peers[uri]._pub != pub.decode("hex"): self._log.info("Updating public key for node") self._peers[uri]._nickname = nickname self._peers[uri]._pub = pub.decode("hex") self.trigger_callbacks("peer", self._peers[uri]) if msg_type == "hello_request": # reply only if necessary self.send_enc(uri, hello_response(self.get_profile()))
def test_get_profile(self): tl = TransportLayer(1, '1.1.1.1', 12345, 1) self.assertEqual( tl.get_profile(), protocol.hello_request({'uri': 'tcp://1.1.1.1:12345'}))
def test_on_raw_message_hello_with_uri(self): request = protocol.hello_request({'uri': 'tcp://localhost:12345'}) self.tl._on_raw_message([json.dumps(request)]) self.assertEqual(1, len(self.tl._peers))
def test_on_raw_message_hello_no_uri(self): self.tl._on_raw_message([json.dumps(protocol.hello_request({}))]) self.assertEqual(0, len(self.tl._peers))
def get_profile(self): return hello_request({'uri': self.uri})
def test_on_raw_message_hello_with_uri(self): request = protocol.hello_request({ 'uri': 'tcp://localhost:12345' }) self.tl._on_raw_message([json.dumps(request)]) self.assertEqual(1, len(self.tl._peers))
def get_profile(self): return hello_request({"uri": self.uri})