From b51be8382f2983f23ada1df942c75bbe02cba09b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 21 Oct 2021 20:06:53 +0530 Subject: [PATCH] Transmit home directory when sending so filenames can be resolved Also only send metadata if permission granted by user --- kitty/file_transmission.py | 6 +++--- kitty_tests/file_transmission.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kitty/file_transmission.py b/kitty/file_transmission.py index ed1ac7345..f29f861dc 100644 --- a/kitty/file_transmission.py +++ b/kitty/file_transmission.py @@ -20,7 +20,7 @@ from typing import ( ) from kittens.transfer.librsync import PatchFile, signature_of_file -from kittens.transfer.utils import abspath, expand_home +from kittens.transfer.utils import abspath, expand_home, home_path from kitty.fast_data_types import ( FILE_TRANSFER_CODE, OSC, add_timer, get_boss, get_options ) @@ -653,7 +653,7 @@ class FileTransmission: if asd.send_errors: self.send_transmission_error(asd.id, err) return - if asd.spec_complete: + if asd.spec_complete and asd.accepted: self.send_metadata_for_send_transfer(asd) return if not asd.accepted: @@ -688,7 +688,7 @@ class FileTransmission: self.write_ftc_to_child(ftc) sent = True if sent: - self.send_status_response(code=ErrorCode.OK, request_id=asd.id) + self.send_status_response(code=ErrorCode.OK, request_id=asd.id, name=home_path()) else: self.send_status_response(code=ErrorCode.ENOENT, request_id=asd.id, msg='No files found') self.drop_send(asd.id) diff --git a/kitty_tests/file_transmission.py b/kitty_tests/file_transmission.py index 25f089d9c..45c0747bd 100644 --- a/kitty_tests/file_transmission.py +++ b/kitty_tests/file_transmission.py @@ -149,7 +149,7 @@ class TestFileTransmission(BaseTest): self.assertResponses(ft, status='OK') ft.handle_serialized_command(serialized_cmd(action='file', file_id='missing', name='XXX')) self.responses.append(response(status='ENOENT:Failed to read spec', file_id='missing')) - self.assertResponses(ft, status='OK') + self.assertResponses(ft, status='OK', name=home) ft = FileTransmission() self.responses = [] ft.handle_serialized_command(serialized_cmd(action='receive', size=2))