Commit Graph

3958 Commits

Author SHA1 Message Date
Armin Novak
eca4017c8b [client,sdl] enable multimon support for display channel 2023-07-31 13:41:26 +02:00
Armin Novak
aa2c48840a [client,sdl] fix high dpi detection
* convert dpi value to percentage used by RDP
* fix detection of current monitor resolution for SDL windows
2023-07-31 13:41:26 +02:00
Dan Holliday
1d64c8d93c Started to add support for multi-monitor. 2023-07-31 13:41:26 +02:00
Dan Holliday
75bc1505ab Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session. 2023-07-31 13:41:26 +02:00
Dan Holliday
7234b0a2f1 Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session. 2023-07-31 13:41:26 +02:00
Dan Holliday
8c584c29dd Started to add support for multi-monitor. 2023-07-31 13:41:26 +02:00
Dan Holliday
4eee7a54ad Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session. 2023-07-31 13:41:26 +02:00
Armin Novak
10386e73bc [client,common] do not swap drive name,path for wildcards
the convenience feature to allow name,path or path,name syntax for drive
did not check for path being one of the wildcard symbols.
2023-07-31 10:12:23 +02:00
Armin Novak
03b78dd57b [aad] print http status response message 2023-07-28 16:42:23 +02:00
Armin Novak
df3bed95a5 [client,windows] fix cast warnings 2023-07-28 15:48:32 +02:00
Armin Novak
3df928a8d2 [client,sdl] fixed member initialization order and casts 2023-07-28 13:42:12 +02:00
Armin Novak
ffacfc0432 [client,windows] fix const warnings 2023-07-28 13:42:12 +02:00
Armin Novak
78cea184aa [client,windows] remove unused label 2023-07-28 13:42:12 +02:00
Armin Novak
78429b3176 [client,common] fixed sign warnings 2023-07-27 21:05:43 +02:00
Armin Novak
8c26c44d18 [client,common] fix format string arguments 2023-07-27 20:02:43 +02:00
Armin Novak
e61880d077 [standard] replace __FUNCTION__ with __func__ 2023-07-27 20:02:43 +02:00
Armin Novak
9ea1ab285b [client,sdl] set gui consent message 2023-07-26 20:50:21 +02:00
Armin Novak
117fc17292 [client,common] fix leak in rdp parser 2023-07-26 20:26:59 +02:00
Armin Novak
4f0ca73be6 [cmake] set MSVC runtime for SDL client 2023-07-26 16:19:07 +02:00
fifthdegree
16902e4c20 Parse arm and aad options in rdp(w) files
- enablerdsaadauth
- resourceprovider
2023-07-26 09:44:30 +02:00
Armin Novak
1abc3da4e0 [client,common] respect +force-console-callbacks
Set GetAccessToken to console edition too
2023-07-25 15:40:06 +02:00
Armin Novak
0cd774d2c0 [client,sdl] fix cleanup order
destroy SDL_Renderer before SDL_Window
2023-07-25 09:11:11 +02:00
Armin Novak
667f7e6f0d [cmake] do not always build client-common
if -DWITH_CLIENT_COMMON=OFF ignore building common subdirectory
2023-07-25 07:29:36 +02:00
Armin Novak
4816a7d2a5 [cmake] require freetype for sdl2ttf 2023-07-24 10:49:38 +02:00
Armin Novak
315acc6aa9 [client,sdl] fix std::vector initialization
MSVC 2013 does not like too large vector initialization, work around
with https://stackoverflow.com/questions/31028941/how-to-avoid-compiler-limit-compiler-stack-overflow-with-large-vector-inits/31029335#31029335
2023-07-24 10:49:38 +02:00
Armin Novak
f00e73cec4 [client,sdl] fix constructor, initialize pointers
some initialization might fail, so initialize them beforehand.
2023-07-24 10:49:38 +02:00
Armin Novak
a5ea634516 [core] fix cJSON compat
* only export used symbols, provide prototypes when required
* clean up some length checks
2023-07-24 09:54:49 +02:00
akallabeth
5de7887d93 start new development cycle after 3.0.0-beta1 release 2023-07-21 16:04:49 +02:00
Armin Novak
f08d59ca5f update version to 3.0.0-beta1 2023-07-21 16:04:35 +02:00
akallabeth
80091cba6a [client,sdl] add MSVC macro for missing noexcept 2023-07-21 14:53:19 +02:00
akallabeth
33d8e8e41b [client,sdl] replace memset with c++ string iteration 2023-07-21 14:53:19 +02:00
akallabeth
830d1e17b6 [utils] improve http request logging 2023-07-21 14:53:19 +02:00
akallabeth
9eb80ffb19 [client,sdl] add dialog paste support 2023-07-21 14:53:19 +02:00
akallabeth
6be08815e5 [client,sdl] add OpenSans license and ttf font 2023-07-21 09:50:02 +02:00
Armin Novak
b28521d2d9 [client,sdl] use TTF_OpenFontRW
In combination with SDL_RWFromConstMem the font can be embedded without
using an intermediate file to load it from.
2023-07-21 09:50:02 +02:00
akallabeth
b259545bbb [client,sdl] update AAD/AVC callback handling 2023-07-21 09:14:54 +02:00
Armin Novak
1b79b60634 added webview scheme handler 2023-07-21 09:14:54 +02:00
akallabeth
8b0f4ca106 [client,sdl] move webview to static lib
* move to static lib aad-view
* add support for https://github.com/webview/webview (e.g. use native
  webview if available)
