Example #1
0
class xAlice:
    def __init__(self, config):
        assert isinstance(config, ClientConfig)
        config.in_use = True
        self.config = config

        # begin XXX This is supposed to be "equivalent" to Alice.main;
        # work out what that means and unify the two!
        self.actual_alice = Alice(config.actual_config)
        self.actual_alice.listener.start()
        self.actual_alice.start()
        # end XXX

        global tr
        tr = self.actual_alice.tr
        self.sinfo = {}
        self.cinfo = {}
        link = self.actual_alice.link
        self.sinfo["server"]=link.peer[0]
        self.sinfo["ip"]=link.server_ip

    def disconnect(self):
        pass # XXX

    def get_server_info(self):
        link = self.actual_alice.link
        self.sinfo["connection time"] = time.time() - link.time_connected
        self.sinfo["message count"  ] = (link.messages_out, link.messages_in)
        self.sinfo["last message"   ] = time.time() - link.last_sent
        return self.sinfo

    def get_client_info(self):
        link = self.actual_alice.link

        # This is not "efficient" but, like, whatever:
        if "public_ip" in link.__dict__:
            self.cinfo["public ip"] = link.public_ip
        else:
            self.cinfo["public ip"] = None

        self.cinfo["network interface"] = self.actual_alice.config.interface
        self.cinfo["ntp method"] = self.actual_alice.time_manager.method
        self.cinfo["clock dispersion"] = self.actual_alice.root_dispersion
        return self.cinfo

    def get_peers(self):
        peers = self.actual_alice.fm.peers.items()
        return [xPeer(p, self.actual_alice.fm) for p in peers]
Example #2
0
class xAlice:
    def __init__(self, config):
        assert isinstance(config, ClientConfig)
        config.in_use = True
        self.config = config

        # begin XXX This is supposed to be "equivalent" to Alice.main;
        # work out what that means and unify the two!
        self.actual_alice = Alice(config.actual_config)
        self.actual_alice.listener.start()
        self.actual_alice.start()
        # end XXX

        global tr
        tr = self.actual_alice.tr
        self.sinfo = {}
        self.cinfo = {}
        link = self.actual_alice.link
        self.sinfo["server"] = link.peer[0]
        self.sinfo["ip"] = link.server_ip

    def disconnect(self):
        pass  # XXX

    def get_server_info(self):
        link = self.actual_alice.link
        self.sinfo["connection time"] = time.time() - link.time_connected
        self.sinfo["message count"] = (link.messages_out, link.messages_in)
        self.sinfo["last message"] = time.time() - link.last_sent
        return self.sinfo

    def get_client_info(self):
        link = self.actual_alice.link

        # This is not "efficient" but, like, whatever:
        if "public_ip" in link.__dict__:
            self.cinfo["public ip"] = link.public_ip
        else:
            self.cinfo["public ip"] = None

        self.cinfo["network interface"] = self.actual_alice.config.interface
        self.cinfo["ntp method"] = self.actual_alice.time_manager.method
        self.cinfo["clock dispersion"] = self.actual_alice.root_dispersion
        return self.cinfo

    def get_peers(self):
        peers = self.actual_alice.fm.peers.items()
        return [xPeer(p, self.actual_alice.fm) for p in peers]
Example #3
0
    def __init__(self, config):
        assert isinstance(config, ClientConfig)
        config.in_use = True
        self.config = config

        # begin XXX This is supposed to be "equivalent" to Alice.main;
        # work out what that means and unify the two!
        self.actual_alice = Alice(config.actual_config)
        self.actual_alice.listener.start()
        self.actual_alice.start()
        # end XXX

        global tr
        tr = self.actual_alice.tr
        self.sinfo = {}
        self.cinfo = {}
        link = self.actual_alice.link
        self.sinfo["server"] = link.peer[0]
        self.sinfo["ip"] = link.server_ip
Example #4
0
    def __init__(self, config):
        assert isinstance(config, ClientConfig)
        config.in_use = True
        self.config = config

        # begin XXX This is supposed to be "equivalent" to Alice.main;
        # work out what that means and unify the two!
        self.actual_alice = Alice(config.actual_config)
        self.actual_alice.listener.start()
        self.actual_alice.start()
        # end XXX

        global tr
        tr = self.actual_alice.tr
        self.sinfo = {}
        self.cinfo = {}
        link = self.actual_alice.link
        self.sinfo["server"]=link.peer[0]
        self.sinfo["ip"]=link.server_ip