예제 #1
0
        def start_XpraClient():
            app = XpraClient(conn, xpra_opts)
            if xpra_opts.password:
                #pass the password to the class directly:
                app.password = xpra_opts.password
            #override exit code:
            warn_and_quit_save = app.warn_and_quit

            def warn_and_quit_override(exit_code, warning):
                app.cleanup()
                password_warning = warning.find("invalid password") >= 0
                if password_warning:
                    self.password_warning()
                err = exit_code != 0 or password_warning
                self.set_info_color(err)
                self.set_info_text(warning)
                if err:

                    def ignore_further_quit_events(*args):
                        pass

                    app.warn_and_quit = ignore_further_quit_events
                    self.set_sensitive(True)
                    gobject.idle_add(self.window.show)
                else:
                    app.warn_and_quit = warn_and_quit_save
                    self.destroy()
                    gtk.main_quit()

            app.warn_and_quit = warn_and_quit_override
예제 #2
0
		def start_XpraClient():
			app = XpraClient(conn, xpra_opts)
			if xpra_opts.password:
				#pass the password to the class directly:
				app.password = xpra_opts.password
			#override exit code:
			warn_and_quit_save = app.warn_and_quit
			def warn_and_quit_override(exit_code, warning):
				app.cleanup()
				password_warning = warning.find("invalid password")>=0
				if password_warning:
					self.password_warning()
				err = exit_code!=0 or password_warning
				self.set_info_color(err)
				self.set_info_text(warning)
				if err:
					def ignore_further_quit_events(*args):
						pass
					app.warn_and_quit = ignore_further_quit_events
					self.set_sensitive(True)
					gobject.idle_add(self.window.show)
				else:
					app.warn_and_quit = warn_and_quit_save
					self.destroy()
					gtk.main_quit()
			app.warn_and_quit = warn_and_quit_override
예제 #3
0
        def start_XpraClient():
            app = XpraClient(socket_wrapper, opts)
            if opts.password:
                app.password = opts.password
            warn_and_quit_save = app.warn_and_quit

            def warn_and_quit_override(exit_code, warning):
                app.cleanup()
                err = exit_code != 0 or warning.find("invalid password") >= 0
                self.set_info_color(err)
                self.set_info_text(warning)
                self.window.show()
                self.window.set_sensitive(True)
                if err:

                    def ignore_further_quit_events(*args):
                        pass

                    app.warn_and_quit = ignore_further_quit_events
                else:
                    app.warn_and_quit = warn_and_quit_save
                    gtk.main_quit()

            app.warn_and_quit = warn_and_quit_override
            app.run()
            app.cleanup()
예제 #4
0
파일: main.py 프로젝트: rudresh2319/Xpra
def run_client(parser, opts, extra_args, mode):
    if mode == "screenshot":
        if len(extra_args) == 0:
            parser.error("invalid number of arguments for screenshot mode")
        screenshot_filename = extra_args[0]
        extra_args = extra_args[1:]

    if mode in ("attach"):
        sys.stdout.write("xpra client version %s\n" % xpra.__version__)
        sys.stdout.flush()

    conn = connect_or_fail(pick_display(parser, opts, extra_args))
    if opts.compression_level < 0 or opts.compression_level > 9:
        parser.error("Compression level must be between 0 and 9 inclusive.")
    if opts.quality != -1 and (opts.quality < 0 or opts.quality > 100):
        parser.error(
            "Quality must be between 0 and 100 inclusive. (or -1 to disable)")

    if mode == "screenshot":
        from xpra.client_base import ScreenshotXpraClient
        app = ScreenshotXpraClient(conn, opts, screenshot_filename)
    elif mode == "info":
        from xpra.client_base import InfoXpraClient
        app = InfoXpraClient(conn, opts)
    elif mode == "version":
        from xpra.client_base import VersionXpraClient
        app = VersionXpraClient(conn, opts)
    else:
        from xpra.client import XpraClient
        app = XpraClient(conn, opts)
    return do_run_client(app, conn.target, mode)
