From 4b6dd6f14da716a27c7828140b7000f7833b7681 Mon Sep 17 00:00:00 2001 From: Vic Lee Date: Sun, 30 Oct 2011 13:43:04 +0800 Subject: [PATCH] server: follow context_size change. --- include/freerdp/peer.h | 3 +-- libfreerdp-core/peer.c | 19 ++++++++++--------- server/X11/xf_peer.c | 7 +------ server/test/tfreerdp.c | 7 +------ 4 files changed, 13 insertions(+), 23 deletions(-) diff --git a/include/freerdp/peer.h b/include/freerdp/peer.h index 6907c63..21d58bc 100644 --- a/include/freerdp/peer.h +++ b/include/freerdp/peer.h @@ -26,7 +26,6 @@ #include #include -typedef void (*psPeerContextSize)(freerdp_peer* client, uint32* size); typedef void (*psPeerContextNew)(freerdp_peer* client, rdpContext* context); typedef void (*psPeerContextFree)(freerdp_peer* client, rdpContext* context); @@ -47,7 +46,7 @@ struct rdp_freerdp_peer rdpUpdate* update; rdpSettings* settings; - psPeerContextSize ContextSize; + size_t context_size; psPeerContextNew ContextNew; psPeerContextFree ContextFree; diff --git a/libfreerdp-core/peer.c b/libfreerdp-core/peer.c index ab8ed36..27174d0 100644 --- a/libfreerdp-core/peer.c +++ b/libfreerdp-core/peer.c @@ -242,16 +242,13 @@ static void freerdp_peer_disconnect(freerdp_peer* client) void freerdp_peer_context_new(freerdp_peer* client) { rdpRdp* rdp; - uint32 size = sizeof(rdpContext); rdp = rdp_new(NULL); client->input = rdp->input; client->update = rdp->update; client->settings = rdp->settings; - IFCALL(client->ContextSize, client, &size); - - client->context = (rdpContext*) xzalloc(size); + client->context = (rdpContext*) xzalloc(client->context_size); client->context->rdp = rdp; client->context->peer = client; @@ -280,11 +277,15 @@ freerdp_peer* freerdp_peer_new(int sockfd) client = xnew(freerdp_peer); - client->sockfd = sockfd; - client->Initialize = freerdp_peer_initialize; - client->GetFileDescriptor = freerdp_peer_get_fds; - client->CheckFileDescriptor = freerdp_peer_check_fds; - client->Disconnect = freerdp_peer_disconnect; + if (client != NULL) + { + client->sockfd = sockfd; + client->context_size = sizeof(rdpContext); + client->Initialize = freerdp_peer_initialize; + client->GetFileDescriptor = freerdp_peer_get_fds; + client->CheckFileDescriptor = freerdp_peer_check_fds; + client->Disconnect = freerdp_peer_disconnect; + } return client; } diff --git a/server/X11/xf_peer.c b/server/X11/xf_peer.c index 453a195..e5a1bee 100644 --- a/server/X11/xf_peer.c +++ b/server/X11/xf_peer.c @@ -117,11 +117,6 @@ xfInfo* xf_info_init() return xfi; } -void xf_peer_context_size(freerdp_peer* client, uint32* size) -{ - *size = sizeof(xfPeerContext); -} - void xf_peer_context_new(freerdp_peer* client, xfPeerContext* context) { context->info = xf_info_init(); @@ -146,7 +141,7 @@ void xf_peer_context_free(freerdp_peer* client, xfPeerContext* context) void xf_peer_init(freerdp_peer* client) { - client->ContextSize = (psPeerContextSize) xf_peer_context_size; + client->context_size = sizeof(xfPeerContext); client->ContextNew = (psPeerContextNew) xf_peer_context_new; client->ContextFree = (psPeerContextFree) xf_peer_context_free; freerdp_peer_context_new(client); diff --git a/server/test/tfreerdp.c b/server/test/tfreerdp.c index ba16f8f..5ccb0d2 100644 --- a/server/test/tfreerdp.c +++ b/server/test/tfreerdp.c @@ -57,11 +57,6 @@ struct test_peer_context }; typedef struct test_peer_context testPeerContext; -void test_peer_context_size(freerdp_peer* client, uint32* size) -{ - *size = sizeof(testPeerContext); -} - void test_peer_context_new(freerdp_peer* client, testPeerContext* context) { context->rfx_context = rfx_context_new(); @@ -90,7 +85,7 @@ void test_peer_context_free(freerdp_peer* client, testPeerContext* context) static void test_peer_init(freerdp_peer* client) { - client->ContextSize = (psPeerContextSize) test_peer_context_size; + client->context_size = sizeof(testPeerContext); client->ContextNew = (psPeerContextNew) test_peer_context_new; client->ContextFree = (psPeerContextFree) test_peer_context_free; freerdp_peer_context_new(client); -- 2.7.4