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.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)

View File

@ -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))