예제 #5
0
def run_client(parser, opts, extra_args):
    from xpra.client import XpraClient
    conn = connect_or_fail(pick_display(parser, opts, extra_args))
    if opts.compression_level < 0 or opts.compression_level > 9:
        parser.error("Compression level must be between 0 and 9 inclusive.")
    app = XpraClient(conn, opts.compression_level)
    app.connect("handshake-complete", handshake_complete_msg)
    app.connect("received-gibberish", got_gibberish_msg)
    app.run()
예제 #6
0
파일: main.py 프로젝트: rudresh2319/Xpra
def run_client(parser, opts, extra_args, mode):
    if mode=="screenshot":
        if len(extra_args)==0:
            parser.error("invalid number of arguments for screenshot mode")
        screenshot_filename = extra_args[0]
        extra_args = extra_args[1:]

    if mode in ("attach"):
        sys.stdout.write("xpra client version %s\n" % xpra.__version__)
        sys.stdout.flush()

    conn = connect_or_fail(pick_display(parser, opts, extra_args))
    if opts.compression_level < 0 or opts.compression_level > 9:
        parser.error("Compression level must be between 0 and 9 inclusive.")
    if opts.quality!=-1 and (opts.quality < 0 or opts.quality > 100):
        parser.error("Quality must be between 0 and 100 inclusive. (or -1 to disable)")

    if mode=="screenshot":
        from xpra.client_base import ScreenshotXpraClient
        app = ScreenshotXpraClient(conn, opts, screenshot_filename)
    elif mode=="info":
        from xpra.client_base import InfoXpraClient
        app = InfoXpraClient(conn, opts)
    elif mode=="version":
        from xpra.client_base import VersionXpraClient
        app = VersionXpraClient(conn, opts)
    else:
        from xpra.client import XpraClient
        app = XpraClient(conn, opts)
    def got_gibberish_msg(obj, data):
        if str(data).find("assword")>0:
            sys.stdout.write("Your ssh program appears to be asking for a password.\n"
                             + GOT_PASSWORD_PROMPT_SUGGESTION)
            sys.stdout.flush()
        if str(data).find("login")>=0:
            sys.stdout.write("Your ssh program appears to be asking for a username.\n"
                             "Perhaps try using something like 'ssh:USER@host:display'?\n")
            sys.stdout.flush()
    app.connect("received-gibberish", got_gibberish_msg)
    def handshake_complete(*args):
        from wimpiggy.log import Logger
        log = Logger()
        if mode=="detach":
            log.info("handshake-complete: detaching")
            app.quit(0)
        elif mode=="attach":
            log.info("Attached to %s (press Control-C to detach)\n" % conn.target)
    app.connect("handshake-complete", handshake_complete)
    set_signal_handlers(app)
    try:
        try:
            return app.run()
        except KeyboardInterrupt, e:
            return -signal.SIGINT
    finally:
        app.cleanup()
예제 #7
0
def run_client(parser, opts, extra_args, mode):
    if mode == "screenshot":
        screenshot_filename = extra_args[0]
        extra_args = extra_args[1:]

    conn = connect_or_fail(pick_display(parser, opts, extra_args))
    if opts.compression_level < 0 or opts.compression_level > 9:
        parser.error("Compression level must be between 0 and 9 inclusive.")
    if opts.jpegquality < 0 or opts.jpegquality > 100:
        parser.error("Jpeg quality must be between 0 and 100 inclusive.")
    if opts.title_suffix is not None and opts.title != "@title@ on @client-machine@":
        parser.error("use --title or --title-suffix but not both!")

    if mode == "screenshot":
        from xpra.client_base import ScreenshotXpraClient
        app = ScreenshotXpraClient(conn, opts, screenshot_filename)
    elif mode == "version":
        from xpra.client_base import VersionXpraClient
        app = VersionXpraClient(conn, opts)
    else:
        from xpra.client import XpraClient
        app = XpraClient(conn, opts)

    def got_gibberish_msg(obj, data):
        if "assword" in data:
            sys.stdout.write(
                "Your ssh program appears to be asking for a password.\n" +
                GOT_PASSWORD_PROMPT_SUGGESTION)
            sys.stdout.flush()
        if "login" in data:
            sys.stdout.write(
                "Your ssh program appears to be asking for a username.\n"
                "Perhaps try using something like 'ssh:USER@host:display'?\n")
            sys.stdout.flush()

    app.connect("received-gibberish", got_gibberish_msg)

    def handshake_complete(*args):
        if mode == "detach":
            sys.stdout.write("handshake-complete: detaching")
            app.quit()
        elif mode == "attach":
            sys.stdout.write("Attached (press Control-C to detach)\n")
            sys.stdout.flush()

    app.connect("handshake-complete", handshake_complete)
    signal.signal(signal.SIGINT, app.quit)
    try:
        app.run()
    finally:
        app.cleanup()
