Use CMake to detect availability of getlogin_r
This commit is contained in:
parent
f25fbaee9c
commit
b971c5c97f
@ -671,6 +671,10 @@ if(UNIX OR CYGWIN)
|
||||
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES m)
|
||||
set(X11_FEATURE_TYPE "RECOMMENDED")
|
||||
set(WAYLAND_FEATURE_TYPE "RECOMMENDED")
|
||||
|
||||
include(CheckFunctionExists)
|
||||
|
||||
check_function_exists(getlogin_r HAVE_GETLOGIN_R)
|
||||
else()
|
||||
set(X11_FEATURE_TYPE "DISABLED")
|
||||
set(WAYLAND_FEATURE_TYPE "DISABLED")
|
||||
|
@ -600,7 +600,7 @@ static BOOL isAutomountLocation(const char* path)
|
||||
uid_t uid = getuid();
|
||||
char uname[MAX_PATH] = { 0 };
|
||||
|
||||
#ifndef getlogin_r
|
||||
#ifndef HAVE_GETLOGIN_R
|
||||
strncpy(uname, getlogin(), sizeof(uname));
|
||||
#else
|
||||
if (getlogin_r(uname, sizeof(uname)) != 0)
|
||||
|
@ -1181,9 +1181,16 @@ static BOOL xf_pre_connect(freerdp* instance)
|
||||
|
||||
if (!settings->Username && !settings->CredentialsFromStdin && !settings->SmartcardLogon)
|
||||
{
|
||||
int rc;
|
||||
char login_name[MAX_PATH] = { 0 };
|
||||
|
||||
if (getlogin_r(login_name, sizeof(login_name)) == 0)
|
||||
#ifdef HAVE_GETLOGIN_R
|
||||
rc = getlogin_r(login_name, sizeof(login_name));
|
||||
#else
|
||||
strncpy(login_name, getlogin(), sizeof(login_name));
|
||||
rc = 0;
|
||||
#endif
|
||||
if (rc == 0)
|
||||
{
|
||||
settings->Username = _strdup(login_name);
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#cmakedefine HAVE_PTHREAD_MUTEX_TIMEDLOCK
|
||||
#cmakedefine HAVE_VALGRIND_MEMCHECK_H
|
||||
#cmakedefine HAVE_EXECINFO_H
|
||||
#cmakedefine HAVE_GETLOGIN_R
|
||||
|
||||
/* Features */
|
||||
#cmakedefine SWRESAMPLE_FOUND
|
||||
|
@ -206,7 +206,7 @@ BOOL GetUserNameExA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG
|
||||
switch (NameFormat)
|
||||
{
|
||||
case NameSamCompatible:
|
||||
#ifndef getlogin_r
|
||||
#ifndef HAVE_GETLOGIN_R
|
||||
strncpy(login, getlogin(), sizeof(login));
|
||||
#else
|
||||
if (getlogin_r(login, sizeof(login)) != 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user