diff options
author | Pierre Ossman <ossman@cendio.se> | 2018-07-11 15:49:46 +0200 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2020-03-12 12:03:32 +0100 |
commit | d80817f101d1b3f1a9b1c5ec268f28fffa2d75f9 (patch) | |
tree | bc08908a2151ba0c2c552410944ee101e563dc31 | |
parent | a92aec4fbb287c2ebb79f3d3406668086057ce20 (diff) | |
download | tigervnc-d80817f101d1b3f1a9b1c5ec268f28fffa2d75f9.tar.gz tigervnc-d80817f101d1b3f1a9b1c5ec268f28fffa2d75f9.zip |
Make PAM mandatory
It is present on all UNIX systems anyway, so let's simplify things.
We will need it for more proper session startup anyway.
-rw-r--r-- | BUILDING.txt | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | common/rfb/CMakeLists.txt | 2 | ||||
-rw-r--r-- | common/rfb/SSecurityPlain.cxx | 10 | ||||
-rw-r--r-- | common/rfb/UnixPasswordValidator.cxx | 6 | ||||
-rw-r--r-- | common/rfb/pam.c | 4 | ||||
-rw-r--r-- | common/rfb/pam.h | 8 | ||||
-rw-r--r-- | config.h.in | 1 |
8 files changed, 9 insertions, 29 deletions
diff --git a/BUILDING.txt b/BUILDING.txt index 72aea765..4f315072 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -32,6 +32,7 @@ Build Requirements (Unix) -- Non-Mac platforms: * X11 development kit + * PAM -- If building Xvnc/libvnc.so: * Xorg server source code, 1.7 or never diff --git a/CMakeLists.txt b/CMakeLists.txt index f6742e7b..5776a9fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -263,8 +263,7 @@ if(ENABLE_GNUTLS) endif() # Check for PAM library -option(ENABLE_PAM "Enable PAM authentication support" ON) -if(ENABLE_PAM) +if(UNIX AND NOT APPLE) check_include_files(security/pam_appl.h HAVE_PAM_H) set(CMAKE_REQUIRED_LIBRARIES -lpam) check_function_exists(pam_start HAVE_PAM_START) @@ -272,10 +271,9 @@ if(ENABLE_PAM) if(HAVE_PAM_H AND HAVE_PAM_START) set(PAM_LIBS pam) else() - set(ENABLE_PAM 0) + message(FATAL_ERROR "Could not find PAM development files") endif() endif() -set(HAVE_PAM ${ENABLE_PAM}) # Generate config.h and make sure the source finds it configure_file(config.h.in config.h) diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt index 8e532a28..689cdccd 100644 --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt @@ -75,7 +75,7 @@ endif(WIN32) set(RFB_LIBRARIES ${JPEG_LIBRARIES} os rdr Xregion) -if(HAVE_PAM) +if(UNIX AND NOT APPLE) set(RFB_SOURCES ${RFB_SOURCES} UnixPasswordValidator.cxx UnixPasswordValidator.h pam.c pam.h) set(RFB_LIBRARIES ${RFB_LIBRARIES} ${PAM_LIBS}) diff --git a/common/rfb/SSecurityPlain.cxx b/common/rfb/SSecurityPlain.cxx index 6f72432a..f577c0d6 100644 --- a/common/rfb/SSecurityPlain.cxx +++ b/common/rfb/SSecurityPlain.cxx @@ -25,10 +25,10 @@ #include <rfb/SConnection.h> #include <rfb/Exception.h> #include <rdr/InStream.h> -#ifdef HAVE_PAM +#if !defined(WIN32) && !defined(__APPLE__) #include <rfb/UnixPasswordValidator.h> #endif -#ifdef BUILD_WIN +#ifdef WIN32 #include <rfb/WinPasswdValidator.h> #endif @@ -62,10 +62,10 @@ bool PasswordValidator::validUser(const char* username) SSecurityPlain::SSecurityPlain(SConnection* sc) : SSecurity(sc) { -#ifdef HAVE_PAM - valid = new UnixPasswordValidator(); -#elif BUILD_WIN +#ifdef WIN32 valid = new WinPasswdValidator(); +#elif !defined(__APPLE__) + valid = new UnixPasswordValidator(); #else valid = NULL; #endif diff --git a/common/rfb/UnixPasswordValidator.cxx b/common/rfb/UnixPasswordValidator.cxx index d0960794..ee7bc0da 100644 --- a/common/rfb/UnixPasswordValidator.cxx +++ b/common/rfb/UnixPasswordValidator.cxx @@ -25,9 +25,7 @@ #include <rfb/Configuration.h> #include <rfb/Exception.h> #include <rfb/UnixPasswordValidator.h> -#ifdef HAVE_PAM #include <rfb/pam.h> -#endif using namespace rfb; @@ -43,10 +41,6 @@ bool UnixPasswordValidator::validateInternal(SConnection * sc, const char *username, const char *password) { -#ifdef HAVE_PAM CharArray service(strDup(pamService.getData())); return do_pam_auth(service.buf, username, password); -#else - throw AuthFailureException("PAM not supported"); -#endif } diff --git a/common/rfb/pam.c b/common/rfb/pam.c index cb067fda..f9e5ce74 100644 --- a/common/rfb/pam.c +++ b/common/rfb/pam.c @@ -22,10 +22,6 @@ #include <config.h> #endif -#ifndef HAVE_PAM -#error "This source should not be compiled when PAM is unsupported" -#endif - #include <stdlib.h> #include <string.h> #include <security/pam_appl.h> diff --git a/common/rfb/pam.h b/common/rfb/pam.h index 2688f21c..d378d19c 100644 --- a/common/rfb/pam.h +++ b/common/rfb/pam.h @@ -21,14 +21,6 @@ #ifndef __RFB_PAM_H__ #define __RFB_PAM_H__ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#ifndef HAVE_PAM -#error "This header should not be included when PAM is unsupported" -#endif - #ifdef __cplusplus extern "C" { #endif diff --git a/config.h.in b/config.h.in index 2d6db9c6..b6a9fdff 100644 --- a/config.h.in +++ b/config.h.in @@ -4,7 +4,6 @@ #cmakedefine HAVE_ACTIVE_DESKTOP_H #cmakedefine HAVE_ACTIVE_DESKTOP_L #cmakedefine ENABLE_NLS 1 -#cmakedefine HAVE_PAM #cmakedefine DATA_DIR "@DATA_DIR@" #cmakedefine LOCALE_DIR "@LOCALE_DIR@" |