Esempio n. 1
0
def main():
    if detect_stub():
        from solipsis.node import main as node_main
        node_main.main()
        sys.exit(0)
    params = build_params()
    # If an URL has been specified, try to connect to a running navigator
    if params.url_jump:
        filename = os.path.join('state', 'url_jump.port')
        try:
            f = file(filename, 'rb')
            url_port = int(f.read())
            f.close()
        except (IOError, EOFError, ValueError):
            pass
        else:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            try:
                s.connect(('127.0.0.1', url_port))
            except socket.error:
                pass
            else:
                s.send(params.url_jump + '\r\n')
                s.close()
                sys.exit(0)

    application = NavigatorApp(redirect=False,
                               params=params)
    try:
        application.MainLoop()
    except (SystemExit, KeyboardInterrupt):
        pass
    sys.exit(0)
Esempio n. 2
0
def run():
    # get conf file
    solipsis_path = os.path.abspath(os.path.dirname(solipsis.__file__))
    root_path = os.path.normpath(os.sep.join([solipsis_path, ".."]))
    conf_file = os.sep.join([root_path, "conf", "solipsis.conf"])
    # get options
    parser = optparse.OptionParser(USAGE)
    parser.add_option("-t", "--testing",
                      action="store_true", dest="testing", default=False,
                      help="execute within trial testing framework")
    parser.add_option("-p", "--port",
                      action="store", dest="port", default=LOCAL_PORT,
                      help="port which navigator listens to")
    parser.add_option("-f", "--config-file",
                      action="store", dest="conf_file", default=conf_file,
                      help="file to read configuration from")
    options, args = parser.parse_args()
    sys.argv = []
    # app needs conf env
    os.chdir(root_path)
    # launch application
    params = build_params(options.conf_file)
    params.testing = options.testing
    params.local_port = int(options.port)
    try:
        navigator = NavigatorApp(params=params)
    except CannotListenError, err:
        print err
    def start_listening(self, conf_file=None):
        """launch well-known server of profiles"""
        self.local_port = get_free_port()
        # define callbacks on public_ip discovery
        def _stun_succeed(address):
            """Discovery succeeded"""
            self.public_ip, self.public_port = address
            display_status(_("STUN discovery found address %s:%d" % (self.public_ip, self.public_port)))
            self.listener = reactor.listenTCP(self.local_port, self)
            return True

        def _stun_fail(failure):
            self.public_ip, self.public_port = self.local_ip, self.local_port
            display_warning(_("STUN failed:", failure.getErrorMessage()), title=_("File server Error"))
            self.listener = reactor.listenTCP(self.local_port, self)
            return False

        # get public ip
        deferred = stun.DiscoverAddress(self.local_port, reactor, build_params(conf_file))
        deferred.addCallback(_stun_succeed)
        deferred.addErrback(_stun_fail)
        return deferred
Esempio n. 4
0
def run(conf_file=None):
    application = NavigatorApp(params=build_params(conf_file))
    return application
Esempio n. 5
0
def main():
    application = NavigatorApp(params=build_params(), 
                               log_file="session.log")
    application.startListening()
    application.run()
Esempio n. 6
0
def run():
    # get conf file
    solipsis_path = os.path.abspath(os.path.dirname(solipsis.__file__))
    root_path = os.path.normpath(os.sep.join([solipsis_path, ".."]))
    conf_file = os.sep.join([root_path, "conf", "solipsis.conf"])
    # get options
    parser = optparse.OptionParser(USAGE)
    parser.add_option("-t", "--testing",
                      action="store_true", dest="testing", default=False,
                      help="execute within trial testing framework")
    parser.add_option("-p", "--port",
                      action="store", dest="port", default=LOCAL_PORT,
                      help="port which navigator listens to")
    parser.add_option("-f", "--config-file",
                      action="store", dest="conf_file", default=conf_file,
                      help="file to read configuration from")
    parser.add_option("-B", "--pseudo-bruce",
                      action="store_true", dest="bruce", default=False,
                      help="bruce profile")
    parser.add_option("-T", "--pseudo-test",
                      action="store_true", dest="test", default=False,
                      help="test profile")
    options, args = parser.parse_args()
    # set pseudo
    if len(args) == 1:
        pseudo =  os.path.join(PROFILE_DIR, args[0])
    else:
        if options.bruce:
            pseudo = FILE_BRUCE
        elif options.test:
            pseudo = FILE_TEST
        else:
            print USAGE
            sys.exit(1)
    sys.argv = []
    # app needs conf env
    os.chdir(root_path)
    params = build_params(options.conf_file)
    params.testing = options.testing
    params.local_port = int(options.port)
    params.node_id = pseudo
    params.pseudo = pseudo
    # launch application
    try:
        print "Pseudo:", pseudo
        navigator = NavigatorApp(params=params)
        def on_error(failure):
            print "***", failure.getErrorMessage()
        def on_connect(result):
            src_path = pseudo + PROFILE_EXT
            dst_path = os.path.join(PROFILE_DIR, get_facade()._desc.node_id + PROFILE_EXT)
            shutil.copyfile(src_path, dst_path)
            get_facade().load()
            print src_path, ">", dst_path
        deferred = defer.Deferred().addCallbacks(on_connect, on_error)
        def on_init(result):
            navigator._TryConnect(deferred)
        navigator.addCallbacks(on_init, on_error)
        navigator.startListening()
    except CannotListenError, err:
        print err