Pro side of JSON library updates.

This commit is contained in:
Thulinma 2015-10-05 22:53:49 +02:00
parent 74c8932106
commit 8fb8a98c5f
5 changed files with 34 additions and 36 deletions

View file

@ -247,13 +247,13 @@ int Controller::handleAPIConnection(Socket::Connection & conn){
Controller::deleteStream(Request["deletestream"].asStringRef(), Controller::Storage["streams"]); Controller::deleteStream(Request["deletestream"].asStringRef(), Controller::Storage["streams"]);
} }
if (Request["deletestream"].isArray()){ if (Request["deletestream"].isArray()){
for (JSON::ArrIter it = Request["deletestream"].ArrBegin(); it != Request["deletestream"].ArrEnd(); ++it){ jsonForEach(Request["deletestream"], it){
Controller::deleteStream(it->asStringRef(), Controller::Storage["streams"]); Controller::deleteStream(it->asStringRef(), Controller::Storage["streams"]);
} }
} }
if (Request["deletestream"].isObject()){ if (Request["deletestream"].isObject()){
for (JSON::ObjIter it = Request["deletestream"].ObjBegin(); it != Request["deletestream"].ObjEnd(); ++it){ jsonForEach(Request["deletestream"], it){
Controller::deleteStream(it->first, Controller::Storage["streams"]); Controller::deleteStream(it.key(), Controller::Storage["streams"]);
} }
} }
} }
@ -281,7 +281,7 @@ int Controller::handleAPIConnection(Socket::Connection & conn){
/// ///
if (Request.isMember("addprotocol")){ if (Request.isMember("addprotocol")){
if (Request["addprotocol"].isArray()){ if (Request["addprotocol"].isArray()){
for (JSON::ArrIter it = Request["addprotocol"].ArrBegin(); it != Request["addprotocol"].ArrEnd(); ++it){ jsonForEach(Request["addprotocol"], it){
Controller::Storage["config"]["protocols"].append(*it); Controller::Storage["config"]["protocols"].append(*it);
} }
} }
@ -314,9 +314,9 @@ int Controller::handleAPIConnection(Socket::Connection & conn){
if (Request.isMember("deleteprotocol")){ if (Request.isMember("deleteprotocol")){
if (Request["deleteprotocol"].isArray() && Request["deleteprotocol"].size()){ if (Request["deleteprotocol"].isArray() && Request["deleteprotocol"].size()){
JSON::Value newProtocols; JSON::Value newProtocols;
for (JSON::ArrIter it = Controller::Storage["config"]["protocols"].ArrBegin(); it != Controller::Storage["config"]["protocols"].ArrEnd(); ++it){ jsonForEach(Controller::Storage["config"]["protocols"], it){
bool add = true; bool add = true;
for (JSON::ArrIter pit = Request["deleteprotocol"].ArrBegin(); pit != Request["deleteprotocol"].ArrEnd(); ++pit){ jsonForEach(Request["deleteprotocol"], pit){
if (*it == *pit){ if (*it == *pit){
add = false; add = false;
break; break;
@ -330,7 +330,7 @@ int Controller::handleAPIConnection(Socket::Connection & conn){
} }
if (Request["deleteprotocol"].isObject()){ if (Request["deleteprotocol"].isObject()){
JSON::Value newProtocols; JSON::Value newProtocols;
for (JSON::ArrIter it = Controller::Storage["config"]["protocols"].ArrBegin(); it != Controller::Storage["config"]["protocols"].ArrEnd(); ++it){ jsonForEach(Controller::Storage["config"]["protocols"], it){
if (*it != Request["deleteprotocol"]){ if (*it != Request["deleteprotocol"]){
newProtocols.append(*it); newProtocols.append(*it);
} }
@ -490,9 +490,9 @@ int Controller::handleAPIConnection(Socket::Connection & conn){
if (!Request.isMember("streams") && (Request.isMember("addstream") || Request.isMember("deletestream"))){ if (!Request.isMember("streams") && (Request.isMember("addstream") || Request.isMember("deletestream"))){
Response["streams"]["incomplete list"] = 1ll; Response["streams"]["incomplete list"] = 1ll;
if (Request.isMember("addstream")){ if (Request.isMember("addstream")){
for (JSON::ObjIter jit = Request["addstream"].ObjBegin(); jit != Request["addstream"].ObjEnd(); jit++){ jsonForEach(Request["addstream"], jit){
if (Controller::Storage["streams"].isMember(jit->first)){ if (Controller::Storage["streams"].isMember(jit.key())){
Response["streams"][jit->first] = Controller::Storage["streams"][jit->first]; Response["streams"][jit.key()] = Controller::Storage["streams"][jit.key()];
} }
} }
} }

View file

@ -21,7 +21,7 @@ namespace Controller{
Storage["streams"][streamName].removeMember("hardlimit_active"); Storage["streams"][streamName].removeMember("hardlimit_active");
if (Storage["streams"][streamName]["online"].asInt() != 1){ if (Storage["streams"][streamName]["online"].asInt() != 1){
for (JSON::ArrIter limitIt = Storage["streams"][streamName]["limits"].ArrBegin(); limitIt != Storage["streams"][streamName]["limits"].ArrEnd(); limitIt++){ jsonForEach(Storage["streams"][streamName]["limits"], limitIt){
if ((*limitIt).isMember("triggered")){ if ((*limitIt).isMember("triggered")){
if ((*limitIt)["type"].asString() == "soft"){ if ((*limitIt)["type"].asString() == "soft"){
Log("SLIM", "Softlimit " + (*limitIt)["name"].asString() + " <= " + (*limitIt)["value"].asString() + " for stream " + streamName + " reset - stream unavailable."); Log("SLIM", "Softlimit " + (*limitIt)["name"].asString() + " <= " + (*limitIt)["value"].asString() + " for stream " + streamName + " reset - stream unavailable.");
@ -35,7 +35,7 @@ namespace Controller{
} }
//run over all limits. //run over all limits.
for (JSON::ArrIter limitIt = Storage["streams"][streamName]["limits"].ArrBegin(); limitIt != Storage["streams"][streamName]["limits"].ArrEnd(); limitIt++){ jsonForEach(Storage["streams"][streamName]["limits"], limitIt){
bool triggerLimit = false; bool triggerLimit = false;
if ((*limitIt)["name"].asString() == "users" && connectedUsers >= (*limitIt)["value"].asInt()){ if ((*limitIt)["name"].asString() == "users" && connectedUsers >= (*limitIt)["value"].asInt()){
triggerLimit = true; triggerLimit = true;
@ -94,8 +94,8 @@ namespace Controller{
//check stream limits //check stream limits
if (Storage["streams"].size()){ if (Storage["streams"].size()){
for (JSON::ObjIter strmIt = Storage["streams"].ObjBegin(); strmIt != Storage["streams"].ObjEnd(); strmIt++){ jsonForEach(Storage["streams"], strmIt){
checkStreamLimits(strmIt->first, strmBandw[strmIt->first], strmUsers[strmIt->first]); checkStreamLimits(strmIt.key(), strmBandw[strmIt.key()], strmUsers[strmIt.key()]);
} }
} }
@ -107,7 +107,7 @@ namespace Controller{
return; return;
} }
for (JSON::ArrIter limitIt = Storage["config"]["limits"].ArrBegin(); limitIt != Storage["config"]["limits"].ArrEnd(); limitIt++){ jsonForEach(Storage["config"]["limits"], limitIt){
bool triggerLimit = false; bool triggerLimit = false;
if ((*limitIt)["name"].asString() == "users" && connectedUsers >= (*limitIt)["value"].asInt()){ if ((*limitIt)["name"].asString() == "users" && connectedUsers >= (*limitIt)["value"].asInt()){
triggerLimit = true; triggerLimit = true;
@ -211,12 +211,11 @@ namespace Controller{
return false; return false;
} }
std::string myCountryName = getCountry(host); std::string myCountryName = getCountry(host);
JSON::ArrIter limitIt;
bool hasWhitelist = false; bool hasWhitelist = false;
bool hostOnWhitelist = false; bool hostOnWhitelist = false;
if (Storage["streams"].isMember(streamName)){ if (Storage["streams"].isMember(streamName)){
if (Storage["streams"][streamName].isMember("limits") && Storage["streams"][streamName]["limits"].size()){ if (Storage["streams"][streamName].isMember("limits") && Storage["streams"][streamName]["limits"].size()){
for (limitIt = Storage["streams"][streamName]["limits"].ArrBegin(); limitIt != Storage["streams"][streamName]["limits"].ArrEnd(); limitIt++){ jsonForEach(Storage["streams"][streamName]["limits"], limitIt){
if ((*limitIt)["name"].asString() == "host"){ if ((*limitIt)["name"].asString() == "host"){
if ((*limitIt)["value"].asString()[0] == '+'){ if ((*limitIt)["value"].asString()[0] == '+'){
if (!onList(host, (*limitIt)["value"].asString().substr(1))){ if (!onList(host, (*limitIt)["value"].asString().substr(1))){
@ -291,7 +290,7 @@ namespace Controller{
} }
} }
if (Storage["config"]["limits"].size()){ if (Storage["config"]["limits"].size()){
for (limitIt = Storage["config"]["limits"].ArrBegin(); limitIt != Storage["config"]["limits"].ArrEnd(); limitIt++){ jsonForEach(Storage["config"]["limits"], limitIt){
if ((*limitIt)["name"].asString() == "host"){ if ((*limitIt)["name"].asString() == "host"){
if ((*limitIt)["value"].asString()[0] == '+'){ if ((*limitIt)["value"].asString()[0] == '+'){
if (!onList(host, (*limitIt)["value"].asString().substr(1))){ if (!onList(host, (*limitIt)["value"].asString().substr(1))){

View file

@ -134,17 +134,17 @@ namespace Controller {
ret["needs_update"].null(); ret["needs_update"].null();
// check if everything is up to date or not // check if everything is up to date or not
for (JSON::ObjIter it = updrInfo.ObjBegin(); it != updrInfo.ObjEnd(); it++){ jsonForEach(updrInfo, it){
if (it->first.substr(0, 4) != "Mist"){ if (it.key().substr(0, 4) != "Mist"){
continue; continue;
} }
ret[it->first] = it->second; ret[it.key()] = *it;
if (it->second.asString() != Secure::md5(readFile(Util::getMyPath() + it->first))){ if (it->asString() != Secure::md5(readFile(Util::getMyPath() + it.key()))){
ret["uptodate"] = 0; ret["uptodate"] = 0;
if (it->first.substr(0, 14) == "MistController"){ if (it.key().substr(0, 14) == "MistController"){
ret["needs_update"].append(it->first); ret["needs_update"].append(it.key());
}else{ }else{
ret["needs_update"].prepend(it->first); ret["needs_update"].prepend(it.key());
} }
} }
} }
@ -184,7 +184,7 @@ namespace Controller {
} }
//loop through the available components, update them //loop through the available components, update them
for (JSON::ArrIter it = updrInfo["needs_update"].ArrBegin(); it != updrInfo["needs_update"].ArrEnd(); it++){ jsonForEach(updrInfo["needs_update"], it){
updateComponent(it->asStringRef(), updrInfo[it->asStringRef()].asStringRef(), updrConn); updateComponent(it->asStringRef(), updrInfo[it->asStringRef()].asStringRef(), updrConn);
} }
updrConn.close(); updrConn.close();

View file

@ -88,13 +88,13 @@ void Controller::uplinkConnection(void * np) {
Controller::Storage["streams"].removeMember(curVal.asStringRef()); Controller::Storage["streams"].removeMember(curVal.asStringRef());
} }
if (curVal.isArray()) { if (curVal.isArray()) {
for (JSON::ArrIter it = curVal.ArrBegin(); it != curVal.ArrEnd(); ++it) { jsonForEach(curVal, it) {
Controller::Storage["streams"].removeMember(it->asString()); Controller::Storage["streams"].removeMember(it->asString());
} }
} }
if (curVal.isObject()) { if (curVal.isObject()) {
for (JSON::ObjIter it = curVal.ObjBegin(); it != curVal.ObjEnd(); ++it) { jsonForEach(curVal, it) {
Controller::Storage["streams"].removeMember(it->first); Controller::Storage["streams"].removeMember(it.key());
} }
} }
} }
@ -113,10 +113,10 @@ void Controller::uplinkConnection(void * np) {
totalsRequest["start"] = (long long)lastSend; totalsRequest["start"] = (long long)lastSend;
Controller::fillTotals(totalsRequest, data["totals"]); Controller::fillTotals(totalsRequest, data["totals"]);
data["streams"] = Controller::Storage["streams"]; data["streams"] = Controller::Storage["streams"];
for (JSON::ObjIter it = data["streams"].ObjBegin(); it != data["streams"].ObjEnd(); it++){ jsonForEach(data["streams"], it){
it->second.removeMember("meta"); it->removeMember("meta");
it->second.removeMember("l_meta"); it->removeMember("l_meta");
it->second.removeMember("name"); it->removeMember("name");
} }
data["config"] = Controller::Storage["config"]; data["config"] = Controller::Storage["config"];
data["config"]["uniq"] = uniqId; data["config"]["uniq"] = uniqId;

View file

@ -497,12 +497,11 @@ namespace Mist {
return false; return false;
} }
std::string myCountryName = getCountry(host); std::string myCountryName = getCountry(host);
JSON::ArrIter limitIt;
bool hasWhitelist = false; bool hasWhitelist = false;
bool hostOnWhitelist = false; bool hostOnWhitelist = false;
if (Storage["streams"].isMember(streamName)){ if (Storage["streams"].isMember(streamName)){
if (Storage["streams"][streamName].isMember("limits") && Storage["streams"][streamName]["limits"].size()){ if (Storage["streams"][streamName].isMember("limits") && Storage["streams"][streamName]["limits"].size()){
for (limitIt = Storage["streams"][streamName]["limits"].ArrBegin(); limitIt != Storage["streams"][streamName]["limits"].ArrEnd(); limitIt++){ jsonForEach(Storage["streams"][streamName]["limits"], limitIt){
if ((*limitIt)["name"].asString() == "host"){ if ((*limitIt)["name"].asString() == "host"){
if ((*limitIt)["value"].asString()[0] == '+'){ if ((*limitIt)["value"].asString()[0] == '+'){
if (!onList(host, (*limitIt)["value"].asString().substr(1))){ if (!onList(host, (*limitIt)["value"].asString().substr(1))){
@ -577,7 +576,7 @@ namespace Mist {
} }
} }
if (Storage["config"]["limits"].size()){ if (Storage["config"]["limits"].size()){
for (limitIt = Storage["config"]["limits"].ArrBegin(); limitIt != Storage["config"]["limits"].ArrEnd(); limitIt++){ jsonForEach(Storage["config"]["limits"], limitIt){
if ((*limitIt)["name"].asString() == "host"){ if ((*limitIt)["name"].asString() == "host"){
if ((*limitIt)["value"].asString()[0] == '+'){ if ((*limitIt)["value"].asString()[0] == '+'){
if (!onList(host, (*limitIt)["value"].asString().substr(1))){ if (!onList(host, (*limitIt)["value"].asString().substr(1))){