[warnings] fix unchecked return

This commit is contained in:
akallabeth 2024-09-15 08:43:31 +02:00
parent 687f946999
commit ba41d5e532
No known key found for this signature in database
GPG Key ID: A49454A3FC909FD5
18 changed files with 216 additions and 136 deletions

View File

@ -54,8 +54,10 @@ void mac_set_view_size(rdpContext *context, MRDPView *view);
if (freerdp_settings_get_bool(settings, FreeRDP_Fullscreen)) if (freerdp_settings_get_bool(settings, FreeRDP_Fullscreen))
{ {
freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, screenFrame.size.width); (void)freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth,
freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, screenFrame.size.height); screenFrame.size.width);
(void)freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight,
screenFrame.size.height);
} }
PubSub_SubscribeConnectionResult(context->pubSub, AppDelegate_ConnectionResultEventHandler); PubSub_SubscribeConnectionResult(context->pubSub, AppDelegate_ConnectionResultEventHandler);

View File

@ -264,16 +264,19 @@ static BOOL wf_pre_connect(freerdp* instance)
if (desktopWidth != freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth)) if (desktopWidth != freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth))
{ {
freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, desktopWidth); if (!freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, desktopWidth))
return FALSE;
} }
if (desktopHeight != freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight)) if (desktopHeight != freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight))
{ {
freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, desktopHeight); if (!freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, desktopHeight))
return FALSE;
} }
rc = freerdp_keyboard_init(freerdp_settings_get_uint32(settings, FreeRDP_KeyboardLayout)); rc = freerdp_keyboard_init(freerdp_settings_get_uint32(settings, FreeRDP_KeyboardLayout));
freerdp_settings_set_uint32(settings, FreeRDP_KeyboardLayout, rc); if (!freerdp_settings_set_uint32(settings, FreeRDP_KeyboardLayout, rc))
return FALSE;
PubSub_SubscribeChannelConnected(instance->context->pubSub, wf_OnChannelConnectedEventHandler); PubSub_SubscribeChannelConnected(instance->context->pubSub, wf_OnChannelConnectedEventHandler);
PubSub_SubscribeChannelDisconnected(instance->context->pubSub, PubSub_SubscribeChannelDisconnected(instance->context->pubSub,
wf_OnChannelDisconnectedEventHandler); wf_OnChannelDisconnectedEventHandler);
@ -1338,7 +1341,8 @@ static BOOL wfreerdp_client_new(freerdp* instance, rdpContext* context)
instance->AuthenticateEx = wf_authenticate_ex; instance->AuthenticateEx = wf_authenticate_ex;
#ifdef WITH_WINDOWS_CERT_STORE #ifdef WITH_WINDOWS_CERT_STORE
freerdp_settings_set_bool(context->settings, FreeRDP_CertificateCallbackPreferPEM, TRUE); if (!freerdp_settings_set_bool(context->settings, FreeRDP_CertificateCallbackPreferPEM, TRUE))
return FALSE;
#endif #endif
if (!wfc->isConsole) if (!wfc->isConsole)

View File

@ -360,8 +360,9 @@ static void wf_send_resize(wfContext* wfc)
{ {
WLog_ERR("", "SendMonitorLayout failed."); WLog_ERR("", "SendMonitorLayout failed.");
} }
freerdp_settings_set_uint32(settings, FreeRDP_SmartSizingWidth, targetWidth); (void)freerdp_settings_set_uint32(settings, FreeRDP_SmartSizingWidth, targetWidth);
freerdp_settings_set_uint32(settings, FreeRDP_SmartSizingHeight, targetHeight); (void)freerdp_settings_set_uint32(settings, FreeRDP_SmartSizingHeight,
targetHeight);
} }
wfc->lastSentDate = GetTickCount64(); wfc->lastSentDate = GetTickCount64();
} }
@ -725,7 +726,7 @@ LRESULT CALLBACK wf_event_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam
{ {
HMENU hMenu = GetSystemMenu(wfc->hwnd, FALSE); HMENU hMenu = GetSystemMenu(wfc->hwnd, FALSE);
const BOOL rc = freerdp_settings_get_bool(settings, FreeRDP_SmartSizing); const BOOL rc = freerdp_settings_get_bool(settings, FreeRDP_SmartSizing);
freerdp_settings_set_bool(settings, FreeRDP_SmartSizing, !rc); (void)freerdp_settings_set_bool(settings, FreeRDP_SmartSizing, !rc);
CheckMenuItem(hMenu, SYSCOMMAND_ID_SMARTSIZING, CheckMenuItem(hMenu, SYSCOMMAND_ID_SMARTSIZING,
freerdp_settings_get_bool(settings, FreeRDP_SmartSizing) freerdp_settings_get_bool(settings, FreeRDP_SmartSizing)
? MF_CHECKED ? MF_CHECKED
@ -778,7 +779,8 @@ LRESULT CALLBACK wf_event_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam
case WM_SETFOCUS: case WM_SETFOCUS:
DEBUG_KBD("getting focus %X", hWnd); DEBUG_KBD("getting focus %X", hWnd);
freerdp_settings_set_bool(wfc->common.context.settings, FreeRDP_SuspendInput, FALSE); (void)freerdp_settings_set_bool(wfc->common.context.settings, FreeRDP_SuspendInput,
FALSE);
if (alt_ctrl_down()) if (alt_ctrl_down())
g_flipping_in = TRUE; g_flipping_in = TRUE;
@ -788,7 +790,8 @@ LRESULT CALLBACK wf_event_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam
break; break;
case WM_KILLFOCUS: case WM_KILLFOCUS:
freerdp_settings_set_bool(wfc->common.context.settings, FreeRDP_SuspendInput, TRUE); (void)freerdp_settings_set_bool(wfc->common.context.settings, FreeRDP_SuspendInput,
TRUE);
if (g_focus_hWnd == hWnd && wfc && !wfc->fullscreen) if (g_focus_hWnd == hWnd && wfc && !wfc->fullscreen)
{ {

View File

@ -254,21 +254,28 @@ static BOOL freerdp_client_settings_post_process(rdpSettings* settings)
* that the rdp file also triggers this functionality */ * that the rdp file also triggers this functionality */
if (freerdp_settings_get_bool(settings, FreeRDP_SpanMonitors)) if (freerdp_settings_get_bool(settings, FreeRDP_SpanMonitors))
{ {
freerdp_settings_set_bool(settings, FreeRDP_UseMultimon, TRUE); if (!freerdp_settings_set_bool(settings, FreeRDP_UseMultimon, TRUE))
freerdp_settings_set_bool(settings, FreeRDP_Fullscreen, TRUE); goto out_error;
if (!freerdp_settings_set_bool(settings, FreeRDP_Fullscreen, TRUE))
goto out_error;
} }
else if (freerdp_settings_get_bool(settings, FreeRDP_UseMultimon)) else if (freerdp_settings_get_bool(settings, FreeRDP_UseMultimon))
{ {
freerdp_settings_set_bool(settings, FreeRDP_Fullscreen, TRUE); if (!freerdp_settings_set_bool(settings, FreeRDP_Fullscreen, TRUE))
goto out_error;
} }
/* deal with the smartcard / smartcard logon stuff */ /* deal with the smartcard / smartcard logon stuff */
if (freerdp_settings_get_bool(settings, FreeRDP_SmartcardLogon)) if (freerdp_settings_get_bool(settings, FreeRDP_SmartcardLogon))
{ {
freerdp_settings_set_bool(settings, FreeRDP_TlsSecurity, TRUE); if (!freerdp_settings_set_bool(settings, FreeRDP_TlsSecurity, TRUE))
freerdp_settings_set_bool(settings, FreeRDP_RedirectSmartCards, TRUE); goto out_error;
freerdp_settings_set_bool(settings, FreeRDP_DeviceRedirection, TRUE); if (!freerdp_settings_set_bool(settings, FreeRDP_RedirectSmartCards, TRUE))
freerdp_settings_set_bool(settings, FreeRDP_PasswordIsSmartcardPin, TRUE); goto out_error;
if (!freerdp_settings_set_bool(settings, FreeRDP_DeviceRedirection, TRUE))
goto out_error;
if (!freerdp_settings_set_bool(settings, FreeRDP_PasswordIsSmartcardPin, TRUE))
goto out_error;
} }
return TRUE; return TRUE;

View File

@ -4195,9 +4195,12 @@ static int freerdp_client_settings_parse_command_line_arguments_int(
else else
compatibility = freerdp_client_detect_command_line(argc - 1, &argv[1], &flags); compatibility = freerdp_client_detect_command_line(argc - 1, &argv[1], &flags);
freerdp_settings_set_string(settings, FreeRDP_ProxyHostname, NULL); if (!freerdp_settings_set_string(settings, FreeRDP_ProxyHostname, NULL))
freerdp_settings_set_string(settings, FreeRDP_ProxyUsername, NULL); return -1;
freerdp_settings_set_string(settings, FreeRDP_ProxyPassword, NULL); if (!freerdp_settings_set_string(settings, FreeRDP_ProxyUsername, NULL))
return -1;
if (!freerdp_settings_set_string(settings, FreeRDP_ProxyPassword, NULL))
return -1;
if (compatibility) if (compatibility)
{ {
@ -4644,7 +4647,8 @@ static int freerdp_client_settings_parse_command_line_arguments_int(
} }
CommandLineSwitchCase(arg, "disable-output") CommandLineSwitchCase(arg, "disable-output")
{ {
freerdp_settings_set_bool(settings, FreeRDP_DeactivateClientDecoding, enable); if (!freerdp_settings_set_bool(settings, FreeRDP_DeactivateClientDecoding, enable))
return fail_at(arg, COMMAND_LINE_ERROR);
} }
CommandLineSwitchCase(arg, "home-drive") CommandLineSwitchCase(arg, "home-drive")
{ {

View File

@ -309,8 +309,8 @@ out_free:
{ {
[_params setInt:size.width forKey:@"width"]; [_params setInt:size.width forKey:@"width"];
[_params setInt:size.height forKey:@"height"]; [_params setInt:size.height forKey:@"height"];
freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, size.width); (void)freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, size.width);
freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, size.height); (void)freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, size.height);
} }
} }
@ -320,7 +320,7 @@ out_free:
if (freerdp_settings_get_uint32(settings, FreeRDP_ColorDepth) <= 16) if (freerdp_settings_get_uint32(settings, FreeRDP_ColorDepth) <= 16)
{ {
const UINT32 w = freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth) & (~1); const UINT32 w = freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth) & (~1);
freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, w); (void)freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, w);
} }
[self performSelectorInBackground:@selector(runSession) withObject:nil]; [self performSelectorInBackground:@selector(runSession) withObject:nil];

View File

@ -793,10 +793,13 @@ static BOOL clear_decompress_bands_data(CLEAR_CONTEXT* WINPR_RESTRICT clear,
if ((y + count) > vBarPixelCount) if ((y + count) > vBarPixelCount)
count = (vBarPixelCount > y) ? (vBarPixelCount - y) : 0; count = (vBarPixelCount > y) ? (vBarPixelCount - y) : 0;
while (count--) if (count > 0)
{ {
FreeRDPWriteColor(dstBuffer, clear->format, colorBkg); while (count--)
dstBuffer += FreeRDPGetBytesPerPixel(clear->format); {
FreeRDPWriteColor(dstBuffer, clear->format, colorBkg);
dstBuffer += FreeRDPGetBytesPerPixel(clear->format);
}
} }
/* /*
@ -836,12 +839,15 @@ static BOOL clear_decompress_bands_data(CLEAR_CONTEXT* WINPR_RESTRICT clear,
y = vBarYOn + vBarShortPixelCount; y = vBarYOn + vBarShortPixelCount;
count = (vBarPixelCount > y) ? (vBarPixelCount - y) : 0; count = (vBarPixelCount > y) ? (vBarPixelCount - y) : 0;
while (count--) if (count > 0)
{ {
if (!FreeRDPWriteColor(dstBuffer, clear->format, colorBkg)) while (count--)
return FALSE; {
if (!FreeRDPWriteColor(dstBuffer, clear->format, colorBkg))
return FALSE;
dstBuffer += FreeRDPGetBytesPerPixel(clear->format); dstBuffer += FreeRDPGetBytesPerPixel(clear->format);
}
} }
vBarEntry->count = vBarPixelCount; vBarEntry->count = vBarPixelCount;

View File

@ -1141,7 +1141,9 @@ static INLINE INT16 progressive_rfx_srl_read(RFX_PROGRESSIVE_UPGRADE_STATE* WINP
mag++; mag++;
} }
return sign ? -1 * mag : mag; if (mag > INT16_MAX)
mag = INT16_MAX;
return (INT16)(sign ? -1 * mag : mag);
} }
static INLINE int static INLINE int

View File

@ -833,9 +833,9 @@ void freerdp_dynamic_channel_collection_free(rdpSettings* settings)
} }
free(settings->DynamicChannelArray); free(settings->DynamicChannelArray);
freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelArraySize, 0); (void)freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelArraySize, 0);
settings->DynamicChannelArray = NULL; settings->DynamicChannelArray = NULL;
freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelCount, 0); (void)freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelCount, 0);
} }
void freerdp_capability_buffer_free(rdpSettings* settings) void freerdp_capability_buffer_free(rdpSettings* settings)
@ -968,37 +968,41 @@ void freerdp_performance_flags_make(rdpSettings* settings)
if (freerdp_settings_get_bool(settings, FreeRDP_DisableThemes)) if (freerdp_settings_get_bool(settings, FreeRDP_DisableThemes))
PerformanceFlags |= PERF_DISABLE_THEMING; PerformanceFlags |= PERF_DISABLE_THEMING;
freerdp_settings_set_uint32(settings, FreeRDP_PerformanceFlags, PerformanceFlags); (void)freerdp_settings_set_uint32(settings, FreeRDP_PerformanceFlags, PerformanceFlags);
} }
void freerdp_performance_flags_split(rdpSettings* settings) void freerdp_performance_flags_split(rdpSettings* settings)
{ {
freerdp_settings_set_bool(settings, FreeRDP_AllowFontSmoothing, (void)freerdp_settings_set_bool(
(freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & settings, FreeRDP_AllowFontSmoothing,
PERF_ENABLE_FONT_SMOOTHING) (freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) &
? TRUE PERF_ENABLE_FONT_SMOOTHING)
: FALSE); ? TRUE
freerdp_settings_set_bool(settings, FreeRDP_AllowDesktopComposition, : FALSE);
(freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & (void)freerdp_settings_set_bool(
PERF_ENABLE_DESKTOP_COMPOSITION) settings, FreeRDP_AllowDesktopComposition,
? TRUE (freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) &
: FALSE); PERF_ENABLE_DESKTOP_COMPOSITION)
freerdp_settings_set_bool( ? TRUE
: FALSE);
(void)freerdp_settings_set_bool(
settings, FreeRDP_DisableWallpaper, settings, FreeRDP_DisableWallpaper,
(freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & PERF_DISABLE_WALLPAPER) (freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & PERF_DISABLE_WALLPAPER)
? TRUE ? TRUE
: FALSE); : FALSE);
freerdp_settings_set_bool(settings, FreeRDP_DisableFullWindowDrag, (void)freerdp_settings_set_bool(
(freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & settings, FreeRDP_DisableFullWindowDrag,
PERF_DISABLE_FULLWINDOWDRAG) (freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) &
? TRUE PERF_DISABLE_FULLWINDOWDRAG)
: FALSE); ? TRUE
freerdp_settings_set_bool(settings, FreeRDP_DisableMenuAnims, : FALSE);
(freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & (void)freerdp_settings_set_bool(
PERF_DISABLE_MENUANIMATIONS) settings, FreeRDP_DisableMenuAnims,
? TRUE (freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) &
: FALSE); PERF_DISABLE_MENUANIMATIONS)
freerdp_settings_set_bool( ? TRUE
: FALSE);
(void)freerdp_settings_set_bool(
settings, FreeRDP_DisableThemes, settings, FreeRDP_DisableThemes,
(freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & PERF_DISABLE_THEMING) (freerdp_settings_get_uint32(settings, FreeRDP_PerformanceFlags) & PERF_DISABLE_THEMING)
? TRUE ? TRUE

View File

@ -326,12 +326,12 @@ void freerdp_settings_free_keys(rdpSettings* dst, BOOL cleanup)
switch (cur->type) switch (cur->type)
{ {
case FREERDP_SETTINGS_TYPE_STRING: /* strings */ case FREERDP_SETTINGS_TYPE_STRING: /* strings */
freerdp_settings_set_string_copy_(dst, (FreeRDP_Settings_Keys_String)cur->id, NULL, (void)freerdp_settings_set_string_copy_(dst, (FreeRDP_Settings_Keys_String)cur->id,
0, cleanup); NULL, 0, cleanup);
break; break;
case FREERDP_SETTINGS_TYPE_POINTER: /* pointer */ case FREERDP_SETTINGS_TYPE_POINTER: /* pointer */
freerdp_settings_set_pointer_len(dst, (FreeRDP_Settings_Keys_Pointer)cur->id, NULL, (void)freerdp_settings_set_pointer_len(dst, (FreeRDP_Settings_Keys_Pointer)cur->id,
0); NULL, 0);
break; break;
} }
} }

View File

@ -362,8 +362,11 @@ static BOOL rdp_apply_bitmap_capability_set(rdpSettings* settings, const rdpSett
WINPR_ASSERT(src); WINPR_ASSERT(src);
if (!settings->ServerMode) if (!settings->ServerMode)
freerdp_settings_set_uint32(settings, FreeRDP_ColorDepth, {
freerdp_settings_get_uint32(src, FreeRDP_ColorDepth)); if (!freerdp_settings_set_uint32(settings, FreeRDP_ColorDepth,
freerdp_settings_get_uint32(src, FreeRDP_ColorDepth)))
return FALSE;
}
if (!src->DesktopResize) if (!src->DesktopResize)
settings->DesktopResize = FALSE; settings->DesktopResize = FALSE;

View File

@ -644,7 +644,7 @@ static BOOL rdp_read_info_string(rdpSettings* settings, FreeRDP_Settings_Keys_St
if (terminator.w != L'\0') if (terminator.w != L'\0')
{ {
WLog_ERR(TAG, "protocol error: Domain must be null terminated"); WLog_ERR(TAG, "protocol error: Domain must be null terminated");
freerdp_settings_set_string(settings, id, NULL); (void)freerdp_settings_set_string(settings, id, NULL);
return FALSE; return FALSE;
} }

View File

@ -800,8 +800,10 @@ rdpSettings* freerdp_settings_new(DWORD flags)
goto out_fail; goto out_fail;
settings->OrderSupport = calloc(1, 32); settings->OrderSupport = calloc(1, 32);
freerdp_settings_set_uint16(settings, FreeRDP_TLSMinVersion, TLS1_VERSION); if (!freerdp_settings_set_uint16(settings, FreeRDP_TLSMinVersion, TLS1_VERSION))
freerdp_settings_set_uint16(settings, FreeRDP_TLSMaxVersion, 0); goto out_fail;
if (!freerdp_settings_set_uint16(settings, FreeRDP_TLSMaxVersion, 0))
goto out_fail;
if (!settings->OrderSupport) if (!settings->OrderSupport)
goto out_fail; goto out_fail;

View File

@ -1353,8 +1353,8 @@ static BOOL is_accepted(rdpTls* tls, const rdpCertificate* cert)
return TRUE; return TRUE;
} }
freerdp_settings_set_string(settings, keyAccepted, NULL); (void)freerdp_settings_set_string(settings, keyAccepted, NULL);
freerdp_settings_set_uint32(settings, keyLength, 0); (void)freerdp_settings_set_uint32(settings, keyLength, 0);
return FALSE; return FALSE;
} }

View File

@ -702,31 +702,36 @@ static BOOL pf_client_should_retry_without_nla(pClientContext* pc)
return config->ClientTlsSecurity || config->ClientRdpSecurity; return config->ClientTlsSecurity || config->ClientRdpSecurity;
} }
static void pf_client_set_security_settings(pClientContext* pc) static BOOL pf_client_set_security_settings(pClientContext* pc)
{ {
rdpSettings* settings = NULL;
const proxyConfig* config = NULL;
WINPR_ASSERT(pc); WINPR_ASSERT(pc);
WINPR_ASSERT(pc->pdata); WINPR_ASSERT(pc->pdata);
settings = pc->context.settings; rdpSettings* settings = pc->context.settings;
WINPR_ASSERT(settings); WINPR_ASSERT(settings);
config = pc->pdata->config; const proxyConfig* config = pc->pdata->config;
WINPR_ASSERT(config); WINPR_ASSERT(config);
freerdp_settings_set_bool(settings, FreeRDP_RdpSecurity, config->ClientRdpSecurity); if (!freerdp_settings_set_bool(settings, FreeRDP_RdpSecurity, config->ClientRdpSecurity))
freerdp_settings_set_bool(settings, FreeRDP_TlsSecurity, config->ClientTlsSecurity); return FALSE;
freerdp_settings_set_bool(settings, FreeRDP_NlaSecurity, config->ClientNlaSecurity); if (!freerdp_settings_set_bool(settings, FreeRDP_TlsSecurity, config->ClientTlsSecurity))
return FALSE;
if (!freerdp_settings_set_bool(settings, FreeRDP_NlaSecurity, config->ClientNlaSecurity))
return FALSE;
if (pf_client_use_proxy_smartcard_auth(settings)) if (pf_client_use_proxy_smartcard_auth(settings))
{ {
/* Smartcard authentication requires smartcard redirection to be enabled */ /* Smartcard authentication requires smartcard redirection to be enabled */
freerdp_settings_set_bool(settings, FreeRDP_RedirectSmartCards, TRUE); if (!freerdp_settings_set_bool(settings, FreeRDP_RedirectSmartCards, TRUE))
return FALSE;
/* Reset username/domain, we will get that info later from the sc cert */ /* Reset username/domain, we will get that info later from the sc cert */
freerdp_settings_set_string(settings, FreeRDP_Username, NULL); if (!freerdp_settings_set_string(settings, FreeRDP_Username, NULL))
freerdp_settings_set_string(settings, FreeRDP_Domain, NULL); return FALSE;
if (!freerdp_settings_set_string(settings, FreeRDP_Domain, NULL))
return FALSE;
} }
return TRUE;
} }
static BOOL pf_client_connect_without_nla(pClientContext* pc) static BOOL pf_client_connect_without_nla(pClientContext* pc)
@ -774,7 +779,9 @@ static BOOL pf_client_connect(freerdp* instance)
freerdp_settings_get_string(settings, FreeRDP_Username), freerdp_settings_get_string(settings, FreeRDP_Username),
freerdp_settings_get_string(settings, FreeRDP_Domain)); freerdp_settings_get_string(settings, FreeRDP_Domain));
pf_client_set_security_settings(pc); if (!pf_client_set_security_settings(pc))
return FALSE;
if (pf_client_should_retry_without_nla(pc)) if (pf_client_should_retry_without_nla(pc))
retry = pc->allow_next_conn_failure = TRUE; retry = pc->allow_next_conn_failure = TRUE;

