Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
034e4df6
Commit
034e4df6
authored
Oct 18, 2002
by
Greg Turner
Committed by
Alexandre Julliard
Oct 18, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- (try to) implement RpcMgmtWaitServerListen
- remove duplicate RpcServerListen declaration in rpcdce.h - some TRACEs
parent
15b9ed9f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
63 additions
and
7 deletions
+63
-7
ndr_stubless.c
dlls/rpcrt4/ndr_stubless.c
+15
-1
rpc_binding.c
dlls/rpcrt4/rpc_binding.c
+23
-0
rpc_server.c
dlls/rpcrt4/rpc_server.c
+21
-2
rpcrt4.spec
dlls/rpcrt4/rpcrt4.spec
+1
-1
rpcdce.h
include/rpcdce.h
+3
-3
No files found.
dlls/rpcrt4/ndr_stubless.c
View file @
034e4df6
...
...
@@ -41,7 +41,21 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole);
LONG_PTR
/* CLIENT_CALL_RETURN */
RPCRT4_NdrClientCall2
(
PMIDL_STUB_DESC
pStubDesc
,
PFORMAT_STRING
pFormat
,
va_list
args
)
{
FIXME
(
"(%p,%p,...)
\n
"
,
pStubDesc
,
pFormat
);
RPC_CLIENT_INTERFACE
*
rpc_cli_if
=
(
RPC_CLIENT_INTERFACE
*
)(
pStubDesc
->
RpcInterfaceInformation
);
FIXME
(
"(pStubDec == ^%p,pFormat =
\"
%s
\"
,...): stub
\n
"
,
pStubDesc
,
pFormat
);
TRACE
(
"rpc_cli_if == ^%p
\n
"
,
rpc_cli_if
);
if
(
rpc_cli_if
)
/* for objects this is NULL */
TRACE
(
"rpc_cli_if: Length == %d; InterfaceID == <%s,<%d.%d>>; TransferSyntax == <%s,<%d.%d>>; DispatchTable == ^%p; RpcProtseqEndpointCount == %d; RpcProtseqEndpoint == ^%p; Flags == %d
\n
"
,
rpc_cli_if
->
Length
,
debugstr_guid
(
&
rpc_cli_if
->
InterfaceId
.
SyntaxGUID
),
rpc_cli_if
->
InterfaceId
.
SyntaxVersion
.
MajorVersion
,
rpc_cli_if
->
InterfaceId
.
SyntaxVersion
.
MinorVersion
,
debugstr_guid
(
&
rpc_cli_if
->
TransferSyntax
.
SyntaxGUID
),
rpc_cli_if
->
TransferSyntax
.
SyntaxVersion
.
MajorVersion
,
rpc_cli_if
->
TransferSyntax
.
SyntaxVersion
.
MinorVersion
,
rpc_cli_if
->
DispatchTable
,
rpc_cli_if
->
RpcProtseqEndpointCount
,
rpc_cli_if
->
RpcProtseqEndpoint
,
rpc_cli_if
->
Flags
);
return
0
;
}
...
...
dlls/rpcrt4/rpc_binding.c
View file @
034e4df6
...
...
@@ -110,6 +110,12 @@ RPC_STATUS RPCRT4_CreateBindingA(RpcBinding** Binding, BOOL server, LPSTR Protse
RPC_STATUS
RPCRT4_CreateBindingW
(
RpcBinding
**
Binding
,
BOOL
server
,
LPWSTR
Protseq
)
{
RpcBinding
*
NewBinding
;
if
(
Binding
)
TRACE
(
" (*Binding == ^%p, server == %s, Protseq ==
\"
%s
\"
)
\n
"
,
*
Binding
,
server
?
"Yes"
:
"No"
,
debugstr_w
(
Protseq
));
else
{
ERR
(
"!RpcBinding?
\n
"
);
*
((
char
*
)
0
)
=
0
;
/* we will crash below anyhow... */
}
NewBinding
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
RpcBinding
));
NewBinding
->
refs
=
1
;
...
...
@@ -124,6 +130,9 @@ RPC_STATUS RPCRT4_CreateBindingW(RpcBinding** Binding, BOOL server, LPWSTR Prots
RPC_STATUS
RPCRT4_CompleteBindingA
(
RpcBinding
*
Binding
,
LPSTR
NetworkAddr
,
LPSTR
Endpoint
,
LPSTR
NetworkOptions
)
{
TRACE
(
" (RpcBinding == ^%p, NetworkAddr ==
\"
%s
\"
, EndPoint ==
\"
%s
\"
, NetworkOptions ==
\"
%s
\"
)
\n
"
,
Binding
,
NetworkAddr
,
Endpoint
,
NetworkOptions
);
RPCRT4_strfree
(
Binding
->
NetworkAddr
);
Binding
->
NetworkAddr
=
RPCRT4_strdupA
(
NetworkAddr
);
RPCRT4_strfree
(
Binding
->
Endpoint
);
...
...
@@ -134,6 +143,10 @@ RPC_STATUS RPCRT4_CompleteBindingA(RpcBinding* Binding, LPSTR NetworkAddr, LPST
RPC_STATUS
RPCRT4_CompleteBindingW
(
RpcBinding
*
Binding
,
LPWSTR
NetworkAddr
,
LPWSTR
Endpoint
,
LPWSTR
NetworkOptions
)
{
TRACE
(
" (RpcBinding == ^%p, NetworkAddr ==
\"
%s
\"
, EndPoint ==
\"
%s
\"
, NetworkOptions ==
\"
%s
\"
)
\n
"
,
Binding
,
debugstr_w
(
NetworkAddr
),
debugstr_w
(
Endpoint
),
debugstr_w
(
NetworkOptions
));
RPCRT4_strfree
(
Binding
->
NetworkAddr
);
Binding
->
NetworkAddr
=
RPCRT4_strdupWtoA
(
NetworkAddr
);
RPCRT4_strfree
(
Binding
->
Endpoint
);
...
...
@@ -152,6 +165,7 @@ RPC_STATUS RPCRT4_ResolveBinding(RpcBinding* Binding, LPSTR Endpoint)
RPC_STATUS
RPCRT4_SetBindingObject
(
RpcBinding
*
Binding
,
UUID
*
ObjectUuid
)
{
TRACE
(
" (*RpcBinding == ^%p, UUID == %s)
\n
"
,
Binding
,
debugstr_guid
(
ObjectUuid
));
if
(
ObjectUuid
)
memcpy
(
&
Binding
->
ObjectUuid
,
ObjectUuid
,
sizeof
(
UUID
));
else
UuidCreateNil
(
&
Binding
->
ObjectUuid
);
return
RPC_S_OK
;
...
...
@@ -160,6 +174,13 @@ RPC_STATUS RPCRT4_SetBindingObject(RpcBinding* Binding, UUID* ObjectUuid)
RPC_STATUS
RPCRT4_SpawnBinding
(
RpcBinding
**
Binding
,
RpcBinding
*
OldBinding
)
{
RpcBinding
*
NewBinding
;
if
(
Binding
)
TRACE
(
" (*RpcBinding == ^%p, OldBinding == ^%p)
\n
"
,
*
Binding
,
OldBinding
);
else
{
ERR
(
"!RpcBinding?"
);
/* we will crash below anyhow... */
*
((
char
*
)
0
)
=
0
;
}
NewBinding
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
RpcBinding
));
NewBinding
->
refs
=
1
;
...
...
@@ -202,6 +223,7 @@ RPC_STATUS RPCRT4_DestroyBinding(RpcBinding* Binding)
RPC_STATUS
RPCRT4_OpenBinding
(
RpcBinding
*
Binding
)
{
TRACE
(
" (Binding == ^%p)
\n
"
,
Binding
);
if
(
!
Binding
->
conn
)
{
if
(
Binding
->
server
)
{
/* server */
/* protseq=ncalrpc: supposed to use NT LPC ports,
...
...
@@ -327,6 +349,7 @@ RPC_STATUS RPCRT4_OpenBinding(RpcBinding* Binding)
RPC_STATUS
RPCRT4_CloseBinding
(
RpcBinding
*
Binding
)
{
TRACE
(
" (Binding == ^%p)
\n
"
,
Binding
);
if
(
Binding
->
conn
)
{
CancelIo
(
Binding
->
conn
);
CloseHandle
(
Binding
->
conn
);
...
...
dlls/rpcrt4/rpc_server.c
View file @
034e4df6
...
...
@@ -272,6 +272,7 @@ static DWORD CALLBACK RPCRT4_server_thread(LPVOID the_arg)
static
void
RPCRT4_start_listen
(
void
)
{
TRACE
(
"
\n
"
);
if
(
!
InterlockedIncrement
(
&
listen_count
))
{
mgr_event
=
CreateEventA
(
NULL
,
FALSE
,
FALSE
,
NULL
);
server_thread
=
CreateThread
(
NULL
,
0
,
RPCRT4_server_thread
,
NULL
,
0
,
NULL
);
...
...
@@ -315,6 +316,11 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
RpcServerProtseq
*
ps
;
RpcBinding
*
bind
;
if
(
BindingVector
)
TRACE
(
"(*BindingVector == ^%p)
\n
"
,
*
BindingVector
);
else
ERR
(
"(BindingVector == ^null!!?)
\n
"
);
EnterCriticalSection
(
&
server_cs
);
/* count bindings */
count
=
0
;
...
...
@@ -544,8 +550,21 @@ RPC_STATUS WINAPI RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT
if
(
DontWait
)
return
RPC_S_OK
;
/* RpcMgmtWaitServerListen(); */
FIXME
(
"can't wait yet
\n
"
);
return
RpcMgmtWaitServerListen
();
}
/***********************************************************************
* RpcMgmtServerWaitListen (RPCRT4.@)
*/
RPC_STATUS
WINAPI
RpcMgmtWaitServerListen
(
void
)
{
TRACE
(
"
\n
"
);
RPCRT4_start_listen
();
while
(
listen_count
>
-
1
)
{
WaitForSingleObject
(
mgr_event
,
1000
);
}
return
RPC_S_OK
;
}
...
...
dlls/rpcrt4/rpcrt4.spec
View file @
034e4df6
...
...
@@ -89,7 +89,7 @@ init RPCRT4_LibMain
@ stub RpcMgmtSetServerStackSize
@ stub RpcMgmtStatsVectorFree
@ stub RpcMgmtStopServerListening
@ st
ub
RpcMgmtWaitServerListen
@ st
dcall RpcMgmtWaitServerListen()
RpcMgmtWaitServerListen
@ stub RpcNetworkInqProtseqsA
@ stub RpcNetworkInqProtseqsW
@ stub RpcNetworkIsProtseqValidA
...
...
include/rpcdce.h
View file @
034e4df6
...
...
@@ -170,6 +170,9 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerListen
(
UINT
MinimumCallThreads
,
UINT
MaxCalls
,
UINT
DontWait
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcMgmtWaitServerListen
(
void
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerRegisterIf
(
RPC_IF_HANDLE
IfSpec
,
UUID
*
MgrTypeUuid
,
RPC_MGR_EPV
*
MgrEpv
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
...
...
@@ -203,9 +206,6 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerListen
(
UINT
MinimumCallThreads
,
UINT
MaxCalls
,
UINT
DontWait
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcStringBindingComposeA
(
LPSTR
ObjUuid
,
LPSTR
Protseq
,
LPSTR
NetworkAddr
,
LPSTR
Endpoint
,
LPSTR
Options
,
LPSTR
*
StringBinding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment