rpcrt4: Don't store the endpoint in the protseq.
Robert Shearman
rob at codeweavers.com
Fri Nov 10 06:07:28 CST 2006
---
dlls/rpcrt4/rpc_server.c | 21 +++++++++++----------
dlls/rpcrt4/rpc_server.h | 3 +--
2 files changed, 12 insertions(+), 12 deletions(-)
-------------- next part --------------
diff --git a/dlls/rpcrt4/rpc_server.c b/dlls/rpcrt4/rpc_server.c
index 380d0ac..9e02e24 100644
--- a/dlls/rpcrt4/rpc_server.c
+++ b/dlls/rpcrt4/rpc_server.c
@@ -492,11 +492,11 @@ static void RPCRT4_stop_listen(BOOL auto
LeaveCriticalSection(&listen_cs);
}
-static RPC_STATUS RPCRT4_use_protseq(RpcServerProtseq* ps)
+static RPC_STATUS RPCRT4_use_protseq(RpcServerProtseq* ps, LPSTR endpoint)
{
RPC_STATUS status;
- status = ps->ops->open_endpoint(ps, ps->Endpoint);
+ status = ps->ops->open_endpoint(ps, endpoint);
if (status != RPC_S_OK)
return status;
@@ -605,7 +605,7 @@ RPC_STATUS WINAPI RpcServerUseProtseqEpW
/***********************************************************************
* alloc_serverprotoseq (internal)
*/
-static RPC_STATUS alloc_serverprotoseq(UINT MaxCalls, char *Protseq, char *Endpoint, RpcServerProtseq **ps)
+static RPC_STATUS alloc_serverprotoseq(UINT MaxCalls, char *Protseq, RpcServerProtseq **ps)
{
const struct protseq_ops *ops = rpcrt4_get_protseq_ops(Protseq);
@@ -620,7 +620,6 @@ static RPC_STATUS alloc_serverprotoseq(U
return RPC_S_OUT_OF_RESOURCES;
(*ps)->MaxCalls = MaxCalls;
(*ps)->Protseq = Protseq;
- (*ps)->Endpoint = Endpoint;
(*ps)->ops = ops;
(*ps)->MaxCalls = 0;
(*ps)->conn = NULL;
@@ -646,12 +645,11 @@ RPC_STATUS WINAPI RpcServerUseProtseqEpE
debugstr_a(szep), SecurityDescriptor,
lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
- status = alloc_serverprotoseq(MaxCalls, RPCRT4_strdupA(szps),
- RPCRT4_strdupA(szep), &ps);
+ status = alloc_serverprotoseq(MaxCalls, RPCRT4_strdupA(szps), &ps);
if (status != RPC_S_OK)
return status;
- return RPCRT4_use_protseq(ps);
+ return RPCRT4_use_protseq(ps, szep);
}
/***********************************************************************
@@ -662,17 +660,20 @@ RPC_STATUS WINAPI RpcServerUseProtseqEpE
{
RpcServerProtseq* ps;
RPC_STATUS status;
+ LPSTR EndpointA;
TRACE("(%s,%u,%s,%p,{%u,%lu,%lu})\n", debugstr_w( Protseq ), MaxCalls,
debugstr_w( Endpoint ), SecurityDescriptor,
lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
- status = alloc_serverprotoseq(MaxCalls, RPCRT4_strdupWtoA(Protseq),
- RPCRT4_strdupWtoA(Endpoint), &ps);
+ status = alloc_serverprotoseq(MaxCalls, RPCRT4_strdupWtoA(Protseq), &ps);
if (status != RPC_S_OK)
return status;
- return RPCRT4_use_protseq(ps);
+ EndpointA = RPCRT4_strdupWtoA(Endpoint);
+ status = RPCRT4_use_protseq(ps, EndpointA);
+ RPCRT4_strfree(EndpointA);
+ return status;
}
/***********************************************************************
diff --git a/dlls/rpcrt4/rpc_server.h b/dlls/rpcrt4/rpc_server.h
index c385bed..aa873a0 100644
--- a/dlls/rpcrt4/rpc_server.h
+++ b/dlls/rpcrt4/rpc_server.h
@@ -31,8 +31,7 @@ typedef struct _RpcServerProtseq
const struct protseq_ops *ops; /* RO */
struct list entry; /* CS ::server_cs */
LPSTR Protseq; /* RO */
- LPSTR Endpoint; /* RO */
- UINT MaxCalls;
+ UINT MaxCalls; /* RO */
/* list of listening connections */
RpcConnection* conn; /* CS cs */
CRITICAL_SECTION cs;
More information about the wine-patches
mailing list