rpcrt4: Implement RpcBindingInqAuthClient{, Ex}.
This commit is contained in:
parent
bdfaa8463b
commit
59e3d9b5c7
|
@ -1492,6 +1492,90 @@ RpcBindingInqAuthInfoW( RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, U
|
|||
return RPC_S_INVALID_BINDING;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* RpcBindingInqAuthClientA (RPCRT4.@)
|
||||
*/
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientA( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc )
|
||||
{
|
||||
return RpcBindingInqAuthClientExA(ClientBinding, Privs, ServerPrincName, AuthnLevel,
|
||||
AuthnSvc, AuthzSvc, 0);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* RpcBindingInqAuthClientW (RPCRT4.@)
|
||||
*/
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientW( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc )
|
||||
{
|
||||
return RpcBindingInqAuthClientExW(ClientBinding, Privs, ServerPrincName, AuthnLevel,
|
||||
AuthnSvc, AuthzSvc, 0);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* RpcBindingInqAuthClientExA (RPCRT4.@)
|
||||
*/
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientExA( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc, ULONG Flags )
|
||||
{
|
||||
RPC_STATUS status;
|
||||
RPC_WSTR principal;
|
||||
|
||||
TRACE("%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
|
||||
AuthnSvc, AuthzSvc, Flags);
|
||||
|
||||
status = RpcBindingInqAuthClientExW(ClientBinding, Privs, ServerPrincName ? &principal : NULL,
|
||||
AuthnLevel, AuthnSvc, AuthzSvc, Flags);
|
||||
if (status == RPC_S_OK && ServerPrincName)
|
||||
{
|
||||
*ServerPrincName = (RPC_CSTR)RPCRT4_strdupWtoA(principal);
|
||||
RpcStringFreeW(&principal);
|
||||
if (!*ServerPrincName) return ERROR_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* RpcBindingInqAuthClientExW (RPCRT4.@)
|
||||
*/
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientExW( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc, ULONG Flags )
|
||||
{
|
||||
RpcBinding *bind = ClientBinding;
|
||||
|
||||
TRACE("%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
|
||||
AuthnSvc, AuthzSvc, Flags);
|
||||
|
||||
if (!bind->AuthInfo) return RPC_S_BINDING_HAS_NO_AUTH;
|
||||
|
||||
if (Privs) *Privs = (RPC_AUTHZ_HANDLE)bind->AuthInfo->identity;
|
||||
if (ServerPrincName)
|
||||
{
|
||||
*ServerPrincName = RPCRT4_strdupW(bind->AuthInfo->server_principal_name);
|
||||
if (!*ServerPrincName) return ERROR_OUTOFMEMORY;
|
||||
}
|
||||
if (AuthnLevel) *AuthnLevel = bind->AuthInfo->AuthnLevel;
|
||||
if (AuthnSvc) *AuthnSvc = bind->AuthInfo->AuthnSvc;
|
||||
if (AuthzSvc)
|
||||
{
|
||||
FIXME("authorization service not implemented\n");
|
||||
*AuthzSvc = RPC_C_AUTHZ_NONE;
|
||||
}
|
||||
if (Flags)
|
||||
FIXME("flags 0x%x not implemented\n", Flags);
|
||||
|
||||
return RPC_S_OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* RpcBindingSetAuthInfoExA (RPCRT4.@)
|
||||
*/
|
||||
|
|
|
@ -341,10 +341,10 @@
|
|||
@ stdcall RpcBindingFree(ptr)
|
||||
@ stdcall RpcBindingFromStringBindingA(str ptr)
|
||||
@ stdcall RpcBindingFromStringBindingW(wstr ptr)
|
||||
@ stub RpcBindingInqAuthClientA
|
||||
@ stub RpcBindingInqAuthClientExA
|
||||
@ stub RpcBindingInqAuthClientExW
|
||||
@ stub RpcBindingInqAuthClientW
|
||||
@ stdcall RpcBindingInqAuthClientA(ptr ptr ptr ptr ptr ptr)
|
||||
@ stdcall RpcBindingInqAuthClientExA(ptr ptr ptr ptr ptr ptr long)
|
||||
@ stdcall RpcBindingInqAuthClientExW(ptr ptr ptr ptr ptr ptr long)
|
||||
@ stdcall RpcBindingInqAuthClientW(ptr ptr ptr ptr ptr ptr)
|
||||
@ stdcall RpcBindingInqAuthInfoA(ptr ptr ptr ptr ptr ptr)
|
||||
@ stdcall RpcBindingInqAuthInfoExA(ptr ptr ptr ptr ptr ptr long ptr)
|
||||
@ stdcall RpcBindingInqAuthInfoExW(ptr ptr ptr ptr ptr ptr long ptr)
|
||||
|
|
|
@ -509,6 +509,28 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||
ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc );
|
||||
#define RpcBindingInqAuthInfo WINELIB_NAME_AW(RpcBindingInqAuthInfo)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientA( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientW( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc );
|
||||
#define RpcBindingInqAuthClient WINELIB_NAME_AW(RpcBindingInqAuthClient)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientExA( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc, ULONG Flags );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingInqAuthClientExW( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
|
||||
RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
|
||||
ULONG *AuthzSvc, ULONG Flags );
|
||||
#define RpcBindingInqAuthClientEx WINELIB_NAME_AW(RpcBindingInqAuthClientEx)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThread(void*);
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThreadEx(void*,LONG);
|
||||
|
||||
|
|
Loading…
Reference in New Issue