rpcrt4/tests: Don't load GetUserNameEx dynamically.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2016-08-29 17:30:10 +02:00 committed by Alexandre Julliard
parent d3cb5c24a5
commit ffe01b33f1
3 changed files with 11 additions and 31 deletions

View File

@ -1,5 +1,5 @@
TESTDLL = rpcrt4.dll TESTDLL = rpcrt4.dll
IMPORTS = ole32 rpcrt4 advapi32 IMPORTS = ole32 rpcrt4 secur32 advapi32
EXTRAIDLFLAGS = --prefix-server=s_ EXTRAIDLFLAGS = --prefix-server=s_
C_SRCS = \ C_SRCS = \

View File

@ -862,19 +862,12 @@ static void test_RpcServerInqDefaultPrincName(void)
{ {
RPC_STATUS ret; RPC_STATUS ret;
RPC_CSTR principal, saved_principal; RPC_CSTR principal, saved_principal;
BOOLEAN (WINAPI *pGetUserNameExA)(EXTENDED_NAME_FORMAT,LPSTR,PULONG);
char *username; char *username;
ULONG len = 0; ULONG len = 0;
pGetUserNameExA = (void *)GetProcAddress( LoadLibraryA("secur32.dll"), "GetUserNameExA" ); GetUserNameExA( NameSamCompatible, NULL, &len );
if (!pGetUserNameExA)
{
win_skip( "GetUserNameExA not exported\n" );
return;
}
pGetUserNameExA( NameSamCompatible, NULL, &len );
username = HeapAlloc( GetProcessHeap(), 0, len ); username = HeapAlloc( GetProcessHeap(), 0, len );
pGetUserNameExA( NameSamCompatible, username, &len ); GetUserNameExA( NameSamCompatible, username, &len );
ret = RpcServerInqDefaultPrincNameA( 0, NULL ); ret = RpcServerInqDefaultPrincNameA( 0, NULL );
ok( ret == RPC_S_UNKNOWN_AUTHN_SERVICE, "got %u\n", ret ); ok( ret == RPC_S_UNKNOWN_AUTHN_SERVICE, "got %u\n", ret );

View File

@ -44,7 +44,6 @@ static void (WINAPI *pNDRSContextMarshall2)(RPC_BINDING_HANDLE, NDR_SCONTEXT, vo
static NDR_SCONTEXT (WINAPI *pNDRSContextUnmarshall2)(RPC_BINDING_HANDLE, void*, ULONG, void*, ULONG); static NDR_SCONTEXT (WINAPI *pNDRSContextUnmarshall2)(RPC_BINDING_HANDLE, void*, ULONG, void*, ULONG);
static RPC_STATUS (WINAPI *pRpcServerRegisterIfEx)(RPC_IF_HANDLE,UUID*, RPC_MGR_EPV*, unsigned int, static RPC_STATUS (WINAPI *pRpcServerRegisterIfEx)(RPC_IF_HANDLE,UUID*, RPC_MGR_EPV*, unsigned int,
unsigned int,RPC_IF_CALLBACK_FN*); unsigned int,RPC_IF_CALLBACK_FN*);
static BOOLEAN (WINAPI *pGetUserNameExA)(EXTENDED_NAME_FORMAT, LPSTR, PULONG);
static RPC_STATUS (WINAPI *pRpcBindingSetAuthInfoExA)(RPC_BINDING_HANDLE, RPC_CSTR, ULONG, ULONG, static RPC_STATUS (WINAPI *pRpcBindingSetAuthInfoExA)(RPC_BINDING_HANDLE, RPC_CSTR, ULONG, ULONG,
RPC_AUTH_IDENTITY_HANDLE, ULONG, RPC_SECURITY_QOS *); RPC_AUTH_IDENTITY_HANDLE, ULONG, RPC_SECURITY_QOS *);
static RPC_STATUS (WINAPI *pRpcServerRegisterAuthInfoA)(RPC_CSTR, ULONG, RPC_AUTH_KEY_RETRIEVAL_FN, LPVOID); static RPC_STATUS (WINAPI *pRpcServerRegisterAuthInfoA)(RPC_CSTR, ULONG, RPC_AUTH_KEY_RETRIEVAL_FN, LPVOID);
@ -60,14 +59,12 @@ static const WCHAR worldW[] = { 'W','o','r','l','d','!',0 };
static void InitFunctionPointers(void) static void InitFunctionPointers(void)
{ {
HMODULE hrpcrt4 = GetModuleHandleA("rpcrt4.dll"); HMODULE hrpcrt4 = GetModuleHandleA("rpcrt4.dll");
HMODULE hsecur32 = LoadLibraryA("secur32.dll");
pNDRSContextMarshall2 = (void *)GetProcAddress(hrpcrt4, "NDRSContextMarshall2"); pNDRSContextMarshall2 = (void *)GetProcAddress(hrpcrt4, "NDRSContextMarshall2");
pNDRSContextUnmarshall2 = (void *)GetProcAddress(hrpcrt4, "NDRSContextUnmarshall2"); pNDRSContextUnmarshall2 = (void *)GetProcAddress(hrpcrt4, "NDRSContextUnmarshall2");
pRpcServerRegisterIfEx = (void *)GetProcAddress(hrpcrt4, "RpcServerRegisterIfEx"); pRpcServerRegisterIfEx = (void *)GetProcAddress(hrpcrt4, "RpcServerRegisterIfEx");
pRpcBindingSetAuthInfoExA = (void *)GetProcAddress(hrpcrt4, "RpcBindingSetAuthInfoExA"); pRpcBindingSetAuthInfoExA = (void *)GetProcAddress(hrpcrt4, "RpcBindingSetAuthInfoExA");
pRpcServerRegisterAuthInfoA = (void *)GetProcAddress(hrpcrt4, "RpcServerRegisterAuthInfoA"); pRpcServerRegisterAuthInfoA = (void *)GetProcAddress(hrpcrt4, "RpcServerRegisterAuthInfoA");
pGetUserNameExA = (void *)GetProcAddress(hsecur32, "GetUserNameExA");
if (!pNDRSContextMarshall2) old_windows_version = TRUE; if (!pNDRSContextMarshall2) old_windows_version = TRUE;
} }
@ -1500,7 +1497,7 @@ void __cdecl s_authinfo_test(unsigned int protseq, int secure)
todo_wine todo_wine
ok(principal != NULL, "NULL principal\n"); ok(principal != NULL, "NULL principal\n");
} }
if (protseq == RPC_PROTSEQ_LRPC && principal && pGetUserNameExA) if (protseq == RPC_PROTSEQ_LRPC && principal)
{ {
int len; int len;
char *spn; char *spn;
@ -1548,9 +1545,6 @@ set_auth_info(RPC_BINDING_HANDLE handle)
RPC_STATUS status; RPC_STATUS status;
RPC_SECURITY_QOS qos; RPC_SECURITY_QOS qos;
if (!pGetUserNameExA)
return;
qos.Version = 1; qos.Version = 1;
qos.Capabilities = RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH; qos.Capabilities = RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH;
qos.IdentityTracking = RPC_C_QOS_IDENTITY_STATIC; qos.IdentityTracking = RPC_C_QOS_IDENTITY_STATIC;
@ -1709,12 +1703,10 @@ server(void)
if (ncalrpc_status == RPC_S_OK) if (ncalrpc_status == RPC_S_OK)
{ {
run_client("ncalrpc_basic"); run_client("ncalrpc_basic");
if (pGetUserNameExA)
{
/* we don't need to register RPC_C_AUTHN_WINNT for ncalrpc */ /* we don't need to register RPC_C_AUTHN_WINNT for ncalrpc */
run_client("ncalrpc_secure"); run_client("ncalrpc_secure");
} }
}
else else
skip("lrpc tests skipped due to earlier failure\n"); skip("lrpc tests skipped due to earlier failure\n");
@ -1742,20 +1734,15 @@ server(void)
START_TEST(server) START_TEST(server)
{ {
ULONG size = 0;
int argc; int argc;
char **argv; char **argv;
InitFunctionPointers(); InitFunctionPointers();
if (pGetUserNameExA) ok(!GetUserNameExA(NameSamCompatible, NULL, &size), "GetUserNameExA\n");
{
ULONG size = 0;
ok(!pGetUserNameExA(NameSamCompatible, NULL, &size), "GetUserNameExA\n");
domain_and_user = HeapAlloc(GetProcessHeap(), 0, size); domain_and_user = HeapAlloc(GetProcessHeap(), 0, size);
ok(pGetUserNameExA(NameSamCompatible, domain_and_user, &size), "GetUserNameExA\n"); ok(GetUserNameExA(NameSamCompatible, domain_and_user, &size), "GetUserNameExA\n");
}
else
win_skip("GetUserNameExA is needed for some authentication tests\n");
argc = winetest_get_mainargs(&argv); argc = winetest_get_mainargs(&argv);
progname = argv[0]; progname = argv[0];