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
9ea03d70
Commit
9ea03d70
authored
Oct 16, 2006
by
Robert Shearman
Committed by
Alexandre Julliard
Oct 16, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rpcrt4: Convert the protseq list into a standard Wine list.
parent
1ceeb058
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
21 deletions
+15
-21
rpc_server.c
dlls/rpcrt4/rpc_server.c
+13
-20
rpc_server.h
dlls/rpcrt4/rpc_server.h
+2
-1
No files found.
dlls/rpcrt4/rpc_server.c
View file @
9ea03d70
...
@@ -66,7 +66,8 @@ typedef struct _RpcObjTypeMap
...
@@ -66,7 +66,8 @@ typedef struct _RpcObjTypeMap
static
RpcObjTypeMap
*
RpcObjTypeMaps
;
static
RpcObjTypeMap
*
RpcObjTypeMaps
;
static
RpcServerProtseq
*
protseqs
;
/* list of type RpcServerProtseq */
static
struct
list
protseqs
=
LIST_INIT
(
protseqs
);
static
RpcServerInterface
*
ifs
;
static
RpcServerInterface
*
ifs
;
static
CRITICAL_SECTION
server_cs
;
static
CRITICAL_SECTION
server_cs
;
...
@@ -599,16 +600,15 @@ static RPC_STATUS RPCRT4_start_listen(BOOL auto_listen)
...
@@ -599,16 +600,15 @@ static RPC_STATUS RPCRT4_start_listen(BOOL auto_listen)
if
(
std_listen
)
if
(
std_listen
)
{
{
cps
=
protseqs
;
LIST_FOR_EACH_ENTRY
(
cps
,
&
protseqs
,
RpcServerProtseq
,
entry
)
while
(
cps
&&
status
==
RPC_S_OK
)
{
{
status
=
RPCRT4_start_listen_protseq
(
cps
,
TRUE
);
status
=
RPCRT4_start_listen_protseq
(
cps
,
TRUE
);
if
(
status
!=
RPC_S_OK
)
break
;
/* make sure server is actually listening on the interface before
/* make sure server is actually listening on the interface before
* returning */
* returning */
if
(
status
==
RPC_S_OK
)
RPCRT4_sync_with_server_thread
(
cps
);
RPCRT4_sync_with_server_thread
(
cps
);
cps
=
cps
->
Next
;
}
}
}
}
...
@@ -626,11 +626,9 @@ static void RPCRT4_stop_listen(BOOL auto_listen)
...
@@ -626,11 +626,9 @@ static void RPCRT4_stop_listen(BOOL auto_listen)
std_listen
=
FALSE
;
std_listen
=
FALSE
;
LeaveCriticalSection
(
&
listen_cs
);
LeaveCriticalSection
(
&
listen_cs
);
cps
=
protseqs
;
LIST_FOR_EACH_ENTRY
(
cps
,
&
protseqs
,
RpcServerProtseq
,
entry
)
while
(
cps
)
{
RPCRT4_sync_with_server_thread
(
cps
);
RPCRT4_sync_with_server_thread
(
cps
);
cps
=
cps
->
Next
;
}
return
;
return
;
}
}
assert
(
listen_count
>=
0
);
assert
(
listen_count
>=
0
);
...
@@ -648,8 +646,7 @@ static RPC_STATUS RPCRT4_use_protseq(RpcServerProtseq* ps)
...
@@ -648,8 +646,7 @@ static RPC_STATUS RPCRT4_use_protseq(RpcServerProtseq* ps)
return
status
;
return
status
;
EnterCriticalSection
(
&
server_cs
);
EnterCriticalSection
(
&
server_cs
);
ps
->
Next
=
protseqs
;
list_add_head
(
&
protseqs
,
&
ps
->
entry
);
protseqs
=
ps
;
LeaveCriticalSection
(
&
server_cs
);
LeaveCriticalSection
(
&
server_cs
);
if
(
std_listen
)
if
(
std_listen
)
...
@@ -680,14 +677,12 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
...
@@ -680,14 +677,12 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
EnterCriticalSection
(
&
server_cs
);
EnterCriticalSection
(
&
server_cs
);
/* count connections */
/* count connections */
count
=
0
;
count
=
0
;
ps
=
protseqs
;
LIST_FOR_EACH_ENTRY
(
ps
,
&
protseqs
,
RpcServerProtseq
,
entry
)
{
while
(
ps
)
{
conn
=
ps
->
conn
;
conn
=
ps
->
conn
;
while
(
conn
)
{
while
(
conn
)
{
count
++
;
count
++
;
conn
=
conn
->
Next
;
conn
=
conn
->
Next
;
}
}
ps
=
ps
->
Next
;
}
}
if
(
count
)
{
if
(
count
)
{
/* export bindings */
/* export bindings */
...
@@ -696,8 +691,7 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
...
@@ -696,8 +691,7 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
sizeof
(
RPC_BINDING_HANDLE
)
*
(
count
-
1
));
sizeof
(
RPC_BINDING_HANDLE
)
*
(
count
-
1
));
(
*
BindingVector
)
->
Count
=
count
;
(
*
BindingVector
)
->
Count
=
count
;
count
=
0
;
count
=
0
;
ps
=
protseqs
;
LIST_FOR_EACH_ENTRY
(
ps
,
&
protseqs
,
RpcServerProtseq
,
entry
)
{
while
(
ps
)
{
conn
=
ps
->
conn
;
conn
=
ps
->
conn
;
while
(
conn
)
{
while
(
conn
)
{
RPCRT4_MakeBinding
((
RpcBinding
**
)
&
(
*
BindingVector
)
->
BindingH
[
count
],
RPCRT4_MakeBinding
((
RpcBinding
**
)
&
(
*
BindingVector
)
->
BindingH
[
count
],
...
@@ -705,7 +699,6 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
...
@@ -705,7 +699,6 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
count
++
;
count
++
;
conn
=
conn
->
Next
;
conn
=
conn
->
Next
;
}
}
ps
=
ps
->
Next
;
}
}
status
=
RPC_S_OK
;
status
=
RPC_S_OK
;
}
else
{
}
else
{
...
@@ -1022,7 +1015,7 @@ RPC_STATUS WINAPI RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT
...
@@ -1022,7 +1015,7 @@ RPC_STATUS WINAPI RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT
TRACE
(
"(%u,%u,%u)
\n
"
,
MinimumCallThreads
,
MaxCalls
,
DontWait
);
TRACE
(
"(%u,%u,%u)
\n
"
,
MinimumCallThreads
,
MaxCalls
,
DontWait
);
if
(
!
protseqs
)
if
(
list_empty
(
&
protseqs
)
)
return
RPC_S_NO_PROTSEQS_REGISTERED
;
return
RPC_S_NO_PROTSEQS_REGISTERED
;
status
=
RPCRT4_start_listen
(
FALSE
);
status
=
RPCRT4_start_listen
(
FALSE
);
...
...
dlls/rpcrt4/rpc_server.h
View file @
9ea03d70
...
@@ -22,13 +22,14 @@
...
@@ -22,13 +22,14 @@
#define __WINE_RPC_SERVER_H
#define __WINE_RPC_SERVER_H
#include "rpc_binding.h"
#include "rpc_binding.h"
#include "wine/list.h"
struct
protseq_ops
;
struct
protseq_ops
;
typedef
struct
_RpcServerProtseq
typedef
struct
_RpcServerProtseq
{
{
const
struct
protseq_ops
*
ops
;
const
struct
protseq_ops
*
ops
;
struct
_RpcServerProtseq
*
Next
;
struct
list
entry
;
LPSTR
Protseq
;
LPSTR
Protseq
;
LPSTR
Endpoint
;
LPSTR
Endpoint
;
UINT
MaxCalls
;
UINT
MaxCalls
;
...
...
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