Several fixes to the Controller in regard to believing information send through the API. Now no longer believes what the API tells it blindly, but uses measured data instead.
This commit is contained in:
parent
253a666691
commit
8c3634cfe9
1 changed files with 8 additions and 1 deletions
|
@ -75,6 +75,9 @@ namespace Controller {
|
||||||
|
|
||||||
void CheckConfig(JSON::Value & in, JSON::Value & out){
|
void CheckConfig(JSON::Value & in, JSON::Value & out){
|
||||||
for (JSON::ObjIter jit = in.ObjBegin(); jit != in.ObjEnd(); jit++){
|
for (JSON::ObjIter jit = in.ObjBegin(); jit != in.ObjEnd(); jit++){
|
||||||
|
if (jit->first == "version"){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (out.isMember(jit->first)){
|
if (out.isMember(jit->first)){
|
||||||
if (jit->second != out[jit->first]){
|
if (jit->second != out[jit->first]){
|
||||||
if (jit->first != "time"){
|
if (jit->first != "time"){
|
||||||
|
@ -86,7 +89,7 @@ namespace Controller {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (JSON::ObjIter jit = out.ObjBegin(); jit != out.ObjEnd(); jit++){
|
for (JSON::ObjIter jit = out.ObjBegin(); jit != out.ObjEnd(); jit++){
|
||||||
if ( !in.isMember(jit->first)){
|
if ( !in.isMember(jit->first) || jit->first == "version"){
|
||||||
Log("CONF", std::string("Deleted configuration value ") + jit->first);
|
Log("CONF", std::string("Deleted configuration value ") + jit->first);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -346,9 +349,11 @@ int main(int argc, char ** argv){
|
||||||
}else{
|
}else{
|
||||||
if (Request.isMember("config")){
|
if (Request.isMember("config")){
|
||||||
Controller::CheckConfig(Request["config"], Controller::Storage["config"]);
|
Controller::CheckConfig(Request["config"], Controller::Storage["config"]);
|
||||||
|
Controller::CheckProtocols(Controller::Storage["config"]["protocols"]);
|
||||||
}
|
}
|
||||||
if (Request.isMember("streams")){
|
if (Request.isMember("streams")){
|
||||||
Controller::CheckStreams(Request["streams"], Controller::Storage["streams"]);
|
Controller::CheckStreams(Request["streams"], Controller::Storage["streams"]);
|
||||||
|
Controller::CheckAllStreams(Controller::Storage["streams"]);
|
||||||
}
|
}
|
||||||
if (Request.isMember("clearstatlogs")){
|
if (Request.isMember("clearstatlogs")){
|
||||||
Controller::Storage["log"].null();
|
Controller::Storage["log"].null();
|
||||||
|
@ -371,9 +376,11 @@ int main(int argc, char ** argv){
|
||||||
//Parse config and streams from the request.
|
//Parse config and streams from the request.
|
||||||
if (Request.isMember("config")){
|
if (Request.isMember("config")){
|
||||||
Controller::CheckConfig(Request["config"], Controller::Storage["config"]);
|
Controller::CheckConfig(Request["config"], Controller::Storage["config"]);
|
||||||
|
Controller::CheckProtocols(Controller::Storage["config"]["protocols"]);
|
||||||
}
|
}
|
||||||
if (Request.isMember("streams")){
|
if (Request.isMember("streams")){
|
||||||
Controller::CheckStreams(Request["streams"], Controller::Storage["streams"]);
|
Controller::CheckStreams(Request["streams"], Controller::Storage["streams"]);
|
||||||
|
Controller::CheckAllStreams(Controller::Storage["streams"]);
|
||||||
}
|
}
|
||||||
if (Request.isMember("capabilities")){
|
if (Request.isMember("capabilities")){
|
||||||
Controller::checkCapable(Response["capabilities"]);
|
Controller::checkCapable(Response["capabilities"]);
|
||||||
|
|
Loading…
Add table
Reference in a new issue