Ticket #1521: socket-activation.patch
File socket-activation.patch, 5.6 KB (added by , 4 years ago) |
---|
-
etc/sysconfig/xpra
1 1 TCP_AUTH=sys 2 AUTH= sys2 AUTH=peercred 3 3 #DEBUG=auth,proxy 4 4 DEBUG= -
service/xpra.service
1 1 [Unit] 2 Description=Xpra ProxyServer2 Description=Xpra System Server 3 3 Wants=avahi-daemon.socket 4 4 Documentation=https://xpra.org/trac/wiki/ProxyServer man:xpra 5 After=network.target xpra.socket 6 Requires=xpra.socket 5 7 6 8 [Service] 7 9 Type=simple 8 10 EnvironmentFile=-/etc/sysconfig/xpra 9 ExecStart=/usr/bin/xpra proxy :14500 --daemon=no --bind-tcp=0.0.0.0:14500 --tcp-auth=${TCP_AUTH} --ssl-cert=/etc/xpra/ssl-cert.pem --bind=auto --auth=${AUTH} --socket-dirs=/var/run/xpra --socket-permissions=666 --log-dir=/var/log --pidfile=/var/run/xpra.pid --debug=${DEBUG} 11 #ExecStart=/usr/bin/xpra proxy :14500 --daemon=no --bind-tcp=0.0.0.0:14500 --tcp-auth=${TCP_AUTH} --ssl-cert=/etc/xpra/ssl-cert.pem --bind=auto --auth=${AUTH} --socket-dirs=/var/run/xpra --socket-permissions=666 --log-dir=/var/log --pidfile=/var/run/xpra.pid --debug=${DEBUG} 12 ExecStart=/usr/bin/xpra proxy :14500 --daemon=no --tcp-auth=${TCP_AUTH} --ssl-cert=/etc/xpra/ssl-cert.pem --auth=${AUTH} --socket-dirs=/var/run/xpra --socket-permissions=666 --log-dir=/var/log --pidfile=/var/run/xpra.pid --debug=${DEBUG} 10 13 #rely on SIGKILL which returns 128+15=143 11 14 SuccessExitStatus=0 143 12 15 Restart=on-abnormal -
service/xpra.socket
1 [Unit] 2 Description=Xpra Socket 3 PartOf=xpra.service 4 5 [Socket] 6 ListenStream=14500 7 ListenStream=/var/run/xpra/system 8 #this is not handled yet: 9 #ListenStream=vsock:x:y 10 SocketUser=root 11 SocketGroup=xpra 12 PassCredentials=true 13 14 [Install] 15 WantedBy=sockets.target -
setup.py
143 143 shadow_ENABLED = SHADOW_SUPPORTED and not (PYTHON3 and LINUX) and DEFAULT #shadow servers use some GTK2 code.. 144 144 server_ENABLED = (LOCAL_SERVERS_SUPPORTED or shadow_ENABLED) and not (PYTHON3 and LINUX) and DEFAULT 145 145 service_ENABLED = LINUX and server_ENABLED 146 sd_listen_ENABLED = pkg_config_ok("--exists", "libsystemd") 146 147 proxy_ENABLED = DEFAULT 147 148 client_ENABLED = DEFAULT 148 149 … … 1534 1535 copytodir("etc/sysconfig/xpra", "/etc/sysconfig") 1535 1536 elif os.path.exists("/etc/default"): 1536 1537 copytodir("etc/sysconfig/xpra", "/etc/default") 1538 if sd_listen_ENABLED: 1539 copytodir("service/xpra.socket", "/lib/systemd/system") 1537 1540 1538 1541 1539 1542 # add build_conf to build step … … 1870 1873 ["xpra/server/window/motion.pyx"], 1871 1874 **O3_pkgconfig)) 1872 1875 1876 if sd_listen_ENABLED: 1877 sdp = pkgconfig("libsystemd") 1878 cython_add(Extension("xpra.server.sd_listen", 1879 ["xpra/server/sd_listen.pyx"], 1880 **sdp)) 1873 1881 1882 1874 1883 toggle_packages(enc_proxy_ENABLED, "xpra.codecs.enc_proxy") 1875 1884 1876 1885 toggle_packages(nvfbc_ENABLED, "xpra.codecs.nvfbc") -
xpra/scripts/server.py
477 477 _, tcp_socket, host_port = setup_tcp_socket(host, iport, "SSL") 478 478 socket = ("SSL", wrap_socket_fn(tcp_socket), host_port) 479 479 sockets.append(socket) 480 if opts.mdns: 481 rec = "ssl", [(host, iport)] 482 mdns_recs.append(rec) 480 rec = "ssl", [(host, iport)] 481 mdns_recs.append(rec) 483 482 484 483 # Initialize the TCP sockets before the display, 485 484 # That way, errors won't make us kill the Xvfb 486 485 # (which may not be ours to kill at that point) 486 tcp_ssl = ssl_opt in TRUE_OPTIONS or (ssl_opt=="auto" and opts.ssl_cert) 487 def add_tcp_mdns_rec(host, iport): 488 rec = "tcp", [(host, iport)] 489 mdns_recs.append(rec) 490 if tcp_ssl: 491 #SSL is also available on this TCP socket: 492 rec = "ssl", [(host, iport)] 493 mdns_recs.append(rec) 487 494 for host, iport in bind_tcp: 488 495 socket = setup_tcp_socket(host, iport) 489 496 sockets.append(socket) 490 if opts.mdns: 491 rec = "tcp", [(host, iport)] 492 mdns_recs.append(rec) 493 if ssl_opt in TRUE_OPTIONS or (ssl_opt=="auto" and opts.ssl_cert): 494 #SSL is also available on this TCP socket: 495 rec = "ssl", [(host, iport)] 496 mdns_recs.append(rec) 497 add_tcp_mdns_rec(host, iport) 497 498 498 499 # VSOCK: 499 500 for cid, iport in bind_vsock: 500 501 socket = setup_vsock_socket(cid, iport) 501 502 sockets.append(socket) 502 if opts.mdns: 503 rec = "vsock", [("", iport)] 504 mdns_recs.append(rec) 503 rec = "vsock", [("", iport)] 504 mdns_recs.append(rec) 505 505 506 # systemd socket activation: 507 try: 508 from xpra.server.sd_listen import get_sd_listen_sockets 509 except ImportError: 510 pass 511 else: 512 sd_sockets = get_sd_listen_sockets() 513 for stype, sock, addr in sd_sockets: 514 sockets.append((stype, sock, addr)) 515 if stype=="tcp": 516 host, iport = addr 517 add_tcp_mdns_rec(host, iport) 518 506 519 # Do this after writing out the shell script: 507 520 if display_name[0] != 'S': 508 521 os.environ["DISPLAY"] = display_name