--- unix/vncviewer/vncviewer.cxx.102434 2006-12-01 13:37:27.000000000 +0100 +++ unix/vncviewer/vncviewer.cxx 2006-12-01 13:37:27.000000000 +0100 @@ -52,6 +52,7 @@ "manager decoration around a window", 24); StringParameter passwordFile("PasswordFile", "Password file for VNC authentication", ""); +BoolParameter passwdInput("passwdInput", "Gets password from stdin", false); AliasParameter rfbauth("passwd", "Alias for PasswordFile", &passwordFile); BoolParameter useLocalCursor("UseLocalCursor", --- unix/vncviewer/vncviewer.man.102434 2006-12-01 13:37:27.000000000 +0100 +++ unix/vncviewer/vncviewer.man 2006-12-01 13:37:27.000000000 +0100 @@ -108,6 +108,11 @@ "~/.vnc/passwd". .TP +.B \-passwdInput \fItrue, false\fP +Force standard vnc dialog to getting password and reads password from stdin. +Default is false(shows dialog window) + +.TP .B \-Shared When you make a connection to a VNC server, all other existing connections are normally closed. This option requests that they be left open, allowing you to --- unix/vncviewer/parameters.h.102434 2006-12-01 13:37:27.000000000 +0100 +++ unix/vncviewer/parameters.h 2006-12-01 13:37:27.000000000 +0100 @@ -38,6 +38,7 @@ extern rfb::BoolParameter fullScreen; extern rfb::StringParameter geometry; extern rfb::StringParameter embedParent; +extern rfb::BoolParameter passwdInput; extern char aboutText[]; extern char* programName; --- unix/vncviewer/CConn.cxx.102434 2006-12-01 13:37:27.000000000 +0100 +++ unix/vncviewer/CConn.cxx 2006-12-01 13:41:42.000000000 +0100 @@ -37,6 +37,8 @@ #include "ServerDialog.h" #include "PasswdDialog.h" #include "parameters.h" +#include +#include using namespace rfb; @@ -206,6 +208,15 @@ return; } + if(passwdInput) + { + std::string s; + std::cin >> s; + *password = strdup(s.c_str()); + if(user) *user = 0; + return; + } + const char* secType = secTypeName(getCurrentCSecurity()->getType()); const char* titlePrefix = "VNC Authentication"; CharArray title(strlen(titlePrefix) + strlen(secType) + 4);