View File

@ -515,24 +515,23 @@ int win_shadow_wds_wnd_init(winShadowSubsystem* subsystem)
int win_shadow_wds_init(winShadowSubsystem* subsystem) int win_shadow_wds_init(winShadowSubsystem* subsystem)
{ {
int status; int status = -1;
HRESULT hr;
DWORD dwCookie; long left = 0;
long left, top; long top = 0;
long right, bottom; long right = 0;
long width, height; long bottom = 0;
IUnknown* pUnknown; BSTR bstrAuthString = NULL;
rdpSettings* settings; BSTR bstrGroupName = NULL;
BSTR bstrAuthString; BSTR bstrPassword = NULL;
BSTR bstrGroupName; BSTR bstrPropertyName = NULL;
BSTR bstrPassword;
BSTR bstrPropertyName;
VARIANT varPropertyValue; VARIANT varPropertyValue;
rdpAssistanceFile* file; rdpAssistanceFile* file = NULL;
IConnectionPoint* pCP; IConnectionPoint* pCP = NULL;
IConnectionPointContainer* pCPC; IConnectionPointContainer* pCPC = NULL;
win_shadow_wds_wnd_init(subsystem); win_shadow_wds_wnd_init(subsystem);
hr = OleInitialize(NULL); HRESULT hr = OleInitialize(NULL);
if (FAILED(hr)) if (FAILED(hr))
{ {
@ -557,7 +556,7 @@ int win_shadow_wds_init(winShadowSubsystem* subsystem)
return -1; return -1;
} }
pUnknown = (IUnknown*)subsystem->pSharingSession; IUnknown* pUnknown = (IUnknown*)subsystem->pSharingSession;
hr = pUnknown->lpVtbl->QueryInterface(pUnknown, &IID_IConnectionPointContainer, (void**)&pCPC); hr = pUnknown->lpVtbl->QueryInterface(pUnknown, &IID_IConnectionPointContainer, (void**)&pCPC);
if (FAILED(hr)) if (FAILED(hr))
@ -577,7 +576,7 @@ int win_shadow_wds_init(winShadowSubsystem* subsystem)
return -1; return -1;
} }
dwCookie = 0; DWORD dwCookie = 0;
subsystem->pSessionEvents = &Shadow_IRDPSessionEvents; subsystem->pSessionEvents = &Shadow_IRDPSessionEvents;
subsystem->pSessionEvents->lpVtbl->AddRef(subsystem->pSessionEvents); subsystem->pSessionEvents->lpVtbl->AddRef(subsystem->pSessionEvents);
hr = pCP->lpVtbl->Advise(pCP, (IUnknown*)subsystem->pSessionEvents, &dwCookie); hr = pCP->lpVtbl->Advise(pCP, (IUnknown*)subsystem->pSessionEvents, &dwCookie);
@ -605,8 +604,8 @@ int win_shadow_wds_init(winShadowSubsystem* subsystem)
return -1; return -1;
} }
width = right - left; long width = right - left;
height = bottom - top; long height = bottom - top;
WLog_INFO( WLog_INFO(
TAG, TAG,
"GetDesktopSharedRect(): left: %ld top: %ld right: %ld bottom: %ld width: %ld height: %ld", "GetDesktopSharedRect(): left: %ld top: %ld right: %ld bottom: %ld width: %ld height: %ld",
@ -765,13 +764,19 @@ int win_shadow_wds_init(winShadowSubsystem* subsystem)
return status; return status;
} }
settings = subsystem->shw->settings; rdpSetting* settings = subsystem->shw->settings;
status = freerdp_assistance_populate_settings_from_assistance_file(file, settings); if (!freerdp_assistance_populate_settings_from_assistance_file(file, settings))
freerdp_settings_set_string(settings, FreeRDP_Domain, "RDP"); return -1;
freerdp_settings_set_string(settings, FreeRDP_Username, "Shadow"); if (!freerdp_settings_set_string(settings, FreeRDP_Domain, "RDP"))
freerdp_settings_set_bool(settings, FreeRDP_AutoLogonEnabled, TRUE); return -1;
freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, width); if (!freerdp_settings_set_string(settings, FreeRDP_Username, "Shadow"))
freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, height); return -1;
if (!freerdp_settings_set_bool(settings, FreeRDP_AutoLogonEnabled, TRUE))
return -1;
if (!freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, width))
return -1;
if (!freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, height))
return -1;
status = win_shadow_rdp_start(subsystem); status = win_shadow_rdp_start(subsystem);
if (status < 0) if (status < 0)

