提交 6dd4d49b authored 作者: blu's avatar blu

bugfix: check 0 sized file

上级 ec900f1c
......@@ -100,7 +100,8 @@ private:
ret = z_send_multiple(pRouter, v);
if(ret <0) {
spdlog::error("evcloudsvc failed to send config to {}", sn);
}else{
}
else {
spdlog::info("evcloudsvc config sent to {}: {}", sn, cfg);
}
......@@ -482,7 +483,8 @@ private:
spdlog::error("evcloudsvc {} failed to send multiple: {}", devSn, zmq_strerror(zmq_errno()));
}
}
}else{
}
else {
json resp;
resp["metaType"] = EV_MSG_META_PONG;
resp["target"] = selfId;
......@@ -561,12 +563,13 @@ private:
// eventToSlicer["end"]
// eventToSlicer["sender"] = selfId;
json sendEdgeMsg(json &body) {
json sendEdgeMsg(json &body)
{
json ret;
ret["code"] = 0;
ret["msg"] = "ok";
string msg;
try{
try {
auto target = body["target"].get<string>();
auto v = strutils::split(target, ':');
if(v.size() == 1 || v.size() == 3) {
......@@ -574,26 +577,30 @@ private:
meta["type"] = body["metaType"];
if(body.count("metaValue") == 0) {
// meta["value"] = "";
}else{
}
else {
meta["value"] = body["metaValue"];
}
body["sender"] = devSn;
if(peerData["status"].count(v[0]) == 0 || peerData["status"][v[0]] == 0){
if(peerData["status"].count(v[0]) == 0 || peerData["status"][v[0]] == 0) {
spdlog::warn("evcloudsvc sent msg {} to {}, but it was offline", body.dump(), v[0]);
}else{
}
else {
}
int i= z_send(pRouter, v[0], devSn, meta, body.dump());
if(i < 0) {
msg = fmt::format("evcloudsvc failed to z_zend msg: {} :{}",zmq_strerror(zmq_errno()) ,body.dump());
msg = fmt::format("evcloudsvc failed to z_zend msg: {} :{}",zmq_strerror(zmq_errno()),body.dump());
throw StrException(msg);
}
}else{
}
else {
msg = fmt::format("evcloudsvc invliad target field({}) in body: {}", target, body.dump());
throw StrException(msg);
}
}catch(exception &e) {
}
catch(exception &e) {
ret["msg"] = e.what();
spdlog::error(e.what());
ret["code"] = -1;
......@@ -602,7 +609,8 @@ private:
return ret;
}
json handleCmd(json &body){
json handleCmd(json &body)
{
json ret;
ret["code"] = -1;
ret["msg"] = "unkown msg";
......@@ -611,17 +619,20 @@ private:
body.count("data") != 0 && body["data"].is_object() && body.count("metaValue") !=0 && body["metaValue"].is_string()) {
// it's msg to edge.
return sendEdgeMsg(body);
}else{
}
else {
return ret;
}
}
json getReleaseBundle(string bid) {
json getReleaseBundle(string bid)
{
json ret;
return ret;
}
json addReleaseBundle(json &bundle) {
json addReleaseBundle(json &bundle)
{
json ret;
return ret;
}
......@@ -752,10 +763,11 @@ public:
string msg;
ret["code"] = 0;
ret["msg"] = "ok";
try{
try {
auto body = json::parse(req.body);
ret = this->handleCmd(body);
}catch(exception &e) {
}
catch(exception &e) {
ret["code"] = -1;
msg = fmt::format("evcloudsvc Post /cmd Exception: {}", e.what());
spdlog::error(msg);
......@@ -807,7 +819,8 @@ public:
}
if(this->configMap.count("mod2mgr") ==0 || this->configMap["mod2mgr"].size() ==0) {
}else{
}
else {
for(auto &k:mods) {
this->configMap["mod2mgr"].erase(k);
}
......@@ -827,11 +840,12 @@ public:
string msg;
ret["code"] = 0;
ret["msg"] = "ok";
try{
try {
string bundleId = req.get_param_value("bId");
auto body = json::parse(req.body);
ret = this->getReleaseBundle(bundleId);
}catch(exception &e) {
}
catch(exception &e) {
ret["code"] = -1;
msg = fmt::format("evcloudsvc Get /release Exception: {}", e.what());
spdlog::error(msg);
......@@ -846,10 +860,11 @@ public:
string msg;
ret["code"] = 0;
ret["msg"] = "ok";
try{
try {
auto body = json::parse(req.body);
ret = this->addReleaseBundle(body);
}catch(exception &e) {
}
catch(exception &e) {
ret["code"] = -1;
msg = fmt::format("evcloudsvc Post /release Exception: {}", e.what());
spdlog::error(msg);
......
......@@ -305,7 +305,8 @@ private:
// stop
this->peerData["status"][k] = 1; // disabled
sendCmd2Peer(k, EV_MSG_META_VALUE_CMD_STOP, "0");
}else if(v == 1) { // perm stop
}
else if(v == 1) { // perm stop
this->peerData["status"][k] = 2;
this->peerData["config"].erase(k);
sendCmd2Peer(k, EV_MSG_META_VALUE_CMD_STOP, "0");
......@@ -382,15 +383,18 @@ private:
spdlog::info("evdaemon {} peer connected: {}", devSn, selfId);
if(this->peerData["tsLastConn"].count(selfId) == 0) {
this->peerData["tsLastConn"][selfId] = chrono::duration_cast<chrono::seconds>(chrono::system_clock::now().time_since_epoch()).count();
}else{
}
else {
if(this->peerData["contConn"].count(selfId) == 0) {
this->peerData["contConn"][selfId] = 0;
}else{
}
else {
auto delta = this->peerData["contConn"][selfId].get<long>() - chrono::duration_cast<chrono::seconds>(chrono::system_clock::now().time_since_epoch()).count();
if(delta < 3) { // within 3s
this->peerData["contConn"][selfId] = this->peerData["contConn"][selfId].get<int>() + 1;
}else{
}
else {
this->peerData["contConn"][selfId] = 0;
}
// refer to startSubsystems
......@@ -409,9 +413,10 @@ private:
spdlog::info("evdaemon {} peer {} config sent: {}", devSn,selfId, cfg);
}
else {
if(peerData["status"][selfId] == 1 || peerData["status"][selfId] == 2){
if(peerData["status"][selfId] == 1 || peerData["status"][selfId] == 2) {
spdlog::warn("evdaemon {} refuse to start {}: it was asked to be stopped, and is removed from cluster config", this->devSn, selfId);
}else{
}
else {
peerData["status"][selfId] = 0;
if(peerData["pids"].count(selfId) != 0) {
peerData["pids"].erase(selfId);
......@@ -420,7 +425,8 @@ private:
if(this->bBootstrap) {
spdlog::warn("evdaemon {} peer {} disconnected. restarting it.", devSn, selfId);
startSubSystems({selfId});
}else{
}
else {
spdlog::warn("evdaemon {} peer {} disconnected. won't restart it since BOOTSTRAP=false", devSn, selfId);
}
}
......@@ -584,7 +590,8 @@ private:
spdlog::info("evdaemon {} skip startup subsystems since BOOTSTRAP is set to false", devSn);
}
}
}else if(meta == EV_MSG_META_TYPE_CMD){
}
else if(meta == EV_MSG_META_TYPE_CMD) {
spdlog::info("evdaemon {} received cmd from cloud: {}", devSn, msg);
if(data.count("target") != 0 && data["target"].is_string() && data.count("metaType") !=0 && data["metaType"].is_string() &&
data.count("data") != 0 && data["data"].is_object() && data.count("metaValue") !=0 && data["metaValue"].is_string()) {
......@@ -592,38 +599,46 @@ private:
auto v = strutils::split(target, ':');
if(v.size() == 1) {
spdlog::info("evdaemon {} received msg {} from cloud to itself. TODO: functionality extending points such as debug tunnel", devSn, data.dump());
}else if(v.size() == 3){
}
else if(v.size() == 3) {
if(this->peerData["status"].count(target) == 0 || this->peerData["status"][target] == 0 || this->peerData["status"] == -1) {
spdlog::error("evdaemon {} received {} msg from cloud to {}: {}, but its offline", devSn, meta, target, data.dump());
}else{
}
else {
ret = sendCmd2Peer(target, data["metaValue"], data.dump());
if(ret < 0) {
spdlog::error("evdaemon {} failed to send msg to peer {}: {}", devSn, data.dump(), zmq_strerror(zmq_errno()));
}else{
}
else {
spdlog::info("evdaemon {} successfully relayed {} msg from cloud to {}: {}", devSn, meta, target, data.dump());
}
}
}else{
}
else {
spdlog::info("well");
}
}else{
}
else {
spdlog::info("done");
}
}else if(meta == EV_MSG_META_PONG) {
}
else if(meta == EV_MSG_META_PONG) {
string info;
if(data.count("data") != 0 ) {
if(data["data"].is_string()) {
info = fmt::format("evdaemon {} received pong msg from evcloudsvc: {}", devSn, data["data"].get<string>());
}else if (data["data"].is_object()) {
}
else if (data["data"].is_object()) {
info = fmt::format("evdaemon {} received pong msg from evcloudsvc: {}", devSn, data["data"].dump());
}
}else{
}
else {
info = fmt::format("evdaemon {} received pong msg from evcloudsvc.", devSn);
}
spdlog::info(info);
}
else{
else {
spdlog::info("evdaemon {} received msg from cloud that having no handler implemented: {}", devSn, msg);
}
}
......
......@@ -273,7 +273,8 @@ error_exit:
}
bProcessed = true;
} catch(exception &e) {
}
catch(exception &e) {
bProcessed = false;
spdlog::error("evmgr {} exception parse event msg from {} to {}: ", devSn, selfId, peerId, e.what());
}
......@@ -300,7 +301,7 @@ error_exit:
bProcessed = true;
}
else {
try{
try {
json jmeta = json::parse(meta);
if(jmeta["type"] == EV_MSG_META_TYPE_BROADCAST) {
if(jmeta.count("value") != 0) {
......@@ -313,18 +314,21 @@ error_exit:
ret = z_send_multiple(pRouter, broadCastMsg);
if(ret < 0) {
spdlog::error("evmgr {} failed to broadcast msg from {} because {}. msg meta: {}", devSn, selfId, zmq_strerror(zmq_errno()), meta);
}else{
}
else {
spdlog::info("evmgr {} successfully broadcast msg from {} to {}. msg meta: {}", devSn, selfId, k, meta);
}
}
}
}
bProcessed = true;
}else if(jmeta["type"] == EV_MSG_META_AVFORMATCTX) {
}
else if(jmeta["type"] == EV_MSG_META_AVFORMATCTX) {
bProcessed = true;
// ignore;
}
}catch(exception &e) {
}
catch(exception &e) {
bProcessed = false;
spdlog::error("evmgr {} exception process msg from {} with meta {}: {}", devSn, selfId, meta, e.what());
}
......
......@@ -159,7 +159,8 @@ private:
AVFormatCtxSerializer::decode((char *)(v[2].data()), v[2].size(), pAVFormatInput);
gotFormat = true;
cvMsg.notify_one();
}else{
}
else {
spdlog::warn("evmlmotion {} received avformatctx msg from {}, but already proceessed before, ignored. TODO: reinit", selfId, peerId);
}
bProcessed = true;
......@@ -223,14 +224,16 @@ private:
int portPub = 5556;
if(evpuller.count("portPub") != 0 && evpuller["portPub"].is_number_integer()) {
portPub = evpuller["portPub"];
}else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()){
}
else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()) {
portPub = evpuller["port-pub"];
}
int portRouter = 5550;
if(evmgr.count("portRouter") != 0 && evmgr["portRouter"].is_number_integer()) {
portRouter = evmgr["portRouter"];
}else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
}
else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
portRouter = evmgr["port-router"];
}
......
......@@ -91,14 +91,16 @@ private:
return ret;
}
void sendAVInputCtxMsg(string peerId){
void sendAVInputCtxMsg(string peerId)
{
json meta;
auto msgBody = data2body(const_cast<char*>(pAVFmtCtxBytes), lenAVFmtCtxBytes);
if(peerId.empty()){
if(peerId.empty()) {
meta["type"] = EV_MSG_META_TYPE_BROADCAST;
meta["value"] = EV_MSG_META_AVFORMATCTX;
peerId = this->mgrSn + ":evmgr:0";
}else{
}
else {
meta["type"] = EV_MSG_META_AVFORMATCTX;
}
......@@ -236,14 +238,16 @@ private:
int portPub = 5556;
if(evpuller.count("portPub") != 0 && evpuller["portPub"].is_number_integer()) {
portPub = evpuller["portPub"];
}else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()){
}
else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()) {
portPub = evpuller["port-pub"];
}
int portRouter = 5550;
if(evmgr.count("portRouter") != 0 && evmgr["portRouter"].is_number_integer()) {
portRouter = evmgr["portRouter"];
}else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
}
else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
portRouter = evmgr["port-router"];
}
......
......@@ -94,14 +94,16 @@ private:
int portPub = 5556;
if(evpuller.count("portPub") != 0 && evpuller["portPub"].is_number_integer()) {
portPub = evpuller["portPub"];
}else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()){
}
else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()) {
portPub = evpuller["port-pub"];
}
int portRouter = 5550;
if(evmgr.count("portRouter") != 0 && evmgr["portRouter"].is_number_integer()) {
portRouter = evmgr["portRouter"];
}else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
}
else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
portRouter = evmgr["port-router"];
}
......@@ -260,7 +262,8 @@ private:
AVFormatCtxSerializer::decode((char *)(v[2].data()), v[2].size(), pAVFormatInput);
gotFormat = true;
cvMsg.notify_one();
}else{
}
else {
spdlog::warn("evpusher {} received avformatctx msg from {}, but already proceessed before, ignored. TODO: reinit", selfId, peerId);
}
bProcessed = true;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论