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("")
def add_window(self, model, x, y, w, h): assert self.flags() & gtk.REALIZED s = AdHocStruct() s.shown = False s.geom = [x, y, w, h] s.window = None self._models[model] = s model.connect("unmanaged", self._unmanaged) model.connect("ownership-election", self._elect_me) def new_geom(window_model, *args): log("new_geom(%s,%s)", window_model, args) model.connect("geometry", new_geom) model.ownership_election()
def make_defaults_struct(): #populate config with default values: defaults = read_xpra_defaults() validated = validate_config(defaults) options = get_defaults().copy() options.update(validated) for k, v in CLONES.items(): if k in options: options[v] = options[k] config = AdHocStruct() for k, v in options.items(): attr_name = k.replace("-", "_") setattr(config, attr_name, v) return config
LOSSY_20 = "low quality" LOSSY_50 = "average quality" 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)
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)
def str_to_bool(v, default_value): if type(v)==str: 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)
from xpra.scripts.main import ENCODINGS XPRA_ENCODING_OPTIONS = ENCODINGS 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
except Exception, e: self.info.set_text("Socket error: %s" % e) return self.info.set_text("Connection established") try: from xpra.protocol import SocketConnection global socket_wrapper 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
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.ssh = DEFAULT_SSH_CMD xpra_opts.title = default_str("title", "@title@ on @client-machine@") xpra_opts.encoding = default_str("encoding", DEFAULT_ENCODING, ENCODING_OPTIONS) xpra_opts.jpegquality = default_int("jpegquality", 90) xpra_opts.quality = default_int("quality", 90) xpra_opts.min_quality = default_int("min-quality", 50) xpra_opts.speed = default_int("speed", -1) xpra_opts.min_speed = default_int("min-speed", -1) xpra_opts.sockdir = None xpra_opts.host = defaults.get("host", "127.0.0.1") xpra_opts.username = "" try: import getpass xpra_opts.username = getpass.getuser()
def str_to_bool(v, default_value): if type(v)==str: 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.ssh = DEFAULT_SSH_CMD xpra_opts.title = default_str("title", "@title@ on @client-machine@") xpra_opts.encoding = default_str("encoding", DEFAULT_ENCODING, ENCODING_OPTIONS) xpra_opts.jpegquality = default_int("jpegquality", 90) xpra_opts.quality = default_int("quality", 90) xpra_opts.min_quality = default_int("min-quality", 50) xpra_opts.speed = default_int("speed", -1) xpra_opts.min_speed = default_int("min-speed", -1) xpra_opts.sockdir = None xpra_opts.host = defaults.get("host", "127.0.0.1") xpra_opts.username = "" try: import getpass xpra_opts.username = getpass.getuser() except:
LOSSY_50 = "average quality" 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)