diff options
Diffstat (limited to 'x11vnc/connections.c')
-rw-r--r-- | x11vnc/connections.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/x11vnc/connections.c b/x11vnc/connections.c index 61e59b4..5e5ebd4 100644 --- a/x11vnc/connections.c +++ b/x11vnc/connections.c @@ -657,6 +657,12 @@ void client_gone(rfbClientPtr client) { if (unixpw_in_progress && unixpw_client) { if (client == unixpw_client) { unixpw_in_progress = 0; + screen->permitFileTransfer = unixpw_file_xfer_save; + if ((filexfer = unixpw_tightvnc_xfer_save)) { +#ifdef LIBVNCSERVER_WITH_TIGHTVNC_FILETRANSFER + rfbRegisterTightVNCFileTransferExtension(); +#endif + } unixpw_client = NULL; copy_screen(); } @@ -2155,6 +2161,15 @@ enum rfbNewClientAction new_client(rfbClientPtr client) { unixpw_in_progress = 1; unixpw_client = client; unixpw_login_viewonly = 0; + + unixpw_file_xfer_save = screen->permitFileTransfer; + screen->permitFileTransfer = FALSE; + unixpw_tightvnc_xfer_save = filexfer; + filexfer = 0; +#ifdef LIBVNCSERVER_WITH_TIGHTVNC_FILETRANSFER + rfbUnregisterTightVNCFileTransferExtension(); +#endif + if (client->viewOnly) { unixpw_login_viewonly = 1; client->viewOnly = FALSE; |