Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
tigervnc.8726
x11vnc
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File x11vnc of Package tigervnc.8726
#!/usr/bin/env python # This is wrapper for x0vncserver that translate most common x11vnc arguments # to x0vncserver's arguments import argparse import socket import os import sys def is_port_free(port): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('', port)) sock.close() return True except socket.error as e: return False def find_free_port(starting_port): for port in range(starting_port, 6000): if is_port_free(port): return port return None parser = argparse.ArgumentParser(add_help=False) parser.add_argument('-help', '-h', action='help') parser.add_argument('--version', '-V', action='store_true') parser.add_argument('-storepasswd', nargs=2) parser.add_argument('-display') parser.add_argument('-auth') parser.add_argument('-N', action='store_true') parser.add_argument('-rfbport', type=int) parser.add_argument('-autoport', type=int, default=5900) parser.add_argument('-6', dest='yes6', action='store_true') parser.add_argument('-no6', action='store_true') #parser.add_argument('-once', action='store_true') # TODO: Add support to x0vncserver parser.add_argument('-forever', '-many', action='store_true') parser.add_argument('-viewonly', action='store_true') #parser.add_argument('-shared', action='store_true') # TODO? parser.add_argument('-alwaysshared', action='store_true') parser.add_argument('-nevershared', action='store_true') parser.add_argument('-dontdisconnect', action='store_true') #parser.add_argument('-timeout', nargs=1, type=int) # TODO? parser.add_argument('-clip') parser.add_argument('-deferupdate', type=int) parser.add_argument('-noshm', action='store_true') #parser.add_argument('-allow', nargs=1) # TODO? #parser.add_argument('-localhost') # TODO? parser.add_argument('-rfbauth') parser.add_argument('-nopw', action='store_true') parser.add_argument('-unixpw') # Accepted, but ignored arguments ignored_arguments = ['-v', '-verbose', '-q', '-quiet'] parser.add_argument(*ignored_arguments, dest='ignored_argument', action='store_true') print('Warning: x11vnc is deprecated in favor of x0vncserver.') print(' This is a wrapper that maps the most common set of x11vnc') print(' arguments to x0vncserver arguments.') print() print(' Use x0vncserver directly if you want encrypted connection.') print() args = parser.parse_args() # Warnings if args.ignored_argument: print('Warning: x11vnc wrapper accepts but ignores following arguments:') print(', '.join(ignored_arguments)) # vncpasswd if args.storepasswd: (password, passwdfile) = args.storepasswd os.execlp('vncpasswd.arg', 'vncpasswd.arg', passwdfile, password) # x0vncserver new_args = ['x0vncserver'] default_security_type = 'None' security_type = default_security_type if args.version: new_args.append('-version') if args.display: new_args.append('-display') new_args.append(args.display) if args.auth: os.environ['XAUTHORITY'] = args.auth if args.N: display = args.display or os.environ['DISPLAY'] if not display: print('No display set') sys.exit(1) port = int(display.split(':')[-1]) + 5900 if is_port_free(port): new_args.append('-rfbport') new_args.append(str(port)) else: print('Port %d is already used'%port) sys.exit(1) if args.rfbport: new_args.append('-rfbport') new_args.append(str(args.rfbport)) else: port = find_free_port(args.autoport) new_args.append('-rfbport') new_args.append(str(port)) if args.yes6: new_args.append('-UseIPv6') if args.no6: new_args.append('-UseIPv6=0') if args.forever: # This is default in x0vncserver pass if args.viewonly: new_args.append('-AcceptKeyEvents=0') new_args.append('-AcceptPointerEvents=0') new_args.append('-AcceptCutText=0') new_args.append('-AcceptSetDesktopSize=0') if args.alwaysshared: new_args.append('-AlwaysShared') if args.nevershared: new_args.append('-NeverShared') if args.dontdisconnect: new_args.append('-DisconnectClients=0') else: new_args.append('-DisconnectClients') if args.clip: new_args.append('-Geometry') new_args.append(args.clip) if args.deferupdate: new_args.append('-DeferUpdate') new_args.append(str(args.deferupdate)) if args.noshm: new_args.append('-UseSHM=0') if args.rfbauth: security_type = 'VncAuth' new_args.append('-PasswordFile') new_args.append(args.rfbauth) if args.unixpw: security_type = 'Plain' new_args.append('-PlainUsers') new_args.append(args.unixpw) new_args.append('-SecurityTypes') new_args.append(security_type) if not args.nopw: # Note: This is the same warning as the original x11vnc gives if security_type == default_security_type: print(""" #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# #@ @# #@ ** WARNING ** WARNING ** WARNING ** WARNING ** @# #@ @# #@ YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!! @# #@ @# #@ This means anyone with network access to this computer @# #@ may be able to view and control your desktop. @# #@ @# #@ >>> If you did not mean to do this Press CTRL-C now!! <<< @# #@ @# #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# """) os.execvp('x0vncserver', new_args)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor