diff options
author | Pierre Ossman <ossman@cendio.se> | 2011-03-09 09:42:34 +0000 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2011-03-09 09:42:34 +0000 |
commit | 5156d5e49b88d9a5c0ede2c81897e8a2d3c52523 (patch) | |
tree | 4ad5e2e9b04ae782dc60669fff3347b826f34fce /vncviewer/UserDialog.cxx | |
parent | db143c99055594b025127c2998021edf5d500b4b (diff) | |
download | tigervnc-5156d5e49b88d9a5c0ede2c81897e8a2d3c52523.tar.gz tigervnc-5156d5e49b88d9a5c0ede2c81897e8a2d3c52523.zip |
Initial commit of new FLTK based vncviewer. Most of the code comes from the
current Unix vncviewer.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4345 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'vncviewer/UserDialog.cxx')
-rw-r--r-- | vncviewer/UserDialog.cxx | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/vncviewer/UserDialog.cxx b/vncviewer/UserDialog.cxx new file mode 100644 index 00000000..992ea785 --- /dev/null +++ b/vncviewer/UserDialog.cxx @@ -0,0 +1,86 @@ +/* Copyright 2011 Pierre Ossman <ossman@cendio.se> for Cendio AB + * + * This 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. + * + * This software 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 this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include <assert.h> +#include <stdio.h> +#include <string.h> + +#include <FL/fl_ask.H> + +#include <rfb/util.h> +#include <rfb/Password.h> +#include <rfb/Exception.h> + +#include "i18n.h" +#include "parameters.h" +#include "UserDialog.h" + +using namespace rfb; + +UserDialog::UserDialog() +{ +} + +UserDialog::~UserDialog() +{ +} + +void UserDialog::getUserPasswd(char** user, char** password) +{ + CharArray passwordFileStr(passwordFile.getData()); + + assert(password); + + if (!user && passwordFileStr.buf[0]) { + ObfuscatedPasswd obfPwd(256); + FILE* fp; + + fp = fopen(passwordFileStr.buf, "r"); + if (!fp) + throw rfb::Exception(_("Opening password file failed")); + + obfPwd.length = fread(obfPwd.buf, 1, obfPwd.length, fp); + fclose(fp); + + PlainPasswd passwd(obfPwd); + *password = passwd.takeBuf(); + + return; + } + + if (!user) { + *password = strDup(fl_password(_("VNC authentication"), "")); + if (!*password) + throw rfb::Exception(_("Authentication cancelled")); + + return; + } + + fl_alert(_("NOT IMPLEMENTED!")); + + *user = strDup(""); + *password = strDup(""); +} + +bool UserDialog::showMsgBox(int flags, const char* title, const char* text) +{ + fl_message_title(title); + fl_message(text); + + return false; +} |