diff options
Diffstat (limited to 'x11vnc/options.c')
-rw-r--r-- | x11vnc/options.c | 514 |
1 files changed, 0 insertions, 514 deletions
diff --git a/x11vnc/options.c b/x11vnc/options.c deleted file mode 100644 index ab119b6..0000000 --- a/x11vnc/options.c +++ /dev/null @@ -1,514 +0,0 @@ -/* - Copyright (C) 2002-2010 Karl J. Runge <runge@karlrunge.com> - All rights reserved. - -This file is part of x11vnc. - -x11vnc is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -x11vnc is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with x11vnc; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA -or see <http://www.gnu.org/licenses/>. - -In addition, as a special exception, Karl J. Runge -gives permission to link the code of its release of x11vnc with the -OpenSSL project's "OpenSSL" library (or with modified versions of it -that use the same license as the "OpenSSL" library), and distribute -the linked executables. You must obey the GNU General Public License -in all respects for all of the code used other than "OpenSSL". If you -modify this file, you may extend this exception to your version of the -file, but you are not obligated to do so. If you do not wish to do -so, delete this exception statement from your version. -*/ - -/* -- options.c -- */ - -#define _X11VNC_OPTIONS_H -#include "x11vnc.h" - -/* - * variables for the command line options - */ -int debug = 0; - -char *use_dpy = NULL; /* -display */ -int display_N = 0; -int auto_port = 0; -char *auth_file = NULL; /* -auth/-xauth */ -char *visual_str = NULL; /* -visual */ -int set_visual_str_to_something = 0; -char *logfile = NULL; /* -o, -logfile */ -int logfile_append = 0; -char *flagfile = NULL; /* -flag */ -char *rm_flagfile = NULL; /* -rmflag */ -char *passwdfile = NULL; /* -passwdfile */ -int unixpw = 0; /* -unixpw */ -int unixpw_nis = 0; /* -unixpw_nis */ -char *unixpw_list = NULL; -char *unixpw_cmd = NULL; -int unixpw_system_greeter = 0; -int unixpw_system_greeter_active = 0; -int use_stunnel = 0; /* -stunnel */ -int stunnel_port = 0; -char *stunnel_pem = NULL; -int use_openssl = 0; -int http_ssl = 0; -int ssl_no_fail = 0; -char *openssl_pem = NULL; -char *ssl_certs_dir = NULL; -char *enc_str = NULL; -int vencrypt_mode = VENCRYPT_SUPPORT; -int vencrypt_kx = VENCRYPT_BOTH; -int vencrypt_enable_plain_login = 0; -int anontls_mode = ANONTLS_SUPPORT; -int create_fresh_dhparams = 0; -char *dhparams_file = NULL; -int http_try_it = 0; -int stunnel_http_port = 0; -int https_port_num = -1; -int https_port_redir = 0; -char *ssl_verify = NULL; -char *ssl_crl = NULL; -int ssl_initialized = 0; -int ssl_timeout_secs = -1; -char *ssh_str = NULL; -pid_t ssh_pid = 0; -int usepw = USEPW; -char *blackout_str = NULL; /* -blackout */ -int blackout_ptr = 0; -char *clip_str = NULL; /* -clip */ -int use_solid_bg = 0; /* -solid */ -char *solid_str = NULL; -char *solid_default = "cyan4"; - -char *wmdt_str = NULL; /* -wmdt */ - -char *speeds_str = NULL; /* -speeds */ - -char *rc_rcfile = NULL; /* -rc */ -int rc_rcfile_default = 0; -int rc_norc = 0; -int got_norc = 0; -int opts_bg = 0; - -#ifndef VNCSHARED -int shared = 0; /* share vnc display. */ -#else -int shared = 1; -#endif -#ifndef FOREVER -int connect_once = 1; /* disconnect after first connection session. */ -#else -int connect_once = 0; -#endif -int got_connect_once = 0; -int got_findauth = 0; -int deny_all = 0; /* global locking of new clients */ -#ifndef REMOTE_DEFAULT -#define REMOTE_DEFAULT 1 -#endif -int accept_remote_cmds = REMOTE_DEFAULT; /* -noremote */ -char *remote_prefix = NULL; -int remote_direct = 0; -int query_default = 0; -int safe_remote_only = 1; /* -unsafe */ -int priv_remote = 0; /* -privremote */ -int more_safe = 0; /* -safer */ -#ifndef EXTERNAL_COMMANDS -#define EXTERNAL_COMMANDS 1 -#endif -#if EXTERNAL_COMMANDS -int no_external_cmds = 0; /* -nocmds */ -#else -int no_external_cmds = 1; /* cannot be turned back on. */ -#endif -char *allowed_external_cmds = NULL; -int started_as_root = 0; -int host_lookup = 1; -char *unix_sock = NULL; -int unix_sock_fd = -1; -#if X11VNC_LISTEN6 -int ipv6_listen = 1; /* -6 / -no6 */ -int got_ipv6_listen = 1; -#else -int ipv6_listen = 0; /* -6 / -no6 */ -int got_ipv6_listen = 0; -#endif -int ipv6_listen_fd = -1; -int ipv6_http_fd = -1; -int noipv6 = 0; -int noipv4 = 0; -char *ipv6_client_ip_str = NULL; -char *users_list = NULL; /* -users */ -char **user2group = NULL; -char *allow_list = NULL; /* for -allow and -localhost */ -char *listen_str = NULL; -char *listen_str6 = NULL; -char *allow_once = NULL; /* one time -allow */ -char *accept_cmd = NULL; /* for -accept */ -char *afteraccept_cmd = NULL; /* for -afteraccept */ -char *gone_cmd = NULL; /* for -gone */ -#ifndef VIEWONLY -#define VIEWONLY 0 -#endif -int view_only = VIEWONLY; /* clients can only watch. */ -char *allowed_input_view_only = NULL; -char *allowed_input_normal = NULL; -char *allowed_input_str = NULL; -char *viewonly_passwd = NULL; /* view only passwd. */ -char **passwd_list = NULL; /* for -passwdfile */ -int begin_viewonly = -1; -int inetd = 0; /* spawned from inetd(8) */ -#ifndef TIGHTFILEXFER -#define TIGHTFILEXFER 0 -#endif -int tightfilexfer = TIGHTFILEXFER; -int got_ultrafilexfer = 0; -int first_conn_timeout = 0; /* -timeout */ -int ping_interval = 0; /* -ping */ -int flash_cmap = 0; /* follow installed colormaps */ -int shift_cmap = 0; /* ncells < 256 and needs shift of pixel values */ -int force_indexed_color = 0; /* whether to force indexed color for 8bpp */ -int advertise_truecolor = 0; -int advertise_truecolor_reset = 0; -int cmap8to24 = 0; /* -8to24 */ -int xform24to32 = 0; /* -24to32 */ -char *cmap8to24_str = NULL; -int launch_gui = 0; /* -gui */ - -#ifndef AVAHI -#define AVAHI 0 -#endif -int avahi = AVAHI; /* -avahi, -mdns */ -int vnc_redirect = 0; -int vnc_redirect_sock = -1; - -int use_modifier_tweak = 1; /* use the shift/altgr modifier tweak */ -int watch_capslock = 0; /* -capslock */ -int skip_lockkeys = 0; /* -skip_lockkeys */ -int use_iso_level3 = 0; /* ISO_Level3_Shift instead of Mode_switch */ -int clear_mods = 0; /* -clear_mods (1) and -clear_keys (2) -clear_locks (3) */ -int nofb = 0; /* do not send any fb updates */ -char *raw_fb_str = NULL; /* used under -rawfb */ -char *raw_fb_pixfmt = NULL; -char *raw_fb_full_str = NULL; -char *freqtab = NULL; -char *pipeinput_str = NULL; /* -pipeinput [tee,reopen,keycodes:]cmd */ -char *pipeinput_opts = NULL; -FILE *pipeinput_fh = NULL; -int pipeinput_tee = 0; -int pipeinput_int = 0; -int pipeinput_cons_fd = -1; -char *pipeinput_cons_dev = NULL; - -int macosx_nodimming = 0; /* Some native MacOSX server settings. */ -int macosx_nosleep = 0; -int macosx_noscreensaver = 0; -int macosx_wait_for_switch = 1; -int macosx_mouse_wheel_speed = 5; -int macosx_console = 0; -int macosx_swap23 = 1; -int macosx_resize = 1; -int macosx_icon_anim_time = 450; -int macosx_no_opengl = 0; -int macosx_no_rawfb = 0; -int macosx_read_opengl = 0; -int macosx_read_rawfb = 0; - -unsigned long subwin = 0x0; /* -id, -sid */ -int subwin_wait_mapped = 0; -int freeze_when_obscured = 0; -int subwin_obscured = 0; - -int debug_xevents = 0; /* -R debug_xevents:1 */ -int debug_xdamage = 0; /* -R debug_xdamage:1 or 2 ... */ -int debug_wireframe = 0; -int debug_tiles = 0; -int debug_grabs = 0; -int debug_sel = 0; - -int xtrap_input = 0; /* -xtrap for user input insertion */ -int xinerama = XINERAMA; /* -xinerama */ -int xrandr = 0; /* -xrandr */ -int xrandr_maybe = 1; /* check for events, but don't trap all calls */ -char *xrandr_mode = NULL; -char *pad_geometry = NULL; -time_t pad_geometry_time = 0; -int use_snapfb = 0; - -int use_xrecord = 0; -int noxrecord = 0; - -char *client_connect = NULL; /* strings for -connect option */ -char *client_connect_file = NULL; -int connect_or_exit = 0; -int vnc_connect = 1; /* -vncconnect option */ -char *connect_proxy = NULL; - -int show_cursor = 1; /* show cursor shapes */ -int show_multiple_cursors = 0; /* show X when on root background, etc */ -char *multiple_cursors_mode = NULL; -#ifndef CURSOR_DRAG -#define CURSOR_DRAG 0 -#endif -int cursor_drag_changes = CURSOR_DRAG; -int cursor_pos_updates = 1; /* cursor position updates -cursorpos */ -int cursor_shape_updates = 1; /* cursor shape updates -nocursorshape */ -int use_xwarppointer = 0; /* use XWarpPointer instead of XTestFake... */ -int always_inject = 0; /* inject new mouse coordinates even if dx=dy=0 */ -int show_dragging = 1; /* process mouse movement events */ -#ifndef WIREFRAME -#define WIREFRAME 1 -#endif -int wireframe = WIREFRAME; /* try to emulate wireframe wm moves */ -/* shade,linewidth,percent,T+B+L+R,t1+t2+t3+t4 */ -char *wireframe_str = NULL; -char *wireframe_copyrect = NULL; -#ifndef WIREFRAME_COPYRECT -#define WIREFRAME_COPYRECT 1 -#endif -#if WIREFRAME_COPYRECT -char *wireframe_copyrect_default = "always"; -#else -char *wireframe_copyrect_default = "never"; -#endif -int wireframe_in_progress = 0; -int wireframe_local = 1; - -#ifndef NCACHE -#ifdef NO_NCACHE -#define NCACHE 0 -#else -#define xxNCACHE -12 -#define NCACHE -1 -#endif -#endif - -#ifdef MACOSX -int ncache = 0; -int ncache_pad = 24; -#else -int ncache = NCACHE; -int ncache_pad = 0; -#endif - -#ifndef NCACHE_XROOTPMAP -#define NCACHE_XROOTPMAP 1 -#endif -int ncache_xrootpmap = NCACHE_XROOTPMAP; -int ncache0 = 0; -int ncache_default = 10; -int ncache_copyrect = 0; -int ncache_wf_raises = 1; -int ncache_dt_change = 1; -int ncache_keep_anims = 0; -int ncache_old_wm = 0; -int macosx_ncache_macmenu = 0; -int macosx_us_kbd = 0; -int ncache_beta_tester = 0; -int ncdb = 0; - -Atom atom_NET_ACTIVE_WINDOW = None; -Atom atom_NET_CURRENT_DESKTOP = None; -Atom atom_NET_CLIENT_LIST_STACKING = None; -Atom atom_XROOTPMAP_ID = None; -double got_NET_ACTIVE_WINDOW = 0.0; -double got_NET_CURRENT_DESKTOP = 0.0; -double got_NET_CLIENT_LIST_STACKING = 0.0; -double got_XROOTPMAP_ID = 0.0; - -/* T+B+L+R,tkey+presist_key,tmouse+persist_mouse */ -char *scroll_copyrect_str = NULL; -#ifndef SCROLL_COPYRECT -#define SCROLL_COPYRECT 1 -#endif -char *scroll_copyrect = NULL; -#if SCROLL_COPYRECT -#if 1 -char *scroll_copyrect_default = "always"; /* -scrollcopyrect */ -#else -char *scroll_copyrect_default = "keys"; -#endif -#else -char *scroll_copyrect_default = "never"; -#endif -char *scroll_key_list_str = NULL; -KeySym *scroll_key_list = NULL; - -#ifndef SCALING_COPYRECT -#define SCALING_COPYRECT 1 -#endif -int scaling_copyrect0 = SCALING_COPYRECT; -int scaling_copyrect = SCALING_COPYRECT; - -int scrollcopyrect_min_area = 60000; /* minimum rectangle area */ -int debug_scroll = 0; -double pointer_flush_delay = 0.0; -double last_scroll_event = 0.0; -int max_scroll_keyrate = 0; -double max_keyrepeat_time = 0.0; -char *max_keyrepeat_str = NULL; -char *max_keyrepeat_str0 = "4-20"; -int max_keyrepeat_lo = 1, max_keyrepeat_hi = 40; - -char **scroll_good_all = NULL; -char **scroll_good_key = NULL; -char **scroll_good_mouse = NULL; -char *scroll_good_str = NULL; -char *scroll_good_str0 = "##Nomatch"; -/* "##Firefox-bin," */ -/* "##Gnome-terminal," */ -/* "##XTerm", */ - -char **scroll_skip_all = NULL; -char **scroll_skip_key = NULL; -char **scroll_skip_mouse = NULL; -char *scroll_skip_str = NULL; -char *scroll_skip_str0 = "##Soffice.bin,##StarOffice,##OpenOffice"; -/* "##Konsole," * no problems, known heuristics do not work */ - -char **scroll_term = NULL; -char *scroll_term_str = NULL; -char *scroll_term_str0 = "term"; - -char* screen_fixup_str = NULL; -double screen_fixup_V = 0.0; -double screen_fixup_C = 0.0; -double screen_fixup_X = 0.0; -double screen_fixup_8 = 0.0; - -#ifndef NOREPEAT -#define NOREPEAT 1 -#endif -int no_autorepeat = NOREPEAT; /* turn off autorepeat with clients */ -int no_repeat_countdown = 2; -int watch_bell = 1; /* watch for the bell using XKEYBOARD */ -int sound_bell = 1; /* actually send it */ -int xkbcompat = 0; /* ignore XKEYBOARD extension */ -int use_xkb_modtweak = 0; /* -xkb */ -#ifndef SKIPDUPS -#define SKIPDUPS 0 -#endif -int skip_duplicate_key_events = SKIPDUPS; -char *skip_keycodes = NULL; -int sloppy_keys = 0; -#ifndef ADDKEYSYMS -#define ADDKEYSYMS 1 -#endif -int add_keysyms = ADDKEYSYMS; /* automatically add keysyms to X server */ - -char *remap_file = NULL; /* -remap */ -char *pointer_remap = NULL; -/* use the various ways of updating pointer */ -#ifndef POINTER_MODE_DEFAULT -#define POINTER_MODE_DEFAULT 2 -#endif -int pointer_mode = POINTER_MODE_DEFAULT; -int pointer_mode_max = 4; -int single_copytile = 0; /* use the old way copy_tiles() */ -int single_copytile_orig = 0; -int single_copytile_count = 0; -int tile_shm_count = 0; - -int using_shm = 1; /* whether mit-shm is used */ -int flip_byte_order = 0; /* sometimes needed when using_shm = 0 */ -/* - * waitms is the msec to wait between screen polls. Not too old h/w shows - * poll times of 10-35ms, so maybe this value cuts the idle load by 2 or so. - */ -int waitms = 20; -int got_waitms = 0; -double wait_ui = 2.0; -double slow_fb = 0.0; -double xrefresh = 0.0; -int wait_bog = 1; -int extra_fbur = 1; -int defer_update = 20; /* deferUpdateTime ms to wait before sends. */ -int set_defer = 1; -int got_defer = 0; -int got_deferupdate = 0; - -int screen_blank = 60; /* number of seconds of no activity to throttle */ - /* down the screen polls. zero to disable. */ -int no_fbu_blank = 30; /* nap if no client updates in this many secs. */ -int take_naps = 1; /* -nap/-nonap */ -int naptile = 4; /* tile change threshold per poll to take a nap */ -int napfac = 4; /* time = napfac*waitms, cut load with extra waits */ -int napmax = 1500; /* longest nap in ms. */ -int ui_skip = 10; /* see watchloop. negative means ignore input */ -int all_input = 0; -int handle_events_eagerly = 0; - - -#if LIBVNCSERVER_HAVE_FBPM -int watch_fbpm = 1; /* -nofbpm */ -#else -int watch_fbpm = 0; -#endif - -int watch_dpms = 0; /* -dpms */ -int force_dpms = 0; -int client_dpms = 0; -int no_ultra_dpms = 0; -int no_ultra_ext = 0; -int saw_ultra_chat = 0; -int saw_ultra_file = 0; -int chat_window = 0; -rfbClientPtr chat_window_client = NULL; - -int watch_selection = 1; /* normal selection/cutbuffer maintenance */ -int watch_primary = 1; /* more dicey, poll for changes in PRIMARY */ -int watch_clipboard = 1; -char *sel_direction = NULL; /* "send" or "recv" for one-way */ - -char *sigpipe = NULL; /* skip, ignore, exit */ - -/* visual stuff for -visual override or -overlay */ -VisualID visual_id = (VisualID) 0; -int visual_depth = 0; - -/* for -overlay mode on Solaris/IRIX. X server draws cursor correctly. */ -int overlay = 0; -int overlay_cursor = 1; - -/* tile heuristics: */ -double fs_frac = 0.75; /* threshold tile fraction to do fullscreen updates. */ -int tile_fuzz = 2; /* tolerance for suspecting changed tiles touching */ - /* a known changed tile. */ -int grow_fill = 3; /* do the grow islands heuristic with this width. */ -int gaps_fill = 4; /* do a final pass to try to fill gaps between tiles. */ - -int debug_pointer = 0; -int debug_keyboard = 0; - -int quiet = 0; -int verbose = 0; - -/* threaded vs. non-threaded (default) */ -int use_threads = 0; -int started_rfbRunEventLoop = 0; -int threads_drop_input = 0; - -/* info about command line opts */ -int got_noxwarppointer = 0; -int got_rfbport = 0; -int got_rfbport_val = -1; -int got_alwaysshared = 0; -int got_nevershared = 0; -int got_cursorpos = 0; -int got_pointer_mode = -1; -int got_noviewonly = 0; -int got_wirecopyrect = 0; -int got_scrollcopyrect = 0; -int got_noxkb = 0; -int got_nomodtweak = 0; - |