From 65a4c6e1fc181c4c63d39bf0f1660ecbe1c03b1f Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 21 Apr 2015 15:57:25 +0200 Subject: [PATCH] Changed listener callback arguments and return. --- include/freerdp/listener.h | 2 +- libfreerdp/core/listener.c | 12 +++++------- server/Sample/sfreerdp.c | 5 ++--- server/shadow/shadow_server.c | 5 ++--- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/include/freerdp/listener.h b/include/freerdp/listener.h index 9ae1156d6..e7e73f988 100644 --- a/include/freerdp/listener.h +++ b/include/freerdp/listener.h @@ -34,7 +34,7 @@ extern "C" { typedef BOOL (*psListenerOpen)(freerdp_listener* instance, const char* bind_address, UINT16 port); typedef BOOL (*psListenerOpenLocal)(freerdp_listener* instance, const char* path); typedef BOOL (*psListenerGetFileDescriptor)(freerdp_listener* instance, void** rfds, int* rcount); -typedef int (*psListenerGetEventHandles)(freerdp_listener* instance, HANDLE* events, DWORD* nCount); +typedef DWORD (*psListenerGetEventHandles)(freerdp_listener* instance, HANDLE* events, DWORD nCount); typedef BOOL (*psListenerCheckFileDescriptor)(freerdp_listener* instance); typedef void (*psListenerClose)(freerdp_listener* instance); typedef void (*psPeerAccepted)(freerdp_listener* instance, freerdp_peer* client); diff --git a/libfreerdp/core/listener.c b/libfreerdp/core/listener.c index 4d474683f..b38e54fb0 100644 --- a/libfreerdp/core/listener.c +++ b/libfreerdp/core/listener.c @@ -255,25 +255,23 @@ static BOOL freerdp_listener_get_fds(freerdp_listener* instance, void** rfds, in return TRUE; } -int freerdp_listener_get_event_handles(freerdp_listener* instance, HANDLE* events, DWORD* nCount) +DWORD freerdp_listener_get_event_handles(freerdp_listener* instance, HANDLE* events, DWORD nCount) { int index; - DWORD count = *nCount; rdpListener* listener = (rdpListener*) instance->listener; if (listener->num_sockfds < 1) - return -1; + return 0; - if (listener->num_sockfds > count) - return -1; + if (listener->num_sockfds > nCount) + return 0; for (index = 0; index < listener->num_sockfds; index++) { events[index] = listener->events[index]; } - *nCount = listener->num_sockfds; - return 0; + return listener->num_sockfds; } static BOOL freerdp_listener_check_fds(freerdp_listener* instance) diff --git a/server/Sample/sfreerdp.c b/server/Sample/sfreerdp.c index 4c8b3d02d..514327ab6 100644 --- a/server/Sample/sfreerdp.c +++ b/server/Sample/sfreerdp.c @@ -744,9 +744,8 @@ static void test_server_mainloop(freerdp_listener* instance) while (1) { - count = 32; - - if (instance->GetEventHandles(instance, handles, &count)) + count = instance->GetEventHandles(instance, handles, 32); + if (0 == count) { WLog_ERR(TAG, "Failed to get FreeRDP event handles"); break; diff --git a/server/shadow/shadow_server.c b/server/shadow/shadow_server.c index 38cbfbfff..dd778916a 100644 --- a/server/shadow/shadow_server.c +++ b/server/shadow/shadow_server.c @@ -313,9 +313,8 @@ void* shadow_server_thread(rdpShadowServer* server) while (1) { - nCount = 32; - - if (listener->GetEventHandles(listener, events, &nCount) < 0) + nCount = listener->GetEventHandles(listener, events, 32); + if (0 == nCount) { WLog_ERR(TAG, "Failed to get FreeRDP file descriptor"); break;