fix:修正Unix编译,检测update busy。
This commit is contained in:
parent
b8b8803052
commit
f0778e045b
@ -448,7 +448,11 @@ bool CClient::check_update_list(const std::string& content, std::map<std::string
|
|||||||
mperror("Not exist {}", vi[1]);
|
mperror("Not exist {}", vi[1]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#ifdef _WIN32
|
||||||
files[CCodec::ansi_to_u8(vi[0])] = CCodec::ansi_to_u8(vi[1]);
|
files[CCodec::ansi_to_u8(vi[0])] = CCodec::ansi_to_u8(vi[1]);
|
||||||
|
#else
|
||||||
|
files[vi[0]] = vi[1];
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
@ -619,19 +623,23 @@ void CClient::handle_frame(CFrameBuffer* buf)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TYPE_REQUEST_UPDATE_LIST: {
|
case TYPE_REQUEST_UPDATE_LIST: {
|
||||||
std::string content(buf->data_, buf->len_);
|
|
||||||
std::map<std::string, std::string> files;
|
std::map<std::string, std::string> files;
|
||||||
if (check_update_list(content, files)) {
|
if (down_ && down_->trans_state_ == TRANS_REDAY) {
|
||||||
buf->type_ = TYPE_CONFIRM_UPDATE_LIST;
|
buf->type_ = TYPE_BUSY_UPDATE_LIST;
|
||||||
} else {
|
} else {
|
||||||
buf->type_ = TYPE_UNCONFIRM_UPDATE_LIST;
|
std::string content(buf->data_, buf->len_);
|
||||||
|
if (check_update_list(content, files)) {
|
||||||
|
buf->type_ = TYPE_CONFIRM_UPDATE_LIST;
|
||||||
|
} else {
|
||||||
|
buf->type_ = TYPE_UNCONFIRM_UPDATE_LIST;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
std::swap(buf->tid_, buf->fid_);
|
std::swap(buf->tid_, buf->fid_);
|
||||||
if (!send_frame(buf)) {
|
if (!send_frame(buf)) {
|
||||||
mperror("Send Failed {}.", __LINE__);
|
mperror("Send Failed {}.", __LINE__);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (buf->type_ == TYPE_UNCONFIRM_UPDATE_LIST) {
|
if (buf->type_ != TYPE_CONFIRM_UPDATE_LIST) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
list_serve_id_ = buf->tid_;
|
list_serve_id_ = buf->tid_;
|
||||||
@ -658,6 +666,10 @@ void CClient::handle_frame(CFrameBuffer* buf)
|
|||||||
mpinfo("remote {} do task {} failed!", buf->fid_, list_file_);
|
mpinfo("remote {} do task {} failed!", buf->fid_, list_file_);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case TYPE_BUSY_UPDATE_LIST: {
|
||||||
|
mpinfo("remote {} are busy, will not exec task {}", buf->fid_, list_file_);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case TYPE_FILE_SIZE: {
|
case TYPE_FILE_SIZE: {
|
||||||
std::string str_size(buf->data_, buf->len_);
|
std::string str_size(buf->data_, buf->len_);
|
||||||
long long size = std::stoll(str_size);
|
long long size = std::stoll(str_size);
|
||||||
|
@ -17,6 +17,7 @@ enum FrameType : int16_t {
|
|||||||
TYPE_UP_LIST,
|
TYPE_UP_LIST,
|
||||||
TYPE_CANCEL_LIST,
|
TYPE_CANCEL_LIST,
|
||||||
TYPE_OPEN_FILE,
|
TYPE_OPEN_FILE,
|
||||||
|
TYPE_OPEN_FAILED,
|
||||||
TYPE_TRANS_FILE,
|
TYPE_TRANS_FILE,
|
||||||
TYPE_TRANS_DONE,
|
TYPE_TRANS_DONE,
|
||||||
TYPE_INTERRUPT,
|
TYPE_INTERRUPT,
|
||||||
@ -29,10 +30,10 @@ enum FrameType : int16_t {
|
|||||||
TYPE_CONFIRM_UPDATE_LIST,
|
TYPE_CONFIRM_UPDATE_LIST,
|
||||||
TYPE_UNCONFIRM_UPDATE_LIST,
|
TYPE_UNCONFIRM_UPDATE_LIST,
|
||||||
TYPE_DONE_UPDATE_LIST,
|
TYPE_DONE_UPDATE_LIST,
|
||||||
|
TYPE_BUSY_UPDATE_LIST,
|
||||||
TYPE_FAILED_UPDATE_LIST,
|
TYPE_FAILED_UPDATE_LIST,
|
||||||
TYPE_GET_ID,
|
TYPE_GET_ID,
|
||||||
TYPE_FILE_SIZE,
|
TYPE_FILE_SIZE
|
||||||
TYPE_OPEN_FAILED,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
using namespace ofen;
|
using namespace ofen;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user