git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4183 3789f03b-4d11-0410-bbf8-ca57d06f2519tags/v1.0.90
@@ -62,6 +62,7 @@ add_library(rfb STATIC | |||
UpdateTracker.cxx | |||
VNCSConnectionST.cxx | |||
VNCServerST.cxx | |||
WinPasswdValidator.cxx # Windows specific code | |||
ZRLEEncoder.cxx | |||
ZRLEDecoder.cxx | |||
encodings.cxx |
@@ -67,4 +67,8 @@ librfb_la_CPPFLAGS += -I$(top_srcdir)/common/jpeg -I$(top_builddir)/common/jpeg | |||
librfb_la_LIBADD += $(top_builddir)/common/jpeg/libjpeg.la | |||
endif | |||
if BUILD_WIN | |||
librfb_la_SOURCES += WinPasswdValidator.h WinPasswdValidator.cxx | |||
endif | |||
EXTRA_DIST = CMakeLists.txt |
@@ -28,6 +28,9 @@ | |||
#ifdef HAVE_PAM | |||
#include <rfb/UnixPasswordValidator.h> | |||
#endif | |||
#ifdef BUILD_WIN | |||
#include <rfb/WinPasswdValidator.h> | |||
#endif | |||
using namespace rfb; | |||
@@ -61,6 +64,8 @@ SSecurityPlain::SSecurityPlain() | |||
{ | |||
#ifdef HAVE_PAM | |||
valid = new UnixPasswordValidator(); | |||
#elif BUILD_WIN | |||
valid = new WinPasswdValidator(); | |||
#else | |||
valid = NULL; | |||
#endif |
@@ -0,0 +1,51 @@ | |||
/* Copyright (C) 2005-2006 Martin Koegler | |||
* Copyright (C) 2006 OCCAM Financial Technology | |||
* Copyright (C) 2010 TigerVNC Team | |||
* | |||
* 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 <rfb/WinPasswdValidator.h> | |||
#include <windows.h> | |||
#include <tchar.h> | |||
using namespace rfb; | |||
// This method will only work for Windows NT, 2000, and XP (and possibly Vista) | |||
bool WinPasswdValidator::validateInternal(rfb::SConnection* sc, | |||
const char* username, | |||
const char* password) | |||
{ | |||
TCHAR* user = (TCHAR*) strDup(username); | |||
TCHAR* pass = (TCHAR*) strDup(password); | |||
TCHAR* domain = (TCHAR*) strDup("."); | |||
HANDLE handle; | |||
BOOL ret = LogonUser(user, domain, pass, LOGON32_LOGON_NETWORK, | |||
LOGON32_PROVIDER_DEFAULT, &handle); | |||
delete [] user; | |||
delete [] pass; | |||
delete [] domain; | |||
if (ret != 0) { | |||
CloseHandle(handle); | |||
return true; | |||
} | |||
int err = GetLastError(); | |||
return false; | |||
} |
@@ -0,0 +1,37 @@ | |||
/* Copyright (C) 2005-2006 Martin Koegler | |||
* Copyright (C) 2006 OCCAM Financial Technology | |||
* Copyright (C) 2010 TigerVNC Team | |||
* | |||
* 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. | |||
*/ | |||
#ifndef __RFB_WINPASSWDVALIDATOR_H__ | |||
#define __RFB_WINPASSWDVALIDATOR_H__ | |||
#include <rfb/SSecurityPlain.h> | |||
namespace rfb | |||
{ | |||
class WinPasswdValidator : public PasswordValidator { | |||
public: | |||
WinPasswdValidator() {}; | |||
virtual ~WinPasswdValidator() {}; | |||
protected: | |||
bool validateInternal(SConnection *sc, const char* username, const char* password); | |||
}; | |||
} | |||
#endif /* WINPASSWDVALIDATOR_H */ |
@@ -43,6 +43,9 @@ mingw*) | |||
;; | |||
esac | |||
AM_CONDITIONAL([BUILD_WIN], [test "x$BUILD_WIN" = xyes]) | |||
if test "x$BUILD_WIN" = xyes; then | |||
AC_DEFINE([BUILD_WIN],1,[is it a windows build]) | |||
fi | |||
dnl FIXME: Check for MIT-SHM properly, add a corresponding --with option. | |||
if test "$USE_MITSHM" = yes; then |