More misc send fixes

This commit is contained in:
Kovid Goyal
2023-07-02 12:08:37 +05:30
parent 4341599ac3
commit d4127229b6
2 changed files with 11 additions and 5 deletions

View File

@@ -330,15 +330,15 @@ func NewFileTransmissionCommand(serialized string) (ans *FileTransmissionCommand
func split_for_transfer(data []byte, file_id string, mark_last bool, callback func(*FileTransmissionCommand)) {
const chunk_size = 4096
for len(data) > 0 {
ac := Action_data
if mark_last && len(data) <= chunk_size {
ac = Action_end_data
}
chunk := data
if len(chunk) > chunk_size {
chunk = data[:chunk_size]
}
callback(&FileTransmissionCommand{Action: ac, File_id: file_id, Data: chunk})
data = data[len(chunk):]
ac := Action_data
if mark_last && len(data) == 0 {
ac = Action_end_data
}
callback(&FileTransmissionCommand{Action: ac, File_id: file_id, Data: chunk})
}
}

View File

@@ -70,6 +70,7 @@ func (self *ZlibCompressor) Compress(data []byte) []byte {
if err != nil {
panic(err)
}
defer self.b.Reset()
return utils.UnsafeStringToBytes(self.b.String())
}
@@ -979,7 +980,12 @@ func (self *SendManager) next_chunks(callback func(string)) error {
split_for_transfer(utils.UnsafeStringToBytes(chunk), af.file_id, is_last, func(ftc *FileTransmissionCommand) { callback(ftc.Serialize()) })
} else if is_last {
callback(FileTransmissionCommand{Action: Action_end_data, File_id: af.file_id}.Serialize())
}
if is_last {
self.activate_next_ready_file()
if self.active_file() == nil {
return nil
}
}
}
}