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

bugfix: check 0 sized file

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