Browse Source

Merge branch 'config_as_an_argument' of https://github.com/Kypert/tigervnc

tags/v1.8.90
Pierre Ossman 6 years ago
parent
commit
c6884e0731
3 changed files with 71 additions and 2 deletions
  1. 24
    0
      java/com/tigervnc/vncviewer/VncViewer.java
  2. 31
    2
      vncviewer/vncviewer.cxx
  3. 16
    0
      vncviewer/vncviewer.man

+ 24
- 0
java/com/tigervnc/vncviewer/VncViewer.java View File

@@ -208,6 +208,8 @@ public class VncViewer extends javax.swing.JApplet
vncServerName.put(argv[i].toCharArray()).flip();
}

// Check if the server name in reality is a configuration file
potentiallyLoadConfigurationFile(vncServerName);
}

public static void usage() {
@@ -215,6 +217,7 @@ public class VncViewer extends javax.swing.JApplet
"[host:displayNum]\n"+
" vncviewer [options/parameters] -listen [port] "+
"[options/parameters]\n"+
" vncviewer [options/parameters] [.tigervnc file]\n"+
"\n"+
"Options:\n"+
" -log <level> configure logging level\n"+
@@ -277,6 +280,27 @@ public class VncViewer extends javax.swing.JApplet
System.exit(1);
}

public static void potentiallyLoadConfigurationFile(CharBuffer vncServerName) {
String serverName = vncServerName.toString();
boolean hasPathSeparator = (serverName.indexOf('/') != -1 ||
(serverName.indexOf('\\')) != -1);

if (hasPathSeparator) {
try {
serverName = loadViewerParameters(vncServerName.toString());
if (serverName == "") {
vlog.info("Unable to load the server name from given file");
System.exit(1);
}
vncServerName.clear();
vncServerName.put(serverName).flip();
} catch (com.tigervnc.rfb.Exception e) {
vlog.info(e.getMessage());
System.exit(1);
}
}
}

public static void newViewer() {
String cmd = "java -jar ";
try {

+ 31
- 2
vncviewer/vncviewer.cxx View File

@@ -349,8 +349,9 @@ static void usage(const char *programName)

fprintf(stderr,
"\nusage: %s [parameters] [host:displayNum] [parameters]\n"
" %s [parameters] -listen [port] [parameters]\n",
programName, programName);
" %s [parameters] -listen [port] [parameters]\n"
" %s [parameters] [.tigervnc file]\n",
programName, programName, programName);
fprintf(stderr,"\n"
"Parameters can be turned on with -<param> or off with -<param>=0\n"
"Parameters which take a value can be specified as "
@@ -368,6 +369,31 @@ static void usage(const char *programName)
exit(1);
}

static void
potentiallyLoadConfigurationFile(char *vncServerName)
{
const bool hasPathSeparator = (strchr(vncServerName, '/') != NULL ||
(strchr(vncServerName, '\\')) != NULL);

if (hasPathSeparator) {
try {
strncpy(vncServerName, loadViewerParameters(vncServerName),
VNCSERVERNAMELEN);
if (vncServerName[0] == '\0') {
vlog.error("Unable to load the server name from given file");
if (alertOnFatalError)
fl_alert("Unable to load the server name from given file");
exit(EXIT_FAILURE);
}
} catch (rfb::Exception& e) {
vlog.error("%s", e.str());
if (alertOnFatalError)
fl_alert("%s", e.str());
exit(EXIT_FAILURE);
}
}
}

#ifndef WIN32
static int
interpretViaParam(char *remoteHost, int *remotePort, int localPort)
@@ -516,6 +542,9 @@ int main(int argc, char** argv)
i++;
}

// Check if the server name in reality is a configuration file
potentiallyLoadConfigurationFile(vncServerName);

mkvnchomedir();

#if !defined(WIN32) && !defined(__APPLE__)

+ 16
- 0
vncviewer/vncviewer.man View File

@@ -14,6 +14,10 @@ vncviewer \- VNC viewer for X
.RI [ options ]
.B \-listen
.RI [ port ]
.br
.B vncviewer
.RI [ options ]
.RI [ .tigervnc file ]
.SH DESCRIPTION
.B vncviewer
is a viewer (client) for Virtual Network Computing. This manual page documents
@@ -31,6 +35,18 @@ VNC server on that machine. Either the machine name or display number can be
omitted. So for example ":1" means display number 1 on the same machine, and
"snoopy" means "snoopy:0" i.e. display 0 on machine "snoopy".

As another quick way to start a connection to a VNC server, specify a .tigervnc
configuration file as an argument to the viewer, e.g.:

.RS
vncviewer ./some.tigervnc
.RE

where './some.tigervnc' is an existing and valid TigerVNC configuration file.
The file name needs to include a path separator. Additional options may be
given too, but the given configuration file will overwrite any conflicting
parameters.

If the VNC server is successfully contacted, you will be prompted for a
password to authenticate you. If the password is correct, a window will appear
showing the desktop of the VNC server.

Loading…
Cancel
Save