Pro side of JSON library updates.
This commit is contained in:
parent
74c8932106
commit
8fb8a98c5f
5 changed files with 34 additions and 36 deletions
|
@ -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()];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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))){
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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))){
|
||||||
|
|
Loading…
Add table
Reference in a new issue