From 1036f1e296e574aa97cfd1ccd9e6714a91bd6e8b Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Fri, 26 Feb 2016 19:25:49 +0100 Subject: [PATCH] Fixed default visibility. When nothing is declared, only export symbols defined with WINPR_API or FREERDP_API defined. Override this setting if BUILD_TESTING to allow tests access to internal functions usually not exposed. --- CMakeLists.txt | 6 ++++-- libfreerdp/core/freerdp.c | 16 ++++++++-------- libfreerdp/crypto/crypto.c | 2 +- server/shadow/Mac/mac_shadow.c | 2 +- server/shadow/Win/win_shadow.c | 2 +- server/shadow/X11/x11_shadow.c | 2 +- winpr/include/winpr/comm.h | 12 ++++++------ winpr/include/winpr/crypto.h | 4 ++-- winpr/libwinpr/utils/wlog/BinaryAppender.h | 2 +- 9 files changed, 25 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2982da5d3..13e41e9b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,8 +122,10 @@ if(NOT DEFINED BUILD_SHARED_LIBS) endif() endif() -if(NOT DEFINED EXPORT_ALL_SYMBOLS) - set(EXPORT_ALL_SYMBOLS TRUE) +if(BUILD_TESTING) + set(EXPORT_ALL_SYMBOLS TRUE) +elseif(NOT DEFINED EXPORT_ALL_SYMBOLS) + set(EXPORT_ALL_SYMBOLS FALSE) endif() # BSD diff --git a/libfreerdp/core/freerdp.c b/libfreerdp/core/freerdp.c index 07bb43736..0f45f1284 100644 --- a/libfreerdp/core/freerdp.c +++ b/libfreerdp/core/freerdp.c @@ -398,7 +398,7 @@ BOOL freerdp_shall_disconnect(freerdp* instance) return TRUE; } -FREERDP_API BOOL freerdp_focus_required(freerdp* instance) +BOOL freerdp_focus_required(freerdp* instance) { rdpRdp* rdp; BOOL bRetCode = FALSE; @@ -778,19 +778,19 @@ void freerdp_free(freerdp* instance) free(instance); } -FREERDP_API ULONG freerdp_get_transport_sent(rdpContext* context, BOOL resetCount) { +ULONG freerdp_get_transport_sent(rdpContext* context, BOOL resetCount) { ULONG written = context->rdp->transport->written; if (resetCount) context->rdp->transport->written = 0; return written; } -FREERDP_API HANDLE getChannelErrorEventHandle(rdpContext* context) +HANDLE getChannelErrorEventHandle(rdpContext* context) { return context->channelErrorEvent; } -FREERDP_API BOOL checkChannelErrorEvent(rdpContext* context) +BOOL checkChannelErrorEvent(rdpContext* context) { if (WaitForSingleObject( context->channelErrorEvent, 0) == WAIT_OBJECT_0) { @@ -805,24 +805,24 @@ FREERDP_API BOOL checkChannelErrorEvent(rdpContext* context) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_API UINT getChannelError(rdpContext* context) +UINT getChannelError(rdpContext* context) { return context->channelErrorNum; } -FREERDP_API const char* getChannelErrorDescription(rdpContext* context) +const char* getChannelErrorDescription(rdpContext* context) { return context->errorDescription; } -FREERDP_API void clearChannelError(rdpContext* context) +void clearChannelError(rdpContext* context) { context->channelErrorNum = 0; memset(context->errorDescription, 0, 500); ResetEvent(context->channelErrorEvent); } -FREERDP_API void setChannelError(rdpContext* context, UINT errorNum, char* description) +void setChannelError(rdpContext* context, UINT errorNum, char* description) { context->channelErrorNum = errorNum; strncpy(context->errorDescription, description, 499); diff --git a/libfreerdp/crypto/crypto.c b/libfreerdp/crypto/crypto.c index dfb1dbc8b..6a2f0db31 100644 --- a/libfreerdp/crypto/crypto.c +++ b/libfreerdp/crypto/crypto.c @@ -334,7 +334,7 @@ char* crypto_cert_subject_common_name(X509* xcert, int* length) return (char*) common_name; } -FREERDP_API void crypto_cert_subject_alt_name_free(int count, int *lengths, +void crypto_cert_subject_alt_name_free(int count, int *lengths, char** alt_name) { int i; diff --git a/server/shadow/Mac/mac_shadow.c b/server/shadow/Mac/mac_shadow.c index 2fd5f96d4..10508c9fe 100644 --- a/server/shadow/Mac/mac_shadow.c +++ b/server/shadow/Mac/mac_shadow.c @@ -660,7 +660,7 @@ macShadowSubsystem* mac_shadow_subsystem_new() return subsystem; } -int Mac_ShadowSubsystemEntry(RDP_SHADOW_ENTRY_POINTS* pEntryPoints) +FREERDP_API int Mac_ShadowSubsystemEntry(RDP_SHADOW_ENTRY_POINTS* pEntryPoints) { pEntryPoints->New = (pfnShadowSubsystemNew) mac_shadow_subsystem_new; pEntryPoints->Free = (pfnShadowSubsystemFree) mac_shadow_subsystem_free; diff --git a/server/shadow/Win/win_shadow.c b/server/shadow/Win/win_shadow.c index d1dbc5888..0f23b9c05 100644 --- a/server/shadow/Win/win_shadow.c +++ b/server/shadow/Win/win_shadow.c @@ -519,7 +519,7 @@ winShadowSubsystem* win_shadow_subsystem_new() return subsystem; } -int Win_ShadowSubsystemEntry(RDP_SHADOW_ENTRY_POINTS* pEntryPoints) +FREERDP_API int Win_ShadowSubsystemEntry(RDP_SHADOW_ENTRY_POINTS* pEntryPoints) { pEntryPoints->New = (pfnShadowSubsystemNew) win_shadow_subsystem_new; pEntryPoints->Free = (pfnShadowSubsystemFree) win_shadow_subsystem_free; diff --git a/server/shadow/X11/x11_shadow.c b/server/shadow/X11/x11_shadow.c index 9a16662a9..7abb218ec 100644 --- a/server/shadow/X11/x11_shadow.c +++ b/server/shadow/X11/x11_shadow.c @@ -1437,7 +1437,7 @@ void x11_shadow_subsystem_free(x11ShadowSubsystem* subsystem) free(subsystem); } -int X11_ShadowSubsystemEntry(RDP_SHADOW_ENTRY_POINTS* pEntryPoints) +FREERDP_API int X11_ShadowSubsystemEntry(RDP_SHADOW_ENTRY_POINTS* pEntryPoints) { pEntryPoints->New = (pfnShadowSubsystemNew) x11_shadow_subsystem_new; pEntryPoints->Free = (pfnShadowSubsystemFree) x11_shadow_subsystem_free; diff --git a/winpr/include/winpr/comm.h b/winpr/include/winpr/comm.h index 6f0a23077..d4a33b3dd 100644 --- a/winpr/include/winpr/comm.h +++ b/winpr/include/winpr/comm.h @@ -523,37 +523,37 @@ static const _SERIAL_IOCTL_NAME _SERIAL_IOCTL_NAMES[] = /** * FIXME: got a proper function name and place */ -const char* _comm_serial_ioctl_name(ULONG number); +WINPR_API const char* _comm_serial_ioctl_name(ULONG number); /** * FIXME: got a proper function name and place */ -void _comm_setServerSerialDriver(HANDLE hComm, SERIAL_DRIVER_ID); +WINPR_API void _comm_setServerSerialDriver(HANDLE hComm, SERIAL_DRIVER_ID); /** * FIXME: got a proper function name and place * * permissive mode is disabled by default. */ -BOOL _comm_set_permissive(HANDLE hDevice, BOOL permissive); +WINPR_API BOOL _comm_set_permissive(HANDLE hDevice, BOOL permissive); /** * FIXME: to be moved in comm_ioctl.h */ -BOOL CommDeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, +WINPR_API BOOL CommDeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped); /** * FIXME: to be moved in comm_io.h */ -BOOL CommReadFile(HANDLE hDevice, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, +WINPR_API BOOL CommReadFile(HANDLE hDevice, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped); /** * FIXME: to be moved in comm_io.h */ -BOOL CommWriteFile(HANDLE hDevice, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, +WINPR_API BOOL CommWriteFile(HANDLE hDevice, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped); #ifdef __cplusplus diff --git a/winpr/include/winpr/crypto.h b/winpr/include/winpr/crypto.h index 886a5174f..20731a3aa 100644 --- a/winpr/include/winpr/crypto.h +++ b/winpr/include/winpr/crypto.h @@ -500,9 +500,9 @@ WINPR_API PCCERT_CONTEXT CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD WINPR_API PCCERT_CONTEXT CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrevCertContext); -DWORD CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, +WINPR_API DWORD CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void* pvTypePara, LPWSTR pszNameString, DWORD cchNameString); -DWORD CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType, +WINPR_API DWORD CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void* pvTypePara, LPSTR pszNameString, DWORD cchNameString); #ifdef __cplusplus diff --git a/winpr/libwinpr/utils/wlog/BinaryAppender.h b/winpr/libwinpr/utils/wlog/BinaryAppender.h index 22f1075df..31a9341f8 100644 --- a/winpr/libwinpr/utils/wlog/BinaryAppender.h +++ b/winpr/libwinpr/utils/wlog/BinaryAppender.h @@ -22,6 +22,6 @@ #include "wlog.h" -WINPR_API wLogAppender* WLog_BinaryAppender_New(wLog* log); +wLogAppender* WLog_BinaryAppender_New(wLog* log); #endif /* WINPR_WLOG_BINARY_APPENDER_PRIVATE_H */