Transmit home directory when sending so filenames can be resolved

Also only send metadata if permission granted by user
This commit is contained in:
Kovid Goyal 2021-10-21 20:06:53 +05:30
parent a95a1f1158
commit b51be8382f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 4 additions and 4 deletions

View File

@ -20,7 +20,7 @@ from typing import (
) )
from kittens.transfer.librsync import PatchFile, signature_of_file 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 ( from kitty.fast_data_types import (
FILE_TRANSFER_CODE, OSC, add_timer, get_boss, get_options FILE_TRANSFER_CODE, OSC, add_timer, get_boss, get_options
) )
@ -653,7 +653,7 @@ class FileTransmission:
if asd.send_errors: if asd.send_errors:
self.send_transmission_error(asd.id, err) self.send_transmission_error(asd.id, err)
return return
if asd.spec_complete: if asd.spec_complete and asd.accepted:
self.send_metadata_for_send_transfer(asd) self.send_metadata_for_send_transfer(asd)
return return
if not asd.accepted: if not asd.accepted:
@ -688,7 +688,7 @@ class FileTransmission:
self.write_ftc_to_child(ftc) self.write_ftc_to_child(ftc)
sent = True sent = True
if sent: 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: else:
self.send_status_response(code=ErrorCode.ENOENT, request_id=asd.id, msg='No files found') self.send_status_response(code=ErrorCode.ENOENT, request_id=asd.id, msg='No files found')
self.drop_send(asd.id) self.drop_send(asd.id)

View File

@ -149,7 +149,7 @@ class TestFileTransmission(BaseTest):
self.assertResponses(ft, status='OK') self.assertResponses(ft, status='OK')
ft.handle_serialized_command(serialized_cmd(action='file', file_id='missing', name='XXX')) 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.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() ft = FileTransmission()
self.responses = [] self.responses = []
ft.handle_serialized_command(serialized_cmd(action='receive', size=2)) ft.handle_serialized_command(serialized_cmd(action='receive', size=2))