Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with FreeRDP integration #20

Closed
akallabeth opened this issue Mar 6, 2024 · 2 comments
Closed

Issues with FreeRDP integration #20

akallabeth opened this issue Mar 6, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@akallabeth
Copy link

akallabeth commented Mar 6, 2024

The FreeRDP plugin forces antiquated drawing paths:

  1. OnChannelConnectedEventHandler does not handle GFX channel setup
  2. With FreeRDP 3 we´ve added some common channel setup code, call freerdp_client_OnChannelConnectedEventHandler if not handled in your own function (same for Disconnect handler)
  3. cb_authenticate_ex does not handle reason which is getting more important with each version ;)
  4. m_szRedirectionSoundParameters why do you force a specific backend? just let it be autodetected?
  5. you lack all setup of authentication related options, check the client/common/cmdline.c for details. (this is most likely the source of ERRINFO_DECRYPT_FAILED appears randomly. FreeRDP/FreeRDP#9937 ) overall, either you check which settings are modified with which command line with freerdp_client_settings_parse_command_line_arguments_ex or you use it directly from your application
  6. smartcard authentication and related stuff is not handled in UI
  7. your RabbitRemoteControl.sh is unnecessary, check RPATH settings ( https://cmake.org/cmake/help/latest/prop_tgt/INSTALL_RPATH.html )
  8. your library and exe installations do not properly set filenames / SOVERSION (got /tmp/release/bin/RabbitRemoteControlApp-v0.0.26-52-g8ae67434 as well as /tmp/release/bin/RabbitRemoteControlApp, /tmp/release/lib/libRabbitCommon.so.v2.0.3-1-g891d8b7 and /tmp/release/lib/libRabbitCommon.so but there should be /tmp/release/lib/libRabbitCommon.so -> /tmp/release/lib/libRabbitCommon.so.2 -> /tmp/release/lib/libRabbitCommon.so.2.0 -> /tmp/release/lib/libRabbitCommon.so.2.0.3 where /tmp/release/lib/libRabbitCommon.so is only insalled with development stuff
  9. your certificate related stuff, better use VerifyX509Certificate callback for your things and store the manually accepted certificates in your own certificate store instead of reusing the one of FreeRDP (you can use the qt certificate classes to check if a certificate is self signed or actually signed by an accepted authority and then only manually accept unsigned ones)
  10. better call freerdp_connect from the same thread all RDP related stuff is running in and not in cbClientStart
  11. you can call WaitForMultipleObjects with a timeout of 0 to not block in your processing routine
  12. rdpSettings are going to be opaque in future versions, you can build a version with that already with -DWITH_OPAQUE_SETTINGS=ON with FreeRDP 3.x versions
@akallabeth akallabeth added the bug Something isn't working label Mar 6, 2024
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 7, 2024
8 in KangLin/RabbitRemoteControl#20

SOVERSION

ABI version number of a shared library target.

For shared libraries VERSION and SOVERSION can be used to specify the build version and ABI version respectively. When building or installing appropriate symlinks are created if the platform supports symlinks and the linker supports so-names. If only one of both is specified the missing is assumed to have the same version number. SOVERSION is ignored if NO_SONAME property is set.

A common convention is to specify both VERSION and SOVERSION such that SOVERSION matches the first component of VERSION:

See: https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html#soversion
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 7, 2024
8 in KangLin/RabbitRemoteControl#20

SOVERSION

ABI version number of a shared library target.

For shared libraries VERSION and SOVERSION can be used to specify the build version and ABI version respectively. When building or installing appropriate symlinks are created if the platform supports symlinks and the linker supports so-names. If only one of both is specified the missing is assumed to have the same version number. SOVERSION is ignored if NO_SONAME property is set.

A common convention is to specify both VERSION and SOVERSION such that SOVERSION matches the first component of VERSION:

See: https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html#soversion
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 11, 2024
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 12, 2024
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 12, 2024
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 12, 2024
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 12, 2024
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 12, 2024
KangLin added a commit to KangLin/RabbitCommon that referenced this issue Mar 12, 2024
@KangLin
Copy link
Owner

KangLin commented Apr 10, 2024

m_szRedirectionSoundParameters why do you force a specific backend? just let it be autodetected?

Yes. I guess this is handled by the backend freerdp_client. The front-end only deals with UI dependencies. Reinvention of development can be avoided.

KangLin added a commit that referenced this issue Aug 1, 2024
KangLin added a commit that referenced this issue Aug 1, 2024
KangLin added a commit that referenced this issue Aug 1, 2024
KangLin added a commit that referenced this issue Aug 1, 2024
@KangLin
Copy link
Owner

KangLin commented Aug 15, 2024

@akallabeth Thank you review. Fix in v0.0.27.

@KangLin KangLin closed this as completed Aug 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants