浏览代码

corrected putdata cmd semantics and putdata handler error message

Denys 5 年之前
父节点
当前提交
cf104d3140
共有 1 个文件被更改,包括 4 次插入5 次删除
  1. 4 5
      cli/src/cmdman.cpp

+ 4 - 5
cli/src/cmdman.cpp

@@ -114,9 +114,9 @@ CmdMan::CmdRet CmdMan::cmdPutdata(vector<string> args) {
 	
 	root["command"] = "putdata";
 	root["file"] = fileman.getPutName();
-	root["remaining"] = fileman.getPutChunksRemaining();
 	root["cancel"] = false;
 	root["data"] = fileman.readBase64();
+	root["remaining"] = fileman.getPutChunksRemaining(); // number already decremented by readBase64
 	retval.type = send;
 	retval.msg = Json::writeString(wbuilder, root);
 		
@@ -278,11 +278,10 @@ CmdMan::CmdRet CmdMan::handlePutdata(Json::Value root) {
 	CmdRet retval;
 	std::cerr << __PRETTY_FUNCTION__ << " begin" << std::endl;
 	
-	// the passed number of recieved chunks should equal the number of sent chunks
-	unsigned int sentChunks = fileman.getPutChunksRemaining()+1;
-	if(root["received"].asUInt() != sentChunks) {
+	if(root["received"].asUInt() != fileman.getPutChunksRemaining()) {
+		// the number of remaining chunks received from the daemon does not equal the number stored at the client side		
 		retval.type = error;
-		retval.msg = std::string("File upload failed: Server reports number of sent chunks as ") + std::to_string(root["received"].asInt()) + " but actual number is " + std::to_string(sentChunks);
+		retval.msg = std::string("File upload failed: Server reports number of remaining chunks as ") + std::to_string(root["received"].asInt()) + " but actual number is " + std::to_string(fileman.getPutChunksRemaining());
 	} else if(root["cancel"].asBool()) {
 		retval.type = error;
 		retval.msg = "File upload cancelles: Server reports: " + root["error"].asString();