void guac_rdp_push_settings(guac_rdp_settings* guac_settings, freerdp* rdp) { BOOL bitmap_cache; rdpSettings* rdp_settings = rdp->settings; /* Authentication */ #ifdef LEGACY_RDPSETTINGS rdp_settings->domain = guac_rdp_strdup(guac_settings->domain); rdp_settings->username = guac_rdp_strdup(guac_settings->username); rdp_settings->password = guac_rdp_strdup(guac_settings->password); #else rdp_settings->Domain = guac_rdp_strdup(guac_settings->domain); rdp_settings->Username = guac_rdp_strdup(guac_settings->username); rdp_settings->Password = guac_rdp_strdup(guac_settings->password); #endif /* Connection */ #ifdef LEGACY_RDPSETTINGS rdp_settings->hostname = guac_rdp_strdup(guac_settings->hostname); rdp_settings->port = guac_settings->port; #else rdp_settings->ServerHostname = guac_rdp_strdup(guac_settings->hostname); rdp_settings->ServerPort = guac_settings->port; #endif /* Session */ #ifdef LEGACY_RDPSETTINGS rdp_settings->color_depth = guac_settings->color_depth; rdp_settings->width = guac_settings->width; rdp_settings->height = guac_settings->height; rdp_settings->shell = guac_rdp_strdup(guac_settings->initial_program); rdp_settings->kbd_layout = guac_settings->server_layout->freerdp_keyboard_layout; #else rdp_settings->ColorDepth = guac_settings->color_depth; rdp_settings->DesktopWidth = guac_settings->width; rdp_settings->DesktopHeight = guac_settings->height; rdp_settings->AlternateShell = guac_rdp_strdup(guac_settings->initial_program); rdp_settings->KeyboardLayout = guac_settings->server_layout->freerdp_keyboard_layout; #endif /* Performance flags */ #ifdef LEGACY_RDPSETTINGS /* Explicitly set flag value */ rdp_settings->performance_flags = guac_rdp_get_performance_flags(guac_settings); /* Set individual flags - some FreeRDP versions overwrite the above */ rdp_settings->smooth_fonts = guac_settings->font_smoothing_enabled; rdp_settings->disable_wallpaper = !guac_settings->wallpaper_enabled; rdp_settings->disable_full_window_drag = !guac_settings->full_window_drag_enabled; rdp_settings->disable_menu_animations = !guac_settings->menu_animations_enabled; rdp_settings->disable_theming = !guac_settings->theming_enabled; rdp_settings->desktop_composition = guac_settings->desktop_composition_enabled; #else /* Explicitly set flag value */ rdp_settings->PerformanceFlags = guac_rdp_get_performance_flags(guac_settings); /* Set individual flags - some FreeRDP versions overwrite the above */ rdp_settings->AllowFontSmoothing = guac_settings->font_smoothing_enabled; rdp_settings->DisableWallpaper = !guac_settings->wallpaper_enabled; rdp_settings->DisableFullWindowDrag = !guac_settings->full_window_drag_enabled; rdp_settings->DisableMenuAnims = !guac_settings->menu_animations_enabled; rdp_settings->DisableThemes = !guac_settings->theming_enabled; rdp_settings->AllowDesktopComposition = guac_settings->desktop_composition_enabled; #endif /* Client name */ if (guac_settings->client_name != NULL) { #ifdef LEGACY_RDPSETTINGS strncpy(rdp_settings->client_hostname, guac_settings->client_name, RDP_CLIENT_HOSTNAME_SIZE - 1); #else strncpy(rdp_settings->ClientHostname, guac_settings->client_name, RDP_CLIENT_HOSTNAME_SIZE - 1); #endif } /* Console */ #ifdef LEGACY_RDPSETTINGS rdp_settings->console_session = guac_settings->console; rdp_settings->console_audio = guac_settings->console_audio; #else rdp_settings->ConsoleSession = guac_settings->console; rdp_settings->RemoteConsoleAudio = guac_settings->console_audio; #endif /* Audio */ #ifdef LEGACY_RDPSETTINGS #ifdef HAVE_RDPSETTINGS_AUDIOPLAYBACK rdp_settings->audio_playback = guac_settings->audio_enabled; #endif #else #ifdef HAVE_RDPSETTINGS_AUDIOPLAYBACK rdp_settings->AudioPlayback = guac_settings->audio_enabled; #endif #endif /* Audio capture */ #ifdef LEGACY_RDPSETTINGS #ifdef HAVE_RDPSETTINGS_AUDIOCAPTURE rdp_settings->audio_capture = guac_settings->enable_audio_input; #endif #else #ifdef HAVE_RDPSETTINGS_AUDIOCAPTURE rdp_settings->AudioCapture = guac_settings->enable_audio_input; #endif #endif /* Device redirection */ #ifdef LEGACY_RDPSETTINGS #ifdef HAVE_RDPSETTINGS_DEVICEREDIRECTION rdp_settings->device_redirection = guac_settings->audio_enabled || guac_settings->drive_enabled || guac_settings->printing_enabled; #endif #else #ifdef HAVE_RDPSETTINGS_DEVICEREDIRECTION rdp_settings->DeviceRedirection = guac_settings->audio_enabled || guac_settings->drive_enabled || guac_settings->printing_enabled; #endif #endif /* Security */ switch (guac_settings->security_mode) { /* Standard RDP encryption */ case GUAC_SECURITY_RDP: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = TRUE; rdp_settings->tls_security = FALSE; rdp_settings->nla_security = FALSE; rdp_settings->encryption_level = ENCRYPTION_LEVEL_CLIENT_COMPATIBLE; rdp_settings->encryption_method = ENCRYPTION_METHOD_40BIT | ENCRYPTION_METHOD_128BIT | ENCRYPTION_METHOD_FIPS; #else rdp_settings->RdpSecurity = TRUE; rdp_settings->TlsSecurity = FALSE; rdp_settings->NlaSecurity = FALSE; rdp_settings->EncryptionLevel = ENCRYPTION_LEVEL_CLIENT_COMPATIBLE; rdp_settings->EncryptionMethods = ENCRYPTION_METHOD_40BIT | ENCRYPTION_METHOD_128BIT | ENCRYPTION_METHOD_FIPS; #endif break; /* TLS encryption */ case GUAC_SECURITY_TLS: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = FALSE; rdp_settings->tls_security = TRUE; rdp_settings->nla_security = FALSE; #else rdp_settings->RdpSecurity = FALSE; rdp_settings->TlsSecurity = TRUE; rdp_settings->NlaSecurity = FALSE; #endif break; /* Network level authentication */ case GUAC_SECURITY_NLA: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = FALSE; rdp_settings->tls_security = FALSE; rdp_settings->nla_security = TRUE; #else rdp_settings->RdpSecurity = FALSE; rdp_settings->TlsSecurity = FALSE; rdp_settings->NlaSecurity = TRUE; #endif break; /* All security types */ case GUAC_SECURITY_ANY: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = TRUE; rdp_settings->tls_security = TRUE; rdp_settings->nla_security = TRUE; #else rdp_settings->RdpSecurity = TRUE; rdp_settings->TlsSecurity = TRUE; rdp_settings->NlaSecurity = TRUE; #endif break; } /* Authentication */ #ifdef LEGACY_RDPSETTINGS rdp_settings->authentication = !guac_settings->disable_authentication; rdp_settings->ignore_certificate = guac_settings->ignore_certificate; rdp_settings->encryption = TRUE; #else rdp_settings->Authentication = !guac_settings->disable_authentication; rdp_settings->IgnoreCertificate = guac_settings->ignore_certificate; rdp_settings->DisableEncryption = FALSE; #endif /* RemoteApp */ if (guac_settings->remote_app != NULL) { #ifdef LEGACY_RDPSETTINGS rdp_settings->workarea = TRUE; rdp_settings->remote_app = TRUE; rdp_settings->rail_langbar_supported = TRUE; #else rdp_settings->Workarea = TRUE; rdp_settings->RemoteApplicationMode = TRUE; rdp_settings->RemoteAppLanguageBarSupported = TRUE; rdp_settings->RemoteApplicationProgram = guac_settings->remote_app; rdp_settings->ShellWorkingDirectory = guac_rdp_strdup(guac_settings->remote_app_dir); rdp_settings->RemoteApplicationCmdLine = guac_settings->remote_app_args; #endif } #ifdef HAVE_RDPSETTINGS_SENDPRECONNECTIONPDU /* Preconnection ID */ if (guac_settings->preconnection_id != -1) { rdp_settings->NegotiateSecurityLayer = FALSE; rdp_settings->SendPreconnectionPdu = TRUE; rdp_settings->PreconnectionId = guac_settings->preconnection_id; } /* Preconnection BLOB */ if (guac_settings->preconnection_blob != NULL) { rdp_settings->NegotiateSecurityLayer = FALSE; rdp_settings->SendPreconnectionPdu = TRUE; rdp_settings->PreconnectionBlob = guac_settings->preconnection_blob; } #endif #ifdef HAVE_FREERDP_GATEWAY_SUPPORT /* Enable use of RD gateway if a gateway hostname is provided */ if (guac_settings->gateway_hostname != NULL) { /* Enable RD gateway */ rdp_settings->GatewayEnabled = TRUE; /* RD gateway connection details */ rdp_settings->GatewayHostname = guac_rdp_strdup(guac_settings->gateway_hostname); rdp_settings->GatewayPort = guac_settings->gateway_port; /* RD gateway credentials */ rdp_settings->GatewayUseSameCredentials = FALSE; rdp_settings->GatewayDomain = guac_rdp_strdup(guac_settings->gateway_domain); rdp_settings->GatewayUsername = guac_rdp_strdup(guac_settings->gateway_username); rdp_settings->GatewayPassword = guac_rdp_strdup(guac_settings->gateway_password); } #endif #ifdef HAVE_FREERDP_LOAD_BALANCER_SUPPORT /* Store load balance info (and calculate length) if provided */ if (guac_settings->load_balance_info != NULL) { rdp_settings->LoadBalanceInfo = (BYTE*) guac_rdp_strdup(guac_settings->load_balance_info); rdp_settings->LoadBalanceInfoLength = strlen(guac_settings->load_balance_info); } #endif /* Order support */ #ifdef LEGACY_RDPSETTINGS bitmap_cache = rdp_settings->bitmap_cache; rdp_settings->os_major_type = OSMAJORTYPE_UNSPECIFIED; rdp_settings->os_minor_type = OSMINORTYPE_UNSPECIFIED; rdp_settings->desktop_resize = TRUE; rdp_settings->order_support[NEG_DSTBLT_INDEX] = TRUE; rdp_settings->order_support[NEG_PATBLT_INDEX] = FALSE; /* PATBLT not yet supported */ rdp_settings->order_support[NEG_SCRBLT_INDEX] = TRUE; rdp_settings->order_support[NEG_OPAQUE_RECT_INDEX] = TRUE; rdp_settings->order_support[NEG_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTIDSTBLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTIPATBLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTISCRBLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTIOPAQUERECT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTI_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->order_support[NEG_LINETO_INDEX] = FALSE; rdp_settings->order_support[NEG_POLYLINE_INDEX] = FALSE; rdp_settings->order_support[NEG_MEMBLT_INDEX] = bitmap_cache; rdp_settings->order_support[NEG_MEM3BLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MEMBLT_V2_INDEX] = bitmap_cache; rdp_settings->order_support[NEG_MEM3BLT_V2_INDEX] = FALSE; rdp_settings->order_support[NEG_SAVEBITMAP_INDEX] = FALSE; rdp_settings->order_support[NEG_GLYPH_INDEX_INDEX] = TRUE; rdp_settings->order_support[NEG_FAST_INDEX_INDEX] = TRUE; rdp_settings->order_support[NEG_FAST_GLYPH_INDEX] = TRUE; rdp_settings->order_support[NEG_POLYGON_SC_INDEX] = FALSE; rdp_settings->order_support[NEG_POLYGON_CB_INDEX] = FALSE; rdp_settings->order_support[NEG_ELLIPSE_SC_INDEX] = FALSE; rdp_settings->order_support[NEG_ELLIPSE_CB_INDEX] = FALSE; #else bitmap_cache = rdp_settings->BitmapCacheEnabled; rdp_settings->OsMajorType = OSMAJORTYPE_UNSPECIFIED; rdp_settings->OsMinorType = OSMINORTYPE_UNSPECIFIED; rdp_settings->DesktopResize = TRUE; rdp_settings->OrderSupport[NEG_DSTBLT_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_PATBLT_INDEX] = FALSE; /* PATBLT not yet supported */ rdp_settings->OrderSupport[NEG_SCRBLT_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_OPAQUE_RECT_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTIDSTBLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTIPATBLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTISCRBLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTIOPAQUERECT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTI_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_LINETO_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_POLYLINE_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MEMBLT_INDEX] = bitmap_cache; rdp_settings->OrderSupport[NEG_MEM3BLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MEMBLT_V2_INDEX] = bitmap_cache; rdp_settings->OrderSupport[NEG_MEM3BLT_V2_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_SAVEBITMAP_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_GLYPH_INDEX_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_FAST_INDEX_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_FAST_GLYPH_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_POLYGON_SC_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_POLYGON_CB_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_ELLIPSE_SC_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_ELLIPSE_CB_INDEX] = FALSE; #endif }
void guac_rdp_push_settings(guac_rdp_settings* guac_settings, freerdp* rdp) { BOOL bitmap_cache; rdpSettings* rdp_settings = rdp->settings; /* Authentication */ #ifdef LEGACY_RDPSETTINGS rdp_settings->domain = guac_settings->domain; rdp_settings->username = guac_settings->username; rdp_settings->password = guac_settings->password; #else rdp_settings->Domain = guac_settings->domain; rdp_settings->Username = guac_settings->username; rdp_settings->Password = guac_settings->password; #endif /* Connection */ #ifdef LEGACY_RDPSETTINGS rdp_settings->hostname = guac_settings->hostname; rdp_settings->port = guac_settings->port; #else rdp_settings->ServerHostname = guac_settings->hostname; rdp_settings->ServerPort = guac_settings->port; #endif /* Session */ #ifdef LEGACY_RDPSETTINGS rdp_settings->color_depth = guac_settings->color_depth; rdp_settings->width = guac_settings->width; rdp_settings->height = guac_settings->height; rdp_settings->shell = guac_settings->initial_program; rdp_settings->kbd_layout = guac_settings->server_layout->freerdp_keyboard_layout; #else rdp_settings->ColorDepth = guac_settings->color_depth; rdp_settings->DesktopWidth = guac_settings->width; rdp_settings->DesktopHeight = guac_settings->height; rdp_settings->AlternateShell = guac_settings->initial_program; rdp_settings->KeyboardLayout = guac_settings->server_layout->freerdp_keyboard_layout; #endif /* Performance flags */ #ifdef LEGACY_RDPSETTINGS rdp_settings->performance_flags = guac_rdp_get_performance_flags(guac_settings); #else rdp_settings->PerformanceFlags = guac_rdp_get_performance_flags(guac_settings); #endif /* Client name */ if (guac_settings->client_name != NULL) { #ifdef LEGACY_RDPSETTINGS strncpy(rdp_settings->client_hostname, guac_settings->client_name, RDP_CLIENT_HOSTNAME_SIZE - 1); #else strncpy(rdp_settings->ClientHostname, guac_settings->client_name, RDP_CLIENT_HOSTNAME_SIZE - 1); #endif } /* Console */ #ifdef LEGACY_RDPSETTINGS rdp_settings->console_session = guac_settings->console; rdp_settings->console_audio = guac_settings->console_audio; #else rdp_settings->ConsoleSession = guac_settings->console; rdp_settings->RemoteConsoleAudio = guac_settings->console_audio; #endif /* Audio */ #ifdef LEGACY_RDPSETTINGS #ifdef HAVE_RDPSETTINGS_AUDIOPLAYBACK rdp_settings->audio_playback = guac_settings->audio_enabled; #endif #else #ifdef HAVE_RDPSETTINGS_AUDIOPLAYBACK rdp_settings->AudioPlayback = guac_settings->audio_enabled; #endif #endif /* Device redirection */ #ifdef LEGACY_RDPSETTINGS #ifdef HAVE_RDPSETTINGS_DEVICEREDIRECTION rdp_settings->device_redirection = guac_settings->audio_enabled || guac_settings->drive_enabled || guac_settings->printing_enabled; #endif #else #ifdef HAVE_RDPSETTINGS_DEVICEREDIRECTION rdp_settings->DeviceRedirection = guac_settings->audio_enabled || guac_settings->drive_enabled || guac_settings->printing_enabled; #endif #endif /* Security */ switch (guac_settings->security_mode) { /* Standard RDP encryption */ case GUAC_SECURITY_RDP: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = TRUE; rdp_settings->tls_security = FALSE; rdp_settings->nla_security = FALSE; rdp_settings->encryption_level = ENCRYPTION_LEVEL_CLIENT_COMPATIBLE; rdp_settings->encryption_method = ENCRYPTION_METHOD_40BIT | ENCRYPTION_METHOD_128BIT | ENCRYPTION_METHOD_FIPS; #else rdp_settings->RdpSecurity = TRUE; rdp_settings->TlsSecurity = FALSE; rdp_settings->NlaSecurity = FALSE; rdp_settings->EncryptionLevel = ENCRYPTION_LEVEL_CLIENT_COMPATIBLE; rdp_settings->EncryptionMethods = ENCRYPTION_METHOD_40BIT | ENCRYPTION_METHOD_128BIT | ENCRYPTION_METHOD_FIPS; #endif break; /* TLS encryption */ case GUAC_SECURITY_TLS: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = FALSE; rdp_settings->tls_security = TRUE; rdp_settings->nla_security = FALSE; #else rdp_settings->RdpSecurity = FALSE; rdp_settings->TlsSecurity = TRUE; rdp_settings->NlaSecurity = FALSE; #endif break; /* Network level authentication */ case GUAC_SECURITY_NLA: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = FALSE; rdp_settings->tls_security = FALSE; rdp_settings->nla_security = TRUE; #else rdp_settings->RdpSecurity = FALSE; rdp_settings->TlsSecurity = FALSE; rdp_settings->NlaSecurity = TRUE; #endif break; /* All security types */ case GUAC_SECURITY_ANY: #ifdef LEGACY_RDPSETTINGS rdp_settings->rdp_security = TRUE; rdp_settings->tls_security = TRUE; rdp_settings->nla_security = TRUE; #else rdp_settings->RdpSecurity = TRUE; rdp_settings->TlsSecurity = TRUE; rdp_settings->NlaSecurity = TRUE; #endif break; } /* Authentication */ #ifdef LEGACY_RDPSETTINGS rdp_settings->authentication = !guac_settings->disable_authentication; rdp_settings->ignore_certificate = guac_settings->ignore_certificate; rdp_settings->encryption = TRUE; #else rdp_settings->Authentication = !guac_settings->disable_authentication; rdp_settings->IgnoreCertificate = guac_settings->ignore_certificate; rdp_settings->DisableEncryption = FALSE; #endif /* RemoteApp */ if (guac_settings->remote_app != NULL) { #ifdef LEGACY_RDPSETTINGS rdp_settings->workarea = TRUE; rdp_settings->remote_app = TRUE; rdp_settings->rail_langbar_supported = TRUE; #else rdp_settings->Workarea = TRUE; rdp_settings->RemoteApplicationMode = TRUE; rdp_settings->RemoteAppLanguageBarSupported = TRUE; rdp_settings->RemoteApplicationProgram = guac_settings->remote_app; rdp_settings->ShellWorkingDirectory = guac_settings->remote_app_dir; rdp_settings->RemoteApplicationCmdLine = guac_settings->remote_app_args; #endif } #ifdef HAVE_RDPSETTINGS_SENDPRECONNECTIONPDU /* Preconnection ID */ if (guac_settings->preconnection_id != -1) { rdp_settings->NegotiateSecurityLayer = FALSE; rdp_settings->SendPreconnectionPdu = TRUE; rdp_settings->PreconnectionId = guac_settings->preconnection_id; } /* Preconnection BLOB */ if (guac_settings->preconnection_blob != NULL) { rdp_settings->NegotiateSecurityLayer = FALSE; rdp_settings->SendPreconnectionPdu = TRUE; rdp_settings->PreconnectionBlob = guac_settings->preconnection_blob; } #endif /* Order support */ #ifdef LEGACY_RDPSETTINGS bitmap_cache = rdp_settings->bitmap_cache; rdp_settings->os_major_type = OSMAJORTYPE_UNSPECIFIED; rdp_settings->os_minor_type = OSMINORTYPE_UNSPECIFIED; rdp_settings->desktop_resize = TRUE; rdp_settings->order_support[NEG_DSTBLT_INDEX] = TRUE; rdp_settings->order_support[NEG_PATBLT_INDEX] = FALSE; /* PATBLT not yet supported */ rdp_settings->order_support[NEG_SCRBLT_INDEX] = TRUE; rdp_settings->order_support[NEG_OPAQUE_RECT_INDEX] = TRUE; rdp_settings->order_support[NEG_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTIDSTBLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTIPATBLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTISCRBLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTIOPAQUERECT_INDEX] = FALSE; rdp_settings->order_support[NEG_MULTI_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->order_support[NEG_LINETO_INDEX] = FALSE; rdp_settings->order_support[NEG_POLYLINE_INDEX] = FALSE; rdp_settings->order_support[NEG_MEMBLT_INDEX] = bitmap_cache; rdp_settings->order_support[NEG_MEM3BLT_INDEX] = FALSE; rdp_settings->order_support[NEG_MEMBLT_V2_INDEX] = bitmap_cache; rdp_settings->order_support[NEG_MEM3BLT_V2_INDEX] = FALSE; rdp_settings->order_support[NEG_SAVEBITMAP_INDEX] = FALSE; rdp_settings->order_support[NEG_GLYPH_INDEX_INDEX] = TRUE; rdp_settings->order_support[NEG_FAST_INDEX_INDEX] = TRUE; rdp_settings->order_support[NEG_FAST_GLYPH_INDEX] = TRUE; rdp_settings->order_support[NEG_POLYGON_SC_INDEX] = FALSE; rdp_settings->order_support[NEG_POLYGON_CB_INDEX] = FALSE; rdp_settings->order_support[NEG_ELLIPSE_SC_INDEX] = FALSE; rdp_settings->order_support[NEG_ELLIPSE_CB_INDEX] = FALSE; #else bitmap_cache = rdp_settings->BitmapCacheEnabled; rdp_settings->OsMajorType = OSMAJORTYPE_UNSPECIFIED; rdp_settings->OsMinorType = OSMINORTYPE_UNSPECIFIED; rdp_settings->DesktopResize = TRUE; rdp_settings->OrderSupport[NEG_DSTBLT_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_PATBLT_INDEX] = FALSE; /* PATBLT not yet supported */ rdp_settings->OrderSupport[NEG_SCRBLT_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_OPAQUE_RECT_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTIDSTBLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTIPATBLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTISCRBLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTIOPAQUERECT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MULTI_DRAWNINEGRID_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_LINETO_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_POLYLINE_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MEMBLT_INDEX] = bitmap_cache; rdp_settings->OrderSupport[NEG_MEM3BLT_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_MEMBLT_V2_INDEX] = bitmap_cache; rdp_settings->OrderSupport[NEG_MEM3BLT_V2_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_SAVEBITMAP_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_GLYPH_INDEX_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_FAST_INDEX_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_FAST_GLYPH_INDEX] = TRUE; rdp_settings->OrderSupport[NEG_POLYGON_SC_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_POLYGON_CB_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_ELLIPSE_SC_INDEX] = FALSE; rdp_settings->OrderSupport[NEG_ELLIPSE_CB_INDEX] = FALSE; #endif }