From 6b2db2d1036a57d017532d613d7f99e84968e0e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Thu, 22 Nov 2012 15:32:21 -0500 Subject: [PATCH] macosx: update client --- client/Mac/MRDPView.h | 3 ++- client/Mac/MRDPView.m | 29 ++++++++++++++++++++++------ libfreerdp/codec/CMakeLists.txt | 2 ++ libfreerdp/codec/mppc_enc.c | 2 +- libfreerdp/core/CMakeLists.txt | 2 +- libfreerdp/core/rpc.c | 8 ++++++++ libfreerdp/crypto/CMakeLists.txt | 2 +- libfreerdp/locale/keyboard_xkbfile.c | 3 ++- libfreerdp/utils/CMakeLists.txt | 7 +------ winpr/libwinpr/file/file.c | 2 +- 10 files changed, 42 insertions(+), 18 deletions(-) diff --git a/client/Mac/MRDPView.h b/client/Mac/MRDPView.h index 433ff644d..d01a27d81 100644 --- a/client/Mac/MRDPView.h +++ b/client/Mac/MRDPView.h @@ -16,7 +16,8 @@ #import "freerdp/graphics.h" #import "freerdp/utils/event.h" #import "freerdp/client/cliprdr.h" -#import "freerdp/utils/args.h" +#import "freerdp/client/file.h" +#import "freerdp/client/cmdline.h" #import "freerdp/rail/rail.h" #import "freerdp/rail.h" #import "freerdp/utils/rail.h" diff --git a/client/Mac/MRDPView.m b/client/Mac/MRDPView.m index 0d65d5326..3da757a03 100644 --- a/client/Mac/MRDPView.m +++ b/client/Mac/MRDPView.m @@ -1016,6 +1016,7 @@ int rdp_connect() BOOL mac_pre_connect(freerdp *inst) { + int status; char *cptr; int len; int i; @@ -1213,12 +1214,28 @@ BOOL mac_pre_connect(freerdp *inst) } } #endif - - freerdp_parse_args(inst->settings, g_mrdpview->argc, g_mrdpview->argv, process_plugin_args, inst->context->channels, NULL, NULL); - if ((strcmp(g_mrdpview->argv[1], "-h") == 0) || (strcmp(g_mrdpview->argv[1], "--help") == 0)) { - [NSApp terminate:nil]; - return TRUE; - } + + if (freerdp_detect_old_command_line_syntax(inst->context->argc, inst->context->argv)) + { + printf("warning: deprecated command-line syntax detected!\n"); + freerdp_client_print_command_line_help(inst->context->argc, inst->context->argv); + + [NSApp terminate:nil]; + return TRUE; + } + + inst->context->argc = g_mrdpview->argc; + inst->context->argv = g_mrdpview->argv; + + status = freerdp_client_parse_command_line_arguments(inst->context->argc, inst->context->argv, inst->settings); + + if (status < 0) + { + [NSApp terminate:nil]; + return TRUE; + } + + freerdp_client_load_addins(inst->context->channels, inst->settings); [g_mrdpview setViewSize:inst->settings->DesktopWidth :inst->settings->DesktopHeight]; diff --git a/libfreerdp/codec/CMakeLists.txt b/libfreerdp/codec/CMakeLists.txt index 6481fa0fd..7901f1792 100644 --- a/libfreerdp/codec/CMakeLists.txt +++ b/libfreerdp/codec/CMakeLists.txt @@ -99,6 +99,8 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MODULE freerdp MODULES freerdp-utils) +message(STATUS "libfreerdp-codec libs: ${${MODULE_PREFIX}_LIBS}") + if(MONOLITHIC_BUILD) set(FREERDP_LIBS ${FREERDP_LIBS} ${${MODULE_PREFIX}_LIBS} PARENT_SCOPE) else() diff --git a/libfreerdp/codec/mppc_enc.c b/libfreerdp/codec/mppc_enc.c index 07f3d421e..d732f0941 100644 --- a/libfreerdp/codec/mppc_enc.c +++ b/libfreerdp/codec/mppc_enc.c @@ -772,7 +772,7 @@ BOOL compress_rdp_5(struct rdp_mppc_enc* enc, BYTE* srcData, int len) /* encode copy_offset and insert into output buffer */ - if ((copy_offset >= 0) && (copy_offset <= 63)) + if (copy_offset <= 63) /* (copy_offset >= 0) is always true */ { /* insert binary header */ data = 0x1f; diff --git a/libfreerdp/core/CMakeLists.txt b/libfreerdp/core/CMakeLists.txt index 5b88112ac..efd309109 100644 --- a/libfreerdp/core/CMakeLists.txt +++ b/libfreerdp/core/CMakeLists.txt @@ -113,7 +113,7 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${OPENSSL_LIBRARIES}) set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MONOLITHIC ${MONOLITHIC_BUILD} INTERNAL MODULE freerdp - MODULES freerdp-core freerdp-crypto freerdp-codec freerdp-locale freerdp-utils) + MODULES freerdp-crypto freerdp-codec freerdp-locale freerdp-utils) set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MONOLITHIC ${MONOLITHIC_BUILD} diff --git a/libfreerdp/core/rpc.c b/libfreerdp/core/rpc.c index 8c192c35c..c9eda2b44 100644 --- a/libfreerdp/core/rpc.c +++ b/libfreerdp/core/rpc.c @@ -809,6 +809,12 @@ int rpc_in_write(rdpRpc* rpc, BYTE* data, int length) { int status; +#ifdef WITH_DEBUG_TSG + rpc_pdu_header_print((rpcconn_hdr_t*) data); + printf("Sending PDU (length: %d)\n", length); + freerdp_hexdump(data, length); +#endif + status = tls_write_all(rpc->TlsIn, data, length); return status; @@ -871,6 +877,8 @@ int rpc_recv_pdu(rdpRpc* rpc) header = (rpcconn_hdr_t*) rpc->buffer; bytesRead += status; + rpc_pdu_header_print(header); + if (header->common.frag_length > rpc->length) { rpc->length = header->common.frag_length; diff --git a/libfreerdp/crypto/CMakeLists.txt b/libfreerdp/crypto/CMakeLists.txt index 6ff7cc386..0ee373880 100644 --- a/libfreerdp/crypto/CMakeLists.txt +++ b/libfreerdp/crypto/CMakeLists.txt @@ -59,7 +59,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MONOLITHIC ${MONOLITHIC_BUILD} MODULE winpr - MODULES winpr-crt) + MODULES winpr-crt winpr-library) if(MONOLITHIC_BUILD) set(FREERDP_LIBS ${FREERDP_LIBS} ${${MODULE_PREFIX}_LIBS} PARENT_SCOPE) diff --git a/libfreerdp/locale/keyboard_xkbfile.c b/libfreerdp/locale/keyboard_xkbfile.c index 40cb40481..1b15be6ea 100644 --- a/libfreerdp/locale/keyboard_xkbfile.c +++ b/libfreerdp/locale/keyboard_xkbfile.c @@ -183,7 +183,8 @@ void* freerdp_keyboard_xkb_init() UINT32 freerdp_keyboard_init_xkbfile(UINT32 keyboardLayoutId, RDP_SCANCODE x11_keycode_to_rdp_scancode[256]) { void* display; - memset(x11_keycode_to_rdp_scancode, 0, sizeof(x11_keycode_to_rdp_scancode)); + + ZeroMemory(x11_keycode_to_rdp_scancode, sizeof(RDP_SCANCODE) * 256); display = freerdp_keyboard_xkb_init(); diff --git a/libfreerdp/utils/CMakeLists.txt b/libfreerdp/utils/CMakeLists.txt index 0d871e73a..63d10d5cc 100644 --- a/libfreerdp/utils/CMakeLists.txt +++ b/libfreerdp/utils/CMakeLists.txt @@ -65,15 +65,10 @@ if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} rt) endif() -set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS - MONOLITHIC ${MONOLITHIC_BUILD} INTERNAL - MODULE freerdp - MODULES freerdp-common) - set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MONOLITHIC ${MONOLITHIC_BUILD} MODULE winpr - MODULES winpr-crt winpr-synch) + MODULES winpr-crt winpr-synch winpr-thread) if(MONOLITHIC_BUILD) set(FREERDP_LIBS ${FREERDP_LIBS} ${${MODULE_PREFIX}_LIBS} PARENT_SCOPE) diff --git a/winpr/libwinpr/file/file.c b/winpr/libwinpr/file/file.c index b1b089c2b..00e5dc600 100644 --- a/winpr/libwinpr/file/file.c +++ b/winpr/libwinpr/file/file.c @@ -300,7 +300,7 @@ HANDLE FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData) struct stat fileStat; WIN32_FILE_SEARCH* pFileSearch; - ZeroMemory(lpFindFileData, sizeof(LPWIN32_FIND_DATAA)); + ZeroMemory(lpFindFileData, sizeof(WIN32_FIND_DATAA)); pFileSearch = (WIN32_FILE_SEARCH*) malloc(sizeof(WIN32_FILE_SEARCH)); ZeroMemory(pFileSearch, sizeof(WIN32_FILE_SEARCH));