def init_host(config_file): global host_ip global host_port global timeout global routing_table global watchDog global timer_dict global proxy_server_list fp = open(config_file) count = 1 for line in fp: if count == 1: para = line.strip().split() host_ip = socket.gethostbyname(socket.gethostname()) host_port = int(para[0]) timeout = float(para[1]) routing_table = RoutingTable(host_ip, host_port) else: routing_table.lock.acquire() para = line.strip().split() # splitting the ip and port t_para = para[0].split(':') # initiate the weight routing_table.set_neighbor(t_para[0], int(t_para[1]), float(para[1])) routing_table.set_edge_weight(host_ip, host_port, t_para[0], int(t_para[1]), float(para[1])) routing_table.set_edge_through(host_ip, host_port, t_para[0], int(t_para[1]), t_para[0], int(t_para[1])) routing_table.lock.release() count += 1 fp.close() routing_table.lock.acquire() routing_table.set_edge_weight(host_ip, host_port, host_ip, host_port, 0.0) routing_table.set_edge_through(host_ip, host_port, host_ip, host_port, host_ip, host_port) routing_table.lock.release() ''' This is just added for part three having a proxy list ''' for each in routing_table.get_all_neighbors(): proxy_server_list[each] = None watchDog = WatchDog(timeout, [], send_update) watchDog.start() for key in routing_table.neighbor.keys(): timer = WatchDog(3 * timeout, [key], time_up) timer.start() timer_dict[key] = timer
def init_host(config_file): global host_ip global host_port global timeout global routing_table global watchDog global timer_dict global proxy_server_list fp = open(config_file) count = 1 for line in fp: if count == 1: para = line.strip().split() host_ip = socket.gethostbyname(socket.gethostname()) host_port = int(para[0]) timeout = float(para[1]) routing_table = RoutingTable(host_ip, host_port) else: routing_table.lock.acquire() para = line.strip().split() # splitting the ip and port t_para = para[0].split(':') # initiate the weight routing_table.set_neighbor(t_para[0], int(t_para[1]), float(para[1])) routing_table.set_edge_weight(host_ip, host_port, t_para[0], int(t_para[1]), float(para[1])) routing_table.set_edge_through(host_ip, host_port, t_para[0], int(t_para[1]), t_para[0], int(t_para[1])) routing_table.lock.release() count += 1 fp.close() routing_table.lock.acquire() routing_table.set_edge_weight(host_ip, host_port, host_ip, host_port, 0.0) routing_table.set_edge_through(host_ip, host_port, host_ip, host_port, host_ip, host_port) routing_table.lock.release() ''' This is just added for part three having a proxy list ''' for each in routing_table.get_all_neighbors(): proxy_server_list[each] = None watchDog = WatchDog(timeout, [], send_update) watchDog.start() for key in routing_table.neighbor.keys(): timer = WatchDog(3*timeout, [key], time_up) timer.start() timer_dict[key] = timer