Make WinVNC service mode work on Windows Vista and beyond.
Patch by Jochen Tucht, fixes bug 135.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5158 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/win/winvnc/STrayIcon.cxx b/win/winvnc/STrayIcon.cxx
index 354575a..84575bd 100644
--- a/win/winvnc/STrayIcon.cxx
+++ b/win/winvnc/STrayIcon.cxx
@@ -136,22 +136,10 @@
}
break;
case ID_OPTIONS:
- {
- CurrentUserToken token;
- if (token.canImpersonate())
- vncConfig.start(isServiceProcess() ? (HANDLE)token : INVALID_HANDLE_VALUE);
- else
- vlog.error("Options: unknown current user");
- }
+ vncConfig.start(INVALID_HANDLE_VALUE);
break;
case ID_CONNECT:
- {
- CurrentUserToken token;
- if (token.canImpersonate())
- vncConnect.start(isServiceProcess() ? (HANDLE)token : INVALID_HANDLE_VALUE);
- else
- vlog.error("Options: unknown current user");
- }
+ vncConnect.start(INVALID_HANDLE_VALUE);
break;
case ID_DISCONNECT:
thread.server.disconnectClients("tray menu disconnect");
@@ -160,7 +148,6 @@
if (MsgBox(0, _T("Are you sure you want to close the server?"),
MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2) == IDYES) {
if (isServiceProcess()) {
- ImpersonateCurrentUser icu;
try {
rfb::win32::stopService(VNCServerService::Name);
} catch (rdr::Exception& e) {