[gnome-remote-desktop] rdp: Allow submitting clipDataIds for FileContentsRequests
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-remote-desktop] rdp: Allow submitting clipDataIds for FileContentsRequests
- Date: Fri, 30 Apr 2021 15:15:57 +0000 (UTC)
commit 45afc12feb7a59db83fdacabee53053a23a7e2d2
Author: Pascal Nowack <Pascal Nowack gmx de>
Date: Sat Feb 27 14:01:46 2021 +0100
rdp: Allow submitting clipDataIds for FileContentsRequests
This is a requirement for the locking implementation for client-to-
server file transfer.
src/grd-clipboard-rdp.c | 13 ++++++++++---
src/grd-clipboard-rdp.h | 8 ++++++--
src/grd-rdp-fuse-clipboard.c | 6 ++++--
3 files changed, 20 insertions(+), 7 deletions(-)
---
diff --git a/src/grd-clipboard-rdp.c b/src/grd-clipboard-rdp.c
index 2c62ad8..49df9e0 100644
--- a/src/grd-clipboard-rdp.c
+++ b/src/grd-clipboard-rdp.c
@@ -473,7 +473,9 @@ get_remote_format_data (GrdClipboardRdp *clipboard_rdp,
void
grd_clipboard_rdp_request_remote_file_size_async (GrdClipboardRdp *clipboard_rdp,
uint32_t stream_id,
- uint32_t list_index)
+ uint32_t list_index,
+ gboolean has_clip_data_id,
+ uint32_t clip_data_id)
{
CliprdrServerContext *cliprdr_context = clipboard_rdp->cliprdr_context;
CLIPRDR_FILE_CONTENTS_REQUEST file_contents_request = {0};
@@ -483,6 +485,8 @@ grd_clipboard_rdp_request_remote_file_size_async (GrdClipboardRdp *clipboard_rdp
file_contents_request.listIndex = list_index;
file_contents_request.dwFlags = FILECONTENTS_SIZE;
file_contents_request.cbRequested = 0x8;
+ file_contents_request.haveClipDataId = has_clip_data_id;
+ file_contents_request.clipDataId = clip_data_id;
cliprdr_context->ServerFileContentsRequest (cliprdr_context,
&file_contents_request);
@@ -493,7 +497,9 @@ grd_clipboard_rdp_request_remote_file_range_async (GrdClipboardRdp *clipboard_rd
uint32_t stream_id,
uint32_t list_index,
uint64_t offset,
- uint32_t requested_size)
+ uint32_t requested_size,
+ gboolean has_clip_data_id,
+ uint32_t clip_data_id)
{
CliprdrServerContext *cliprdr_context = clipboard_rdp->cliprdr_context;
CLIPRDR_FILE_CONTENTS_REQUEST file_contents_request = {0};
@@ -505,7 +511,8 @@ grd_clipboard_rdp_request_remote_file_range_async (GrdClipboardRdp *clipboard_rd
file_contents_request.nPositionLow = offset & 0xFFFFFFFF;
file_contents_request.nPositionHigh = offset >> 32 & 0xFFFFFFFF;
file_contents_request.cbRequested = requested_size;
- file_contents_request.haveClipDataId = FALSE;
+ file_contents_request.haveClipDataId = has_clip_data_id;
+ file_contents_request.clipDataId = clip_data_id;
cliprdr_context->ServerFileContentsRequest (cliprdr_context,
&file_contents_request);
diff --git a/src/grd-clipboard-rdp.h b/src/grd-clipboard-rdp.h
index a832c56..8db6c8b 100644
--- a/src/grd-clipboard-rdp.h
+++ b/src/grd-clipboard-rdp.h
@@ -36,12 +36,16 @@ GrdClipboardRdp *grd_clipboard_rdp_new (GrdSessionRdp *session_rdp,
void grd_clipboard_rdp_request_remote_file_size_async (GrdClipboardRdp *clipboard_rdp,
uint32_t stream_id,
- uint32_t list_index);
+ uint32_t list_index,
+ gboolean has_clip_data_id,
+ uint32_t clip_data_id);
void grd_clipboard_rdp_request_remote_file_range_async (GrdClipboardRdp *clipboard_rdp,
uint32_t stream_id,
uint32_t list_index,
uint64_t offset,
- uint32_t requested_size);
+ uint32_t requested_size,
+ gboolean has_clip_data_id,
+ uint32_t clip_data_id);
#endif /* GRD_CLIPBOARD_RDP_H */
diff --git a/src/grd-rdp-fuse-clipboard.c b/src/grd-rdp-fuse-clipboard.c
index 9b0c1a2..9449704 100644
--- a/src/grd-rdp-fuse-clipboard.c
+++ b/src/grd-rdp-fuse-clipboard.c
@@ -489,7 +489,8 @@ request_file_size_async (GrdRdpFuseClipboard *rdp_fuse_clipboard,
" %u", fuse_file->filename, rdp_fuse_request->stream_id);
grd_clipboard_rdp_request_remote_file_size_async (clipboard_rdp,
rdp_fuse_request->stream_id,
- fuse_file->list_idx);
+ fuse_file->list_idx,
+ FALSE, 0);
}
static void
@@ -517,7 +518,8 @@ request_file_range_async (GrdRdpFuseClipboard *rdp_fuse_clipboard,
grd_clipboard_rdp_request_remote_file_range_async (clipboard_rdp,
rdp_fuse_request->stream_id,
fuse_file->list_idx,
- offset, requested_size);
+ offset, requested_size,
+ FALSE, 0);
}
static FuseFile *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]