Beispiel #1
0
 def get(self):
     user = get_current_user(self)
     if not user:
         user = self.get_argument("user", None)  # mock user since node client has no cookie
     if user:
         try:
             user=int(user)
         except ValueError:
             err = json.dumps({"err": 5, "what": "invalid uid"})
             self.write(err)
             return
         ip = self.get_argument("ip", None)
         port = self.get_argument("port", None)
         if ip and port:
             if port == '8884' and IP.is_valid_ipv4_address(ip):
                 HttpServerInfoCache.update_ipv4_address(user, ip)
                 ok = json.dumps({"err": 0})
                 self.write(ok)
             elif port == '8886' and IP.is_valid_ipv6_address(ip):
                 HttpServerInfoCache.update_ipv6_address(user, ip)
                 ok = json.dumps({"err": 0})
                 self.write(ok)
             else:
                 err = json.dumps({"err": 2, "what": "port number err or ip address format err. ip:"+ip+" port:"+port})
                 self.write(err)
         else:
             err = json.dumps({"err": 3, "what": "no ip or port"})
             self.write(err)
     else:
         err = json.dumps({"err": 1, "what": "login first"})
         self.write(err)
Beispiel #2
0
 def get_online_file_owner(cls, my_uid, file_hash):
     assert len(file_hash) > 0
     assert my_uid >= 0
     online_owners = filter(UserIPCache.user_online, ResourcesCache.get_resource_owners(file_hash))
     # if online_owners.count(my_uid): # remove myself
     #    online_owners.remove(my_uid)
     if (UserIPCache.user_online(my_uid)):
         my_ip = UserIPCache.get_user_ip(my_uid)
         is_ipv4 = IP.is_valid_ipv4_address(my_ip)
         if is_ipv4:
             same_ip_users = filter(lambda user: UserIPCache.get_user_ip(user) == my_ip, online_owners)
             v4_owners = [user for user in same_ip_users if
                          IP.is_valid_ipv4_address(HttpServerInfoCache.get_user_ipv4(user))]
             grep_owners = [{"uid": user, "host": HttpServerInfoCache.get_user_ipv4(user), "port": 8884} for user in
                            v4_owners]
             return grep_owners
         else:
             v6_owners = [user for user in online_owners if
                          IP.is_valid_ipv6_address(HttpServerInfoCache.get_user_ipv6(user))]
             grep_owners = [{"uid": user, "host": HttpServerInfoCache.get_user_ipv6(user), "port": 8886} for user in
                            v6_owners]
             return grep_owners
     else:
         return []