diff options
Diffstat (limited to 'unix/xserver/hw/vnc/xvnc.c')
-rw-r--r-- | unix/xserver/hw/vnc/xvnc.c | 65 |
1 files changed, 29 insertions, 36 deletions
diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c index 31301f6c..5cf673aa 100644 --- a/unix/xserver/hw/vnc/xvnc.c +++ b/unix/xserver/hw/vnc/xvnc.c @@ -73,8 +73,8 @@ extern char buildtime[]; #include "version-config.h" -#define XVNCVERSION "TigerVNC 1.14.80" -#define XVNCCOPYRIGHT ("Copyright (C) 1999-2024 TigerVNC Team and many others (see README.rst)\n" \ +#define XVNCVERSION "TigerVNC 1.15.80" +#define XVNCCOPYRIGHT ("Copyright (C) 1999-2025 TigerVNC team and many others (see README.rst)\n" \ "See https://www.tigervnc.org for information on TigerVNC.\n") #define VNC_DEFAULT_WIDTH 1024 @@ -110,7 +110,6 @@ static VncScreenInfo vncScreenInfo = { static Bool vncPixmapDepths[33]; static Bool Render = TRUE; -static Bool displaySpecified = FALSE; static char displayNumStr[16]; static int vncVerbose = 0; @@ -176,15 +175,20 @@ ddxGiveUp(enum ExitCode error) vncFreeFramebufferMemory(&vncScreenInfo.fb); } +#if XORG_OLDER_THAN(1, 21, 1) void AbortDDX(enum ExitCode error) { ddxGiveUp(error); } +#endif void OsVendorInit(void) { + /* At this point, display has been set, so we can use it to + * initialize UnixPasswordValidator */ + vncSetDisplayName(display); } void @@ -214,8 +218,6 @@ ddxInputThreadInit(void) void ddxUseMsg(void) { - vncPrintBanner(); - ErrorF("-pixdepths list-of-int support given pixmap depths\n"); ErrorF("+/-render turn on/off RENDER extension support" "(default on)\n"); @@ -278,14 +280,16 @@ ddxProcessArgument(int argc, char *argv[], int i) } if (argv[i][0] == ':') - displaySpecified = TRUE; + return 0; +#if XORG_OLDER_THAN(1, 21, 1) #define CHECK_FOR_REQUIRED_ARGUMENTS(num) \ if (((i + num) >= argc) || (!argv[i + num])) { \ ErrorF("Required argument to %s not specified\n", argv[i]); \ UseMsg(); \ FatalError("Required argument to %s not specified\n", argv[i]); \ } +#endif if (strcmp(argv[i], "-pixdepths") == 0) { /* -pixdepths list-of-depth */ int depth, ret = 1; @@ -384,7 +388,7 @@ ddxProcessArgument(int argc, char *argv[], int i) dup2(nullfd, 2); close(nullfd); - if (!displaySpecified) { + if (!explicit_display) { int port = vncGetSocketPort(vncInetdSock); int displayNum = port - 5900; @@ -398,9 +402,9 @@ ddxProcessArgument(int argc, char *argv[], int i) FatalError ("Xvnc error: No free display number for -inetd\n"); } - - display = displayNumStr; sprintf(displayNumStr, "%d", displayNum); + display = displayNumStr; + explicit_display = TRUE; } return 1; @@ -448,28 +452,7 @@ ddxProcessArgument(int argc, char *argv[], int i) exit(0); } - /* We need to resolve an ambiguity for booleans */ - if (argv[i][0] == '-' && i + 1 < argc && vncIsParamBool(&argv[i][1])) { - if ((strcasecmp(argv[i + 1], "0") == 0) || - (strcasecmp(argv[i + 1], "1") == 0) || - (strcasecmp(argv[i + 1], "true") == 0) || - (strcasecmp(argv[i + 1], "false") == 0) || - (strcasecmp(argv[i + 1], "yes") == 0) || - (strcasecmp(argv[i + 1], "no") == 0)) { - vncSetParam(&argv[i][1], argv[i + 1]); - return 2; - } - } - - if (vncSetParamSimple(argv[i])) - return 1; - - if (argv[i][0] == '-' && i + 1 < argc) { - if (vncSetParam(&argv[i][1], argv[i + 1])) - return 2; - } - - return 0; + return vncHandleParamArg(argc, argv, i); } static Bool @@ -765,12 +748,13 @@ vncRandRModeGet(int width, int height) xRRModeInfo modeInfo; char name[100]; RRModePtr mode; +#ifdef HAVE_LIBXCVT + struct libxcvt_mode_info *cvtMode; +#endif memset(&modeInfo, 0, sizeof(modeInfo)); #ifdef HAVE_LIBXCVT - struct libxcvt_mode_info *cvtMode; - cvtMode = libxcvt_gen_mode_info(width, height, 60.0, false, false); modeInfo.width = cvtMode->hdisplay; @@ -903,7 +887,7 @@ vncRandRCreateScreenOutputs(int scrIdx, int extraOutputs) /* Creating and modifying modes, used by XserverDesktop and init here */ int -vncRandRCanCreateModes() +vncRandRCanCreateModes(void) { return 1; } @@ -1170,10 +1154,11 @@ InitOutput(ScreenInfo * scrInfo, int argc, char **argv) int i; int NumFormats = 0; - vncPrintBanner(); + if (serverGeneration == 1) { + vncPrintBanner(); - if (serverGeneration == 1) LoadExtensionList(vncExtensions, ARRAY_SIZE(vncExtensions), TRUE); + } #if XORG_AT_LEAST(1, 20, 0) xorgGlxCreateVendor(); @@ -1230,11 +1215,13 @@ DDXRingBell(int percent, int pitch, int duration) vncBell(); } +#if XORG_OLDER_THAN(1, 21, 1) Bool LegalModifier(unsigned int key, DeviceIntPtr pDev) { return TRUE; } +#endif void ProcessInputEvents(void) @@ -1261,3 +1248,9 @@ vncClientGone(int fd) GiveUp(0); } } + +int +main(int argc, char *argv[], char *envp[]) +{ + return dix_main(argc, argv, envp); +} |