예제 #8
0
파일: main.py 프로젝트: rudresh2319/Xpra
def run_remote_server(parser, opts, args):
    """ Uses the regular XpraClient with patched proxy arguments to tell run_proxy to start the server """
    params = parse_display_name(parser.error, opts, args[0])
    #add special flags to "display_as_args"
    proxy_args = [params["display"]]
    if opts.start_child:
        for c in opts.start_child:
            proxy_args.append("--start-child=%s" % c)
    if opts.exit_with_children:
        proxy_args.append("--exit-with-children")
    params["display_as_args"] = proxy_args
    #and use _proxy_start subcommand:
    params["proxy_command"] = ["_proxy_start"]
    conn = connect_or_fail(params)
    from xpra.client import XpraClient
    app = XpraClient(conn, opts)
    do_run_client(app, params["display_name"], "attach")
예제 #9
0
		opts.remote_xpra = ".xpra/run-xpra"
		opts.debug = None
                opts.no_tray = False
		opts.dock_icon = None
		opts.tray_icon = None
		opts.window_icon = None
		opts.readonly = False
		opts.session_name = "Xpra session"
		opts.mmap = True
		opts.keyboard_sync = True

		import logging
		logging.root.setLevel(logging.INFO)
		logging.root.addHandler(logging.StreamHandler(sys.stderr))

		app = XpraClient(socket_wrapper, opts)
		app.run()

	def launch_xpra(self):
		""" Launches Xpra in a new process """
		cmd = "xpra"
		if sys.platform.startswith("win"):
			if hasattr(sys, "frozen"):
				exedir = os.path.dirname(sys.executable)
			else:
				exedir = os.path.dirname(sys.argv[0])
			cmd = os.path.join(exedir, "xpra.exe")
			if not os.path.exists(cmd):
				self.info.set_text("Xpra command not found!")
				return
		self.info.set_text("Launching: %s" % cmd)
예제 #10
0
 def start_XpraClient():
     app = XpraClient(socket_wrapper, opts)
     app.run()
     self.window.show()
     self.window.set_sensitive(True)
예제 #11
0
        opts.readonly = xpra_opts.readonly
        opts.session_name = "Xpra session"
        opts.mmap = xpra_opts.mmap
        opts.mmap_group = xpra_opts.mmap_group
        opts.keyboard_sync = xpra_opts.keyboard_sync
        opts.send_pings = xpra_opts.send_pings
        opts.dpi = xpra_opts.dpi
        opts.cursors = xpra_opts.cursors
        opts.bell = xpra_opts.bell
        opts.notifications = xpra_opts.notifications
        import logging
        logging.root.setLevel(logging.INFO)
        logging.root.addHandler(logging.StreamHandler(sys.stderr))

        self.window.hide()
        app = XpraClient(socket_wrapper, opts)
        app.run()
        self.window.show()

    def launch_xpra(self):
        thread.start_new_thread(self.do_launch_xpra, ())

    def set_info_text(self, text):
        if self.info:
            gobject.idle_add(self.info.set_text, text)

    def do_launch_xpra(self):
        """ Launches Xpra in a new process """
        gobject.idle_add(self.window.hide)
        try:
            self.set_info_text("Launching")
예제 #12
0
		def start_XpraClient():
			app = XpraClient(socket_wrapper, opts)
			app.run()
			self.window.show()
			self.window.set_sensitive(True)
예제 #13
0
파일: main.py 프로젝트: dmgerman/hacking
def run_client(parser, opts, extra_args):
    from xpra.client import XpraClient
    sock, local = client_sock(parser, opts, pick_display(parser, extra_args))
    app = XpraClient(sock)
    sys.stdout.write("Attached\n")
    app.run()