Hi all, You can find the code on 'move-xfer-last' branch at https://gitlab.com/victortoso/spice-gtk.git There were a lot of changes based on last v3 review which makes a little bit hard to list them all. The goal is to improve file-transfer logic/design so it can handle per-file operations, errors, cancelation and progress information for the application but without dealing with protocol specifics. I hope we can re-use SpiceFileTransferTask in the future but flushing data using channel-webdav to have better Guest integration. SpiceFileTransferTask now has a spice_file_transfer_task_init_task_async/finish and spice_file_transfer_task_read_async/finish functions. These new functions does help dealing with errors IMHO and I really liked this approach instead the one in v3. As per Pavel suggestion, I tried to break a little bit more the patches to make it easier to review. Some patches might be squashed in the end or not, hopefully I did not make it harder to review :-) Cheers, toso Victor Toso (24): file-xfer: task-id to start with 1 file-xfer: get functions for SpiceFileTransferTask file-xfer: introduce _create_tasks() file-xfer: save GFileInfo for later usage file-xfer: introduce functions to init task async file-xfer: introduce functions to read file async main: to let SpiceFileTransferTask handle errors main: let channel-main handle file-xfer messages main: do not check for xfer-task errors file-xfer: improve helper function to queue agent message file-xfer: create helper function to send progress file-xfer: a FileTransferOperation per transfer call file-xfer: inform agent of errors only when task finished file-xfer: call progress_callback per FileTransferOperation file-xfer: call user callback once per operation file-xfer: do not send EOF to the agent file-xfer: Keep namespace of private function file-xfer: use helper function for debug xfer-task main: use xfer_task instead of task or self file-xfer: move to spice-file-transfer-task.c tests: file-transfer include simple tests tests: file-transfer cancel on task init tests: file-transfer cancel on read async tests: file-transfer agent cancel src/Makefile.am | 2 + src/channel-main.c | 903 +++++++++++------------------------- src/spice-file-transfer-task-priv.h | 59 +++ src/spice-file-transfer-task.c | 713 ++++++++++++++++++++++++++++ tests/Makefile.am | 2 + tests/file-transfer.c | 356 ++++++++++++++ 6 files changed, 1390 insertions(+), 645 deletions(-) create mode 100644 src/spice-file-transfer-task-priv.h create mode 100644 src/spice-file-transfer-task.c create mode 100644 tests/file-transfer.c -- 2.7.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel