Beispiel #1
0
    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()))
Beispiel #2
0
    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 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'
         })
     )
Beispiel #5
0
    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()))
Beispiel #6
0
    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()))
Beispiel #7
0
    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))
Beispiel #11
0
 def get_profile(self):
     return hello_request({'uri': self.uri})
Beispiel #12
0
 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 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))
Beispiel #15
0
 def get_profile(self):
     return hello_request({"uri": self.uri})