2023-07-21 09:14:54 +02:00
Armin Novak
49eaf78515 [client,cmdline] add options for /list:
* /list:smartcard now allows /list:smartcard:<optional> to use different
  pkcs11 modules and settings
* /list:kbd-lang now allows /list:kbd-lang:LANG_* to filter languages
2023-07-20 22:08:27 +02:00
Armin Novak
06fd58264e [client,sdl] add a simple test for dialogs 2023-07-20 14:25:08 +02:00
Armin Novak
1a62103a08 [client,sdl] add support for win32 executables
Allow building with support for console or WinMain applications
2023-07-20 14:25:08 +02:00
Armin Novak
3d1bb4e1d9 [client,common] allow forcing default callbacks
All clients can implement their own callbacks for
certificate/credential/smartcard/... but there is a common (default)
implementation for all clients.
with the new setting FreeRDP_UseCommonStdioCallbacks it is now possible
to force these over the client implementation provided ones
2023-07-20 14:25:08 +02:00
akallabeth
97415f0d52 [client,sdl] add user dialogs 2023-07-20 14:25:08 +02:00
akallabeth
a0d38914d6 [core,aad] refactor use of cJSON
* link cJSON public to FreeRDP
* export compatibility functions for older versions of cJSON
2023-07-20 14:20:28 +02:00
akallabeth
0bc1a859e2 [client,common] add cJSON compat 2023-07-20 14:20:28 +02:00
akallabeth
a9aba69567 [client,common] fix missing link of CJSON 2023-07-20 14:20:28 +02:00
akallabeth
734117351d [aad,avc] unify callbacks to GetAccessToken
The AAD and AVD authentication mechanisms both need an OAuth2 token.
They only differ in the provided arguments, so unify the callbacks into
a single one with variable argument lists.
2023-07-20 14:20:28 +02:00
fifthdegree
d309fcd6e8 Restructure Azure AD related stuff
- Move responsibility for obtaining access tokens to clients
- Add function for getting access tokens for AVD
- Get correct server hostname during AVD setup
- Add utility function for doing http requests
2023-07-20 14:20:28 +02:00
Pascal Nowack
d7d3055b5f X11/cliprdr: Rework server to client clipboard handling
The purpose of clipboard data locking is to make the other peer
retaining the current file list until a pending paste operation is done,
even though the clipboard selection changed.
As it may be difficult to determine, when a lock is needed, imitate the
same behaviour as mstsc:
When the server side supports clipboard data locking, always attempt to
lock the file list on the server regardless of what is advertised in a
FormatList PDU.
The Lock Clipboard Data PDU can even be already sent, before the
Format List Response PDU is sent.
This is also what mstsc, does: First, lock the new (potential) file
list, then unlock the file list, when the pending paste operation is
done.
So, rework the current clipboard implementation in that direction.

Since the implementation for timeouts for old file lists is a bit hard,
for now always force unlock pending locks, when the selection changes.
However, timeouts for old file lists can still be added in the future.

The reworked clipboard handling is done with the help of three hash
tables:

1. The inode table: This hash table manages all inodes for each file.
   The keys in this table are the inodes themselves, while the values
   the files and directories and their attributes (file size, last write
   time, etc.).
2. The clipdata table: This table manages the locks for each file list.
   The keys in this table represent the clip data id and the values the
   clip data entries, which have a reference to the clip data dir, a
   directory containing the whole selection, and some helper attributes,
   like the clip data id itself.
3. The request table: Every file size or file range request is managed
   here. When a FileContentsRequest is made, its stream id with the
   respective details are added to this table. When a response is
   received, these details can then be easily looked up here.
2023-07-20 11:36:11 +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