(_correspondences->translate(the_rec->_src_root), *the_rec->_diffs,
the_rec->_last_sent, resp->_packed_data, _maximum_transfer);
if (bufret == heavy_file_operations::FINISHED) {
- // finish by setting command to be a conclude marker.
- the_rec->_done = true;
- resp->_command = file_transfer_infoton::CONCLUDE_TRANSFER_MARKER;
- bufret = OKAY; // now it's no longer an exceptional outcome.
+ bufret = OKAY; // in either case, we don't emit a finished outcome; handled elsewhere.
+ if (!resp->_packed_data.length()) {
+ // blank packages, so finish by setting command to be a conclude marker.
+ the_rec->_done = true;
+ resp->_command = file_transfer_infoton::CONCLUDE_TRANSFER_MARKER;
+ }
} else if (bufret != OKAY) {
// complain, but still send.
LOG(astring("buffer files returned an error on item=")
if (!reply)
RETURN_ERROR_RFC("failed to get ongoing transfer reply", NONE_READY);
+ if (reply->_command == file_transfer_infoton::CONCLUDE_TRANSFER_MARKER) {
+ BASE_LOG(astring("finished transfer from \"") + source_dir
+ + "\" to \"" + target_dir + "\"");
+ break;
+ }
+
byte_array copy = reply->_packed_data;
while (copy.length()) {
file_time empty;
//hmmm: this needs better formatting, and should not repeat the same file name even
// if it's in multiple chunks.
-//hmmm: if logging, then...
BASE_LOG(head.readable_text_form());
}
if (copy.length())
RETURN_ERROR_RFC("still had data in array", GARBAGE);
- if (reply->_command == file_transfer_infoton::CONCLUDE_TRANSFER_MARKER) {
- BASE_LOG(astring("finished transfer from \"") + source_dir
- + "\" to \"" + target_dir + "\"");
- break;
- }
-
octopus_request_id resp_id(ent, iter + 11);
outcome resp_ret = client_spider.evaluate(reply, resp_id);
if (resp_ret != tentacle::OKAY)