Exemple #1
0
    def handle_HELLO(self, hello):
        try:
            hello = messages.read_message(hello)
            self.remote_nodeid = hello['nodeid']
            self.remote_node_protocol_version = hello["protocol"]

            if self.remote_nodeid == self.nodeid:
                logg("[!] Found myself at %s" % self.host_ip)
                self.transport.loseConnection()
            else:
                if self.state == "GETHELLO":
                    my_hello = messages.create_hello(self.nodeid, self.VERSION,
                                                     self.ProtocolVersion)
                    self.transport.write(my_hello + "\n")
                self.add_peer()
                self.state = "READY"
                self.print_peers()
                #self.write(messages.create_ping(self.nodeid))
                if self.kind == "LISTENER":
                    # The listener pings it's audience
                    logg("[ ] Starting pinger to %s" % self.remote_ip)
                    self.lc_ping.start(PING_INTERVAL, now=False)
                    # Tell new audience about my peers
                    self.send_ADDR()
                self.lc_sync.start(SYNC_INTERVAL, now=True)
        except messages.InvalidSignatureError:
            _print(" [!] ERROR: Invalid hello sign ", self.remote_ip)
            self.transport.loseConnection()
Exemple #2
0
    def handle_HELLO(self, hello):
        try:
            print("Получил HELLO")
            hello = messages.read_message(hello)
            self.remote_nodeid = hello[
                'nodeid']  #nodeid того,кто прислал письмо

            if self.remote_nodeid == self.nodeid:  #если я  сам себе прислал
                print(" [!] Found myself at", self.host_ip)
                self.transport.loseConnection()

            else:  #если я не сам себе прислал
                if self.state == "GETHELLO":  #если я в состоянии GETHELLO
                    my_hello = messages.create_hello(
                        self.nodeid,
                        self.VERSION)  #собираю свое Hello- сообщение
                    self.sendLine(my_hello + "\n")  #отправляю

                self.add_peer()  # добавить данный пир в List
                self.state = "READY"  #ставлю себе состояние READY

                if self.kind == "LISTENER":  #если я СЛУШАЮ, то начинаю пинговать Пира
                    print(" [ ] Starting pinger to " + self.remote_nodeid)
                    self.lc_ping.start(PING_INTERVAL, now=False)
                    # Рассказываю данному ноду о моих пирах.
                    self.send_ADDR()

        except messages.InvalidSignatureError:  #если в ходе передачи были искажены данные
            print(" [!] ERROR: Invalid hello sign ", self.remoteip)
            self.transport.loseConnection()
Exemple #3
0
 def send_HELLO(self):
     hello = messages.create_hello(self.nodeid, self.VERSION)
     self.sendLine(hello + "\n")
     self.state = "SENTHELLO"  #состояние SENTHELLO
     print("SEND_HELLO:", self.nodeid, "to", self.remote_ip)
Exemple #4
0
 def send_HELLO(self):
     hello = messages.create_hello(self.nodeid, self.VERSION)
     #_print(" [ ] SEND_HELLO:", self.nodeid, "to", self.remote_ip)
     self.transport.write(hello + "\n")
     self.state = "SENTHELLO"
Exemple #5
0
 def test_hello(self):
     hello = messages.create_hello(self.nodeid, 0)
     # check that InvalidSignatureError is not raised
     return messages.read_message(hello)
Exemple #6
0
 def send_HELLO(self):
     hello = messages.create_hello(self.nodeid, self.VERSION,
                                   self.protoversion)
     self.transport.write(hello + "\n")
     self.state = "SENTHELLO"
Exemple #7
0
 def test_hello(self):
     hello = messages.create_hello(self.nodeid, 0)
     # check that InvalidSignatureError is not raised
     return messages.read_message(hello)