Review Request 115499: Season of KDE Project - KRFB

Amandeep Singh aman.dedman at gmail.com
Tue Feb 18 08:00:53 UTC 2014



> On Feb. 17, 2014, 9:32 p.m., George Kiagiadakis wrote:
> > libvncserver/main.c, lines 1045-1051
> > <https://git.reviewboard.kde.org/r/115499/diff/1/?file=242079#file242079line1045>
> >
> >     I'd rather avoid this change. Can't we force clients to disconnect from somewhere else in the krfb code? We should avoid changing libvncserver, as it is an external library and I was hoping that I could remove it from krfb and use the upstream one bundled with distributions. The only reason it exists here is because I needed to patch it a couple of years ago, but all my patches are now in version 0.9.9 upstream, so I want to remove it if possible.

The issue here is that rfbClientConnectionGone must be called on all the clients that are associated with the server, when we are stopping the server.
Now the server doesn't maintain the list of clients, and just calls rfbShutdownServer which iterates over the clients, calling rfbCloseClient on each. It misses calling rfbClientConnectionGone.

In case of closing the application, RfbServerManager's cleanup is responsible for calling stop() (via destructor). In such a case, RfbServerManager still has the client in it's list since the method stated above wasn't called which includes call to CLIENT_GONE_HOOK. 

We could add call to rfbClientConnectionGone for clients in the RfbServerManager's code, but then that will be invoked only when application is closing. We need to be able to start/stop server on user request.


- Amandeep


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/115499/#review50035
-----------------------------------------------------------


On Feb. 5, 2014, 3:51 p.m., Amandeep Singh wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/115499/
> -----------------------------------------------------------
> 
> (Updated Feb. 5, 2014, 3:51 p.m.)
> 
> 
> Review request for Telepathy and George Kiagiadakis.
> 
> 
> Repository: krfb
> 
> 
> Description
> -------
> 
> Season of KDE Project - KRFB
> 
> Status Quo
> -----------
> Currently KRFB works on an invite-only model, where the host user needs to create an invite via the Invitation Dialog.
> This provides the connection details (address and password), which must then be communicated to the remote user.
> No information about telepathy contacts with whom desktop can be shared is present in the KRFB Dialog.
> The implementation of RFB also lacks support of clipboard operations like cut and paste of text.
> 
> Changes
> -------
> Krfb modified to move away from invite-model, and modeled as a service that can be started/stopped.
> Bidirectional text-clipboard operations are supported.
> Telepathy contacts with rfb capability shown inside main window, with an option to share desktop.
> Desktop sharing password visible in main window, with option to change it.
> Unattended Access allowed with separate password.
> Fixed bugs in libvncserver responsible for KRFB crashing.
> Krfb now runs as KUniqueApplication.
> 
> All changes are present in the following clone of KRFB
> 
> Repository
> ----------
> http://quickgit.kde.org/?p=clones%2Fkrfb%2Famandeepsingh%2Fkrfb-sok.git
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt 78c19b3 
>   cmake/modules/FindKTp.cmake PRE-CREATION 
>   krfb/CMakeLists.txt bbc508d 
>   krfb/invitation.h 27dddeb 
>   krfb/invitation.cpp 5379060 
>   krfb/invitationmanager.h a611e48 
>   krfb/invitationmanager.cpp b9abe94 
>   krfb/invitationsrfbclient.h f263f64 
>   krfb/invitationsrfbclient.cpp bd5cff8 
>   krfb/invitationsrfbserver.h 9faecb6 
>   krfb/invitationsrfbserver.cpp 47ed934 
>   krfb/invitedialog.h 3e45bb1 
>   krfb/invitedialog.cpp e911fdb 
>   krfb/krfb.desktop 41d0fae 
>   krfb/krfb.kcfg acae17f 
>   krfb/main.cpp 8803baa 
>   krfb/mainwindow.h PRE-CREATION 
>   krfb/mainwindow.cpp PRE-CREATION 
>   krfb/manageinvitationsdialog.h 3740ebc 
>   krfb/manageinvitationsdialog.cpp 2c786a3 
>   krfb/pendingrfbclient.h c0524fe 
>   krfb/pendingrfbclient.cpp c16b045 
>   krfb/personalinvitedialog.h caadbb9 
>   krfb/personalinvitedialog.cpp 2851678 
>   krfb/rfbclient.h 7b46d3f 
>   krfb/rfbclient.cpp 9ab16eb 
>   krfb/rfbserver.h 6ef73e4 
>   krfb/rfbserver.cpp cd5d6c0 
>   krfb/trayicon.cpp 02ae7af 
>   krfb/tubesrfbclient.h 3908e47 
>   krfb/tubesrfbclient.cpp 2466826 
>   krfb/tubesrfbserver.h 596636c 
>   krfb/tubesrfbserver.cpp 575c3cd 
>   krfb/ui/configsecurity.ui 4afbb58 
>   krfb/ui/mainwidget.ui PRE-CREATION 
>   krfb/ui/manageinvitations.ui f727af6 
>   krfb/ui/personalinvitewidget.ui 5d12c2a 
>   libvncserver/main.c b47e873 
>   libvncserver/sockets.c e54252d 
> 
> Diff: https://git.reviewboard.kde.org/r/115499/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Amandeep Singh
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-telepathy/attachments/20140218/10e018cb/attachment-0001.html>


More information about the KDE-Telepathy mailing list