Example #1
0
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
Example #2
0
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