View File

@ -746,14 +746,21 @@ static BOOL shadow_client_logon(freerdp_peer* peer, const SEC_WINNT_AUTH_IDENTIT
goto fail; goto fail;
if (user) if (user)
freerdp_settings_set_string(settings, FreeRDP_Username, user); {
if (!freerdp_settings_set_string(settings, FreeRDP_Username, user))
goto fail;
}
if (domain) if (domain)
freerdp_settings_set_string(settings, FreeRDP_Domain, domain); {
if (!freerdp_settings_set_string(settings, FreeRDP_Domain, domain))
goto fail;
}
if (password) if (password)
freerdp_settings_set_string(settings, FreeRDP_Password, password); {
if (!freerdp_settings_set_string(settings, FreeRDP_Password, password))
goto fail;
}
rc = TRUE; rc = TRUE;
fail: fail:
free(user); free(user);
@ -959,9 +966,12 @@ static UINT shadow_client_rdpgfx_caps_advertise(RdpgfxServerContext* context,
h264 = h264 =
(shadow_encoder_prepare(client->encoder, FREERDP_CODEC_AVC420 | FREERDP_CODEC_AVC444) >= 0); (shadow_encoder_prepare(client->encoder, FREERDP_CODEC_AVC420 | FREERDP_CODEC_AVC444) >= 0);
#else #else
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444v2, FALSE); if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444v2, FALSE))
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444, FALSE); return rc;
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE); if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444, FALSE))
return rc;
if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE))
return rc;
#endif #endif
/* Request full screen update for new gfx channel */ /* Request full screen update for new gfx channel */
@ -1019,25 +1029,38 @@ static UINT shadow_client_rdpgfx_caps_advertise(RdpgfxServerContext* context,
flags = pdu.capsSet->flags; flags = pdu.capsSet->flags;
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444v2, FALSE); if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444v2, FALSE))
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444, FALSE); return rc;
if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444, FALSE))
return rc;
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxThinClient, if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxThinClient,
(flags & RDPGFX_CAPS_FLAG_THINCLIENT) ? TRUE : FALSE); (flags & RDPGFX_CAPS_FLAG_THINCLIENT) ? TRUE
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxSmallCache, : FALSE))
(flags & RDPGFX_CAPS_FLAG_SMALL_CACHE) ? TRUE : FALSE); return rc;
if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxSmallCache,
(flags & RDPGFX_CAPS_FLAG_SMALL_CACHE) ? TRUE
: FALSE))
return rc;
#ifndef WITH_GFX_H264 #ifndef WITH_GFX_H264
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE); if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE))
return rc;
pdu.capsSet->flags &= ~RDPGFX_CAPS_FLAG_AVC420_ENABLED; pdu.capsSet->flags &= ~RDPGFX_CAPS_FLAG_AVC420_ENABLED;
#else #else
if (h264) if (h264)
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, {
(flags & RDPGFX_CAPS_FLAG_AVC420_ENABLED) ? TRUE if (!freerdp_settings_set_bool(
: FALSE); clientSettings, FreeRDP_GfxH264,
(flags & RDPGFX_CAPS_FLAG_AVC420_ENABLED) ? TRUE : FALSE))
return rc;
}
else else
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE); {
if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE))
return rc;
}
#endif #endif
return shadow_client_send_caps_confirm(context, client, &pdu); return shadow_client_send_caps_confirm(context, client, &pdu);
@ -1058,14 +1081,21 @@ static UINT shadow_client_rdpgfx_caps_advertise(RdpgfxServerContext* context,
pdu.capsSet = &caps; pdu.capsSet = &caps;
flags = pdu.capsSet->flags; flags = pdu.capsSet->flags;
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444v2, FALSE); if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444v2, FALSE))
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444, FALSE); return rc;
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE); if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxAVC444, FALSE))
return rc;
if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxH264, FALSE))
return rc;
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxThinClient, if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxThinClient,
(flags & RDPGFX_CAPS_FLAG_THINCLIENT) ? TRUE : FALSE); (flags & RDPGFX_CAPS_FLAG_THINCLIENT) ? TRUE
freerdp_settings_set_bool(clientSettings, FreeRDP_GfxSmallCache, : FALSE))
(flags & RDPGFX_CAPS_FLAG_SMALL_CACHE) ? TRUE : FALSE); return rc;
if (!freerdp_settings_set_bool(clientSettings, FreeRDP_GfxSmallCache,
(flags & RDPGFX_CAPS_FLAG_SMALL_CACHE) ? TRUE
: FALSE))
return rc;
return shadow_client_send_caps_confirm(context, client, &pdu); return shadow_client_send_caps_confirm(context, client, &pdu);
} }

View File

@ -399,7 +399,8 @@ int shadow_server_parse_command_line(rdpShadowServer* server, int argc, char** a
} }
CommandLineSwitchCase(arg, "sam-file") CommandLineSwitchCase(arg, "sam-file")
{ {
freerdp_settings_set_string(settings, FreeRDP_NtlmSamFile, arg->Value); if (!freerdp_settings_set_string(settings, FreeRDP_NtlmSamFile, arg->Value))
return COMMAND_LINE_ERROR;
} }
CommandLineSwitchCase(arg, "log-level") CommandLineSwitchCase(arg, "log-level")
{ {