Commit Graph

135 Commits

Author SHA1 Message Date
David Fort
aebe9742e0 [client,win32] Child session fixes
It seems like WaitFor[Single|Multiple]Object calls aren't reliable on pipes, especially
on the pipe opened for childSession access. The object can be marked as signaled even if
no data is available, making the connection laggy and unresponsive (nearly unusable in some
cases).
This patch works around that by using ReadFileEx() with overlapped instead of simple
ReadFile() and use asynchronous reads.
2024-03-01 09:46:53 +01:00
akallabeth
d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +01:00
Stefan Koell
155cd2e561 Fix DPI issue when parent-window specified 2023-11-28 12:25:07 +01:00
David Fort
137f9fc2f2 [client,win]: warning fixes and opaque settings fixes 2023-11-25 08:00:27 +01:00
Armin Novak
9261f5c001 [client,windows] fix getter for ParentWindowId 2023-11-24 18:19:03 +01:00
akallabeth
4e438d1c3e [client] make settings opaque 2023-11-24 14:54:56 +01:00
Armin Novak
60ceff95c5 [fflush] remove of unnecessary fflush 2023-11-20 18:00:42 +01:00
Armin Novak
78cea184aa [client,windows] remove unused label 2023-07-28 13:42:12 +02:00
2fly2
7f3390ef88 fix the issue of incorrect display of remote desktop cursor
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setcursor
"If your application must set the cursor while it is in a window, make sure the class cursor for the specified window's class is set to NULL. If the class cursor is not NULL, the system restores the class cursor each time the mouse is moved."
2023-07-19 08:21:43 +02:00
Armin Novak
9cfde30ec0 [client,windows] implement AuthenticateEx
the newer callback provides more options (e.g. smartcard pin, ...)
2023-07-17 14:09:44 +02:00
Armin Novak
9f1bcc07b6 [client,windows] use CredUI flag CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS 2023-04-05 11:42:06 +02:00
Armin Novak
1e63d8c493 [utils,passphrase] use CredUI on windows 2023-04-05 11:42:06 +02:00
Armin Novak
659baa905c [utils] fix windows console read
On windows freerdp_interruptible_getc did not work at all. Fix this so
that reading characters works. This still does not hide input for
passwords or is actually interruptible, but at least it reads the data
correctly.
2023-04-05 11:42:06 +02:00
Armin Novak
39b3847428 [client,windows] fix pointer type 2023-03-13 09:36:07 +01:00
Armin Novak
5829079756 [client,windows] remove calls to now private functions 2023-03-05 17:03:18 +01:00
Martin Fleisz
1bec63c2f2 client/win: Fix invalid ShowWindow call from gfx thread
ShowWindow must be called from the thread that owns the window.
Currently it might be called from the gfx channel thread which causes
random app hangs/window not showing up issues.
2023-02-16 10:41:21 +01:00
Armin Novak
5d97a03bf4 [client] auto intialize callbacks
initialize all message/user query callbacks with client_cli_*
2023-02-15 13:34:18 +01:00
akallabeth
5799fb2018 Replace ConvertFromUnicode and ConvertToUnicode
* Use new ConvertUtf8ToWChar, ConvertUtf8NToWChar,
  ConvertUtf8ToWCharAlloc and ConvertUtf8NToWCharAlloc
* Use new ConvertWCharToUtf8, ConvertWCharNToUtf8,
  ConvertWCharToUtf8Alloc and ConvertWCharNToUtf8Alloc
* Use new Stream UTF16 to/from UTF8 read/write functions
* Use new settings UTF16 to/from UTF8 read/write functions
2022-11-28 10:42:36 +01:00
akallabeth
d2ab631c40
Test uri fix (#8232)
* Fixed TestUri unit test

* Make proper unit test out of the test function
* Add proper test cases

* Replace FindFirstFileA with FindFirstFileW for addins

This allows addin paths to contain unicode symbols.

* Fixed parse_uri_to_local_file definition

* Move to common clipboard.c file
* Move to header file so it can be included in test case

* Added WINPR_LOCAL for test builds

This macro exports internal functions in case of a unit test build
This way unit tests can access these without other workarounds.

* Fixed typo in function name is_dos_driver

* Cleaned up FindFirstFileW call

Use a wrapper function to convert to unicode and call the function

* Cleaned up BUILD_TESTING and EXPORT_ALL_SYMBOLS

* EXPORT_ALL_SYMBOLS now does as the name implies and exports all
  non static functions/variables from the library.
* BUILD_TESTING now only sets the defines for test code and
  activates EXPORT_ALL_SYMBOLS to allow tests to access internal
  code

* Fixed windows client warnings

* disable CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
2022-09-26 11:22:02 +02:00
garbb
22bd0a43e6 add windows client assistance request control menu item 2022-09-16 08:47:06 +02:00
garbb
3d12e4e8ff do not resize client window if emart sizing is enabled
If smart-sizing option is enabled in windows client and the server's desktop resolution changes, do not change the size of the client window.
This is because I would assume that if the user has enabled smart-sizing, they would intend for the window to be set to a particular size and not change.
Also, when connecting to windows 10 client, `wf_desktop_resize()` is called once just after connect and so if wfreerdp is run with `/smart-sizing:WxH` then the window will start at the size `WxH` but then immediately change to the desktop resolution of the server which makes the `/smart-sizing:WxH` parameter effectively do nothing.
2022-09-12 09:23:05 +02:00
garbb
ef5316ca1d Update wf_client.c 2022-09-12 08:40:10 +02:00
garbb
c5573371c2 Update wf_client.c 2022-09-12 08:40:10 +02:00
garbb
bb487f045a Update wf_client.c 2022-09-12 08:40:10 +02:00
Kang Lin
98db5691e1
FIX: error checking (#8181) 2022-09-07 09:23:48 +02:00
akallabeth
ebf5de1d1d Preset LoadChannels function pointer 2022-06-29 09:18:53 +02:00
akallabeth
bc8b4ade1c reformatted 2022-06-23 08:48:39 +02:00
akallabeth
650a275ceb Added new client callback LoadChannels and freerdp_client_load_channels
Split channel loading from PreConnect as it might be necessary to
reinitialize channels on redirect
2022-06-23 07:45:55 +02:00
akallabeth
73cdcdfe09
Logging and parser fixes (#7796)
* Fixed remdesk settings pointer

* Fixed sign warnings in display_write_monitor_layout_pdu

* Use freerdp_abort_connect_context and freerdp_shall_disconnect_context

* Added and updates settings

* info assert/dynamic timezone

* mcs assert/log/flags

* Fixed and added assertions for wStream

* Unified stream length checks

* Added new function to check for lenght and log
* Replace all usages with this new function

* Cleaned up PER, added parser logging

* Cleaned up BER, added parser logging

* log messages

* Modified Stream_CheckAndLogRequiredLengthEx

* Allow custom format and options
* Add Stream_CheckAndLogRequiredLengthExVa for prepared va_list

* Improved Stream_CheckAndLogRequiredLength

* Now have log level adjustable
* Added function equivalents for existing logger
* Added a backtrace in case of a failure is detected

* Fixed public API input checks
2022-04-19 14:29:17 +02:00
Stefan Koell
e48d3e509a winpr: fix cache assertion before it's been created 2022-04-08 11:26:29 +02:00
akallabeth
14568872a9
Instance cleanup (#7738)
* Cleaned up freerdp::autodetect

* Deprecate freerdp::input

* Deprecated freerdp::update

* Deprecated freerdp::settings

* Deprecated freerdp::autodetect

* Removed rdpTransport::settings

* Deprecated freerdp_per::update|settings|autodetect

* Fixed mac client and server compilation

* Fixed windows compilation

* Added deprecation warnings

* Fixed initialization of structs.

* Fixed android build

* Fixed freerdp_client_context_new const correctness

* Fixed checks for android implementation

Replaced checks with assertions where appropriate

* Fixed checks for windows client

Replaced checks with assertions where appropriate

* Fixed proxy client pointer dereference
2022-03-23 13:18:35 +01:00
Armin Novak
71aac852d6 Remove async-input from clients 2022-03-08 15:37:19 +01:00
Armin Novak
4d03d7c0bf Freerdp remove #ifdef HAVE_CONFIG_H 2022-03-03 11:26:48 +01:00
Armin Novak
b2ad47a809 Reorganized FreeRDP headers 2022-03-03 11:26:48 +01:00
akallabeth
121e736694 Use _vsnwprintf instead of vswprintf_s 2022-02-28 16:49:18 +01:00
akallabeth
8b3f9431de Cleanup/code formatting 2022-02-22 09:44:13 +01:00
akallabeth
b2b70fcf6d Use common client channel handling 2022-02-22 09:44:13 +01:00
akallabeth
cdbfff87ea Unified client stop 2022-02-22 09:44:13 +01:00
akallabeth
7641710f60 Use a client/common context component
* Allows moving common client code from specific client to a
  generic client/common implementation
2022-02-22 09:44:13 +01:00
zbstao
bab45ff7da Fixed invalid password prompt on Windows system
Fixed invalid password prompt on Windows system
2022-02-17 11:01:34 +00:00
Armin Novak
be5ace1123 Fixed #7529: Adjust windows client update area
When scrollbars are used, the update area needs to be adjusted.
2022-01-10 13:09:36 +01:00
Armin Novak
f9c91f69b4 Removed winpr credui includes 2021-12-23 14:27:12 +01:00
akallabeth
55f32bec8f Log tty mode for windows client 2021-11-24 10:18:49 +01:00
David Fort
67986ea298 Fix compilation with mingw
This patch addresses some issues when compiling against mingw. With these changes
FreeRDP can be compiled out-of-the box on a Ubuntu 20.04.
2021-11-15 09:23:16 +01:00
Alexandru Bagu
a131949001 temporary trust certificate when helped by local cert store 2021-11-02 09:52:23 +01:00
Alexandru Bagu
391f2f7c4a no need to check for null on derPubKey 2021-10-23 12:19:05 +02:00
Alexandru Bagu
81343835e7 update wf_report_error
using dynamically allocated derPubKey as the pem length can vary
moved declarations to the top of the function in wf_verify_certificate_ex
2021-10-23 12:19:05 +02:00
Alexandru Bagu
72d22b2236 add option to validate certificates against windows certificate store 2021-10-23 12:19:05 +02:00
Alexandru Bagu
86e1865ef4 move taskBarList into wfc
use TRUE instead of true
2021-10-22 11:38:20 +02:00
Alexandru Bagu
3bc38aaf23 remove progress bar after window is visible
* set higher limits for width/height (widescreens are a thing now)
2021-10-22 11:38:20 +02:00