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

Clipboard sharing setting implementation for RDP protocol #951

Merged
merged 6 commits into from
Oct 4, 2018
Merged

Clipboard sharing setting implementation for RDP protocol #951

merged 6 commits into from
Oct 4, 2018

Conversation

CrAbelleira
Copy link
Contributor

Description

Implementation of clipboard sharing setting for RDP protocol.

Motivation and Context

This implementation provides de posibility of enabling or disabling clipboard sharing on RPD connections which can be usefull in multiple scenarios.
It solves the issue #416

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.

@CrAbelleira
Copy link
Contributor Author

Got no idea why this single test is failing

@sparerd sparerd added the Enhancement A new feature or improvement to an existing feature. label Apr 18, 2018
@sparerd sparerd self-assigned this Apr 18, 2018
@sparerd
Copy link
Contributor

sparerd commented Apr 18, 2018

Thanks for the PR @CrAbelleira! It looks like the test failure is due to the CSV file not having a heading for InheritRedirectClipboard. Adding that in the csv serializer WriteCsvHeader() method should resolve the issue

@CrAbelleira
Copy link
Contributor Author

Hi @sparerd.
I`ve just fixed the CSV Serializer as you told me to. All tests passed.
Thank you for your support.

@sparerd sparerd added this to the 1.77 milestone Apr 18, 2018
@kmscode
Copy link
Member

kmscode commented Jul 26, 2018

@sparerd Looks straightforward enough for 1.76 to me... Can we squeeze it in?

@sparerd
Copy link
Contributor

sparerd commented Jul 27, 2018

@kmscode I don't think we should. Though the change is small on the functionality side of things, it does introduce some risk on the serialization/deserialization side. I think we are close enough to getting v1.76 stable that we can start getting early v1.77 development builds out fairly soon.

@sparerd
Copy link
Contributor

sparerd commented Jul 27, 2018

@CrAbelleira Sorry for the delay in getting back to you about this. It looks like the Xml serializer/deserializer do not have entries for the RedirectClipboard setting. Could you add those in?

@CrAbelleira
Copy link
Contributor Author

Hi @sparerd. I`m little confused about how should I implement de Xml serializer/deserializer because of config versions. Could you provide me some support about how should I implement it?

@CrAbelleira
Copy link
Contributor Author

CrAbelleira commented Sep 24, 2018

I've just fixed the merging conflicts that showed up since the last develop merges.
I still waiting for some support in order to addapt XmlSerializar/Deserializer as I don't know how to manage "config versions"

@sparerd
Copy link
Contributor

sparerd commented Sep 30, 2018

Hey @CrAbelleira sorry for the delay.

Much of the serialization code needs to be redone since it is getting difficult to manage breaking changes. You can update the following files to finish your implementation:

  • XmlConnectionNodeSerializer26
    • Update the SetElementAttributes() and SetInheritanceAttributes() methods
  • XmlConnectionsDeserializer
    • Add a new version check at the bottom for your property: if (_confVersion >= 2.7)
  • CsvConnectionsDeserializerMremotengFormat
    • Update ParseConnectionInfo()
  • CsvConnectionsSerializerMremotengFormat
    • Update WriteCsvHeader() and SerializeConnectionInfo()

Optional, but encouraged:

  • RemoteDesktopConnectionManagerDeserializer
    • Find how RDCMan saves clipboard redirection and update the ConnectionInfoFromXml() method
  • RemoteDesktopConnectionDeserializer
    • Same as above, update method SetConnectionInfoParameter()

SQL server updates
If you are comfortable doing SQL server work, we will also need to add this property to the database de/serializer and create a schema upgrader. However, if you aren't comfortable with doing that then I'm happy to handle it instead.

  • Add a SqlVersion26To27Upgrader class in mRemoteV1\Config\Serializers\Versioning. Model it after the other upgraders and provide the correct ALTER TABLE sql command to add the property column
  • Update DataTableSerializer.CreateSchema() and DataTableSerializer.SerializeConnectionInfo()
  • Update DataTableDeserializer.PopulateConnectionInfoFromDatarow()

@CrAbelleira
Copy link
Contributor Author

Hi @sparerd. I've just implemented the changes you told me to. All except the SQL part.
A single test "ValidateSchema" is failing now but I couldn't find out why. I guess that that test is trying to find "RedirectClipboard" at 2.6 configuration version schema but 2.6 configuration shouldn't have that setting because its implemented in 2.7.

@sparerd
Copy link
Contributor

sparerd commented Oct 4, 2018

Thanks @CrAbelleira, I think it looks good. The failing test is for the XML schema change like you said. I'll fix that once the code is merged.

Thanks for your work!

@Avatar007z
Copy link

Did this ever got in? Just updated to 1.76.20.24615 on Windows and the option seems to not be there yet. There is also no mentioned of issue 951 in the change log / release notes.

@sparerd
Copy link
Contributor

sparerd commented Apr 15, 2019

This feature is only in the develop branch which is currently for v1.77.

v1.76 is only receiving bug fixes (on its own release branch).

@Avatar007z
Copy link

Thanks will give it a try :)

@Avatar007z
Copy link

Sorry to bother again, but I finally around to test this out and unfortunately cannot find an option to download a development compiled version :( Is there an official link? It would be a bit too much to compile it by myself.

@sparerd
Copy link
Contributor

sparerd commented May 8, 2019

@assenls There are 2 ways to get the latest pre-release (1.77) build:

Both download from the same source - the website just gives you the latest stable/prerelease versions.

@Avatar007z
Copy link

I am blind or just had a long day and did not at all make the connection between develop branch and pre-release ... Sorry to bother you and thanks!

@ghost
Copy link

ghost commented Jun 3, 2019

Is this planned for the VNC protocol?

This is really annoying because it will automatically copy anything I select, clearing the selection in the process. So Ctrl+A is impossible to properly use.

Oh and apparently I can't copy and paste files with Thunar on Xubuntu.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement A new feature or improvement to an existing feature.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants