def test_DoS(client_class_constructor, args): """ utility method for running DoS tests See: test_DoS_*_client.py """ assert len(args)==2, "usage: test_DoS_client :DISPLAY" import socket from xpra.dotxpra import DotXpra from xpra.bytestreams import SocketConnection import logging logging.root.setLevel(logging.DEBUG) logging.root.addHandler(logging.StreamHandler(sys.stderr)) opts = AdHocStruct() opts.password_file = "" opts.encoding = "rgb24" opts.jpegquality = 0 display = sys.argv[1] target = DotXpra().socket_path(display) print("will attempt to connect to socket: %s" % target) sock = socket.socket(socket.AF_UNIX) sock.connect(target) conn = SocketConnection(sock) print("socket connection=%s" % conn) app = client_class_constructor(conn, opts) try: app.run() finally: app.cleanup() print("ended") print("")
LOSSY_90 = "best lossy quality" XPRA_ENCODING_OPTIONS = [ "jpeg", "x264", "png", "rgb24", "vpx" ] XPRA_COMPRESSION_OPTIONS = [LOSSY_5, LOSSY_20, LOSSY_50, LOSSY_90] XPRA_COMPRESSION_OPTIONS_DICT = {LOSSY_5 : 5, LOSSY_20 : 20, LOSSY_50 : 50, LOSSY_90 : 90 } # Default connection options from wimpiggy.util import AdHocStruct xpra_opts = AdHocStruct() xpra_opts.encoding = "jpeg" xpra_opts.jpegquality = 90 xpra_opts.host = "127.0.0.1" xpra_opts.port = 16010 xpra_opts.mode = "tcp" xpra_opts.autoconnect = False xpra_opts.password_file = False class ApplicationWindow: def __init__(self): self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect("destroy", self.destroy) self.window.set_default_size(400, 300) self.window.set_border_width(20) # Title
return False return default_value def default_bool(varname, default_value): if varname not in defaults: return default_value v = defaults.get(varname) return str_to_bool(v, default_value) from wimpiggy.util import AdHocStruct xpra_opts = AdHocStruct() xpra_opts.encoding = default_str("encoding", DEFAULT_ENCODING, ENCODING_OPTIONS) xpra_opts.jpegquality = default_int("jpegquality", 90) xpra_opts.host = defaults.get("host", "127.0.0.1") xpra_opts.port = default_int("port", 10000) xpra_opts.mode = default_str("mode", "tcp", ["tcp", "ssh"]) xpra_opts.debug = default_bool("debug", False) xpra_opts.no_tray = default_bool("debug", False) xpra_opts.dock_icon = default_str("dock-icon", "") xpra_opts.tray_icon = default_str("tray-icon", "") xpra_opts.window_icon = default_str("window-icon", "") xpra_opts.password_file = default_str("password-file", "") xpra_opts.clipboard = default_bool("clipboard", True) xpra_opts.pulseaudio = default_bool("pulseaudio", True) xpra_opts.mmap = default_bool("mmap", True) xpra_opts.mmap_group = default_bool("mmap-group", False) xpra_opts.readonly = default_bool("readonly", False) xpra_opts.keyboard_sync = default_bool("keyboard-sync", True)
v = v.lower() if v in ["yes", "true", "1"]: return True if v in ["no", "false", "0"]: return False return default_value def default_bool(varname, default_value): if varname not in defaults: return default_value v = defaults.get(varname) return str_to_bool(v, default_value) from wimpiggy.util import AdHocStruct xpra_opts = AdHocStruct() xpra_opts.encoding = default_str("encoding", DEFAULT_ENCODING, ENCODING_OPTIONS) xpra_opts.jpegquality = default_int("jpegquality", 90) xpra_opts.host = defaults.get("host", "127.0.0.1") xpra_opts.port = default_int("port", 10000) xpra_opts.mode = default_str("mode", "tcp", ["tcp", "ssh"]) xpra_opts.debug = default_bool("debug", False) xpra_opts.no_tray = default_bool("debug", False) xpra_opts.dock_icon = default_str("dock-icon", "") xpra_opts.tray_icon = default_str("tray-icon", "") xpra_opts.window_icon = default_str("window-icon", "") xpra_opts.password_file = default_str("password-file", "") xpra_opts.clipboard = default_bool("clipboard", True) xpra_opts.pulseaudio = default_bool("pulseaudio", True) xpra_opts.mmap = default_bool("mmap", True) xpra_opts.mmap_group = default_bool("mmap-group", False) xpra_opts.readonly = default_bool("readonly", False) xpra_opts.keyboard_sync = default_bool("keyboard-sync", True)
except: pass XPRA_COMPRESSION_OPTIONS = [LOSSY_5, LOSSY_20, LOSSY_50, LOSSY_90] XPRA_COMPRESSION_OPTIONS_DICT = { LOSSY_5: 5, LOSSY_20: 20, LOSSY_50: 50, LOSSY_90: 90 } # Default connection options from wimpiggy.util import AdHocStruct xpra_opts = AdHocStruct() xpra_opts.encoding = "png" xpra_opts.jpegquality = 90 xpra_opts.host = "127.0.0.1" xpra_opts.port = 16010 xpra_opts.mode = "tcp" xpra_opts.debug = False xpra_opts.autoconnect = False xpra_opts.no_tray = False xpra_opts.dock_icon = "" xpra_opts.tray_icon = "" xpra_opts.password_file = False xpra_opts.clipboard = True xpra_opts.pulseaudio = True xpra_opts.mmap = True xpra_opts.readonly = False xpra_opts.keyboard_sync = True xpra_opts.compression_level = 3
socket_wrapper = SocketConnection(sock) except Exception, e: self.info.set_text("Xpra Client error: %s" % e) return self.window.hide() # launch Xpra client in the same gtk.main(): from wimpiggy.util import gtk_main_quit_on_fatal_exceptions_enable, AdHocStruct gtk_main_quit_on_fatal_exceptions_enable() opts = AdHocStruct() opts.clipboard = True opts.pulseaudio = True opts.password_file = None opts.title_suffix = None opts.title = "@title@ on @client-machine@" opts.encoding = "rgb24" opts.jpegquality = 80 opts.max_bandwidth = 0.0 opts.auto_refresh_delay = 0.0 opts.key_shortcuts = [] opts.compression_level = 3 from xpra.platform import DEFAULT_SSH_CMD opts.ssh = DEFAULT_SSH_CMD opts.remote_xpra = ".xpra/run-xpra" opts.debug = None opts.dock_icon = None import logging logging.root.setLevel(logging.INFO) logging.root.addHandler(logging.StreamHandler(sys.stderr)) app = XpraClient(socket_wrapper, opts)