Пример #1
0
 def get_routes(self, req, msgid, message, data):
     routes = []
     for n in neighbours.keys():
         if n == node_id:
             routes.append((n, "Loopback"))
         else:
             c = neighbours[n]
             if isinstance(c, str):
                 routes.append((n, c))
             else:
                 routes.append((n, c.getpeername()))
     req.send(msgid, ("RESULT_TUPLE", tuple(routes)))
Пример #2
0
 def get_routes(self, req, msgid, message, data):
     routes = []
     for n in neighbours.keys():
         if n == node_id:
             routes.append((n, "Loopback"))
         else:
             c = neighbours[n]
             if isinstance(c, str):
                 routes.append((n, c))
             else:
                 routes.append((n, c.getpeername()))
     req.send(msgid, ("RESULT_TUPLE", tuple(routes)))
Пример #3
0
 def get_connect_details(self, req, msgid, message, data):
     # try to find out how to connect to a server
     if str(data[0]) == node_id:
         # they're looking for us! Return our details
         req.send(msgid, ("RESULT_TUPLE", ((req.getsockname()[0], getOptions().port), None)))
     elif str(data[0]) in neighbours.keys():
         # they're looking for our neighbour, ask them how to connect to them
         r = sendMessageToNode(str(data[0]), None, get_connect_details, str(data[0]))
         if isinstance(neighbours[str(data[0])], str): # we don't have a direct connection
             req.send(msgid, ("RESULT_TUPLE", (r[1], neighbours[str(data[0])])))
         else: # we have a direct connection, tell people to go through us
             req.send(msgid, ("RESULT_TUPLE", (r[1], node_id)))
     else:
         # we don't know the node they're looking for
         req.send(msgid, (dont_know, ))
Пример #4
0
 def get_connect_details(self, req, msgid, message, data):
     # try to find out how to connect to a server
     if str(data[0]) == node_id:
         # they're looking for us! Return our details
         req.send(msgid,
                  ("RESULT_TUPLE",
                   ((req.getsockname()[0], getOptions().port), None)))
     elif str(data[0]) in neighbours.keys():
         # they're looking for our neighbour, ask them how to connect to them
         r = sendMessageToNode(str(data[0]), None, get_connect_details,
                               str(data[0]))
         if isinstance(neighbours[str(data[0])],
                       str):  # we don't have a direct connection
             req.send(msgid,
                      ("RESULT_TUPLE", (r[1], neighbours[str(data[0])])))
         else:  # we have a direct connection, tell people to go through us
             req.send(msgid, ("RESULT_TUPLE", (r[1], node_id)))
     else:
         # we don't know the node they're looking for
         req.send(msgid, (dont_know, ))
Пример #5
0
 def get_neighbours(self, req, msgid, message, data):
     req.send(msgid, ("RESULT_TUPLE", tuple(neighbours.keys())))
Пример #6
0
 def get_neighbours(self, req, msgid, message, data):
     req.send(msgid, ("RESULT_TUPLE", tuple(neighbours.keys())))