|
@@ -14,7 +14,6 @@ CmdMan::CmdMan(FileMan &fm, void (*dpf)(string)) : fileman(fm) {
|
|
wbuilder.settings_["indentation"] = "";
|
|
wbuilder.settings_["indentation"] = "";
|
|
reader = rbuilder.newCharReader();
|
|
reader = rbuilder.newCharReader();
|
|
|
|
|
|
-
|
|
|
|
doversion = false;
|
|
doversion = false;
|
|
loginpossible = false;
|
|
loginpossible = false;
|
|
dologin = false;
|
|
dologin = false;
|
|
@@ -89,16 +88,15 @@ CmdMan::CmdRet CmdMan::cmdDisconnect(vector<string> args) {
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
Json::Value root;
|
|
Json::Value root;
|
|
retval.type = send;
|
|
retval.type = send;
|
|
- if(loginpossible) {
|
|
|
|
- // not logged in, send appropriate login message instead of normal close
|
|
|
|
- root["login"] = false;
|
|
|
|
- root["user"] = "";
|
|
|
|
- root["pass"] = "";
|
|
|
|
- root["cancel"] = true;
|
|
|
|
- retval.type |= close;
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- root["command"] = "close";
|
|
|
|
|
|
+ if (loginpossible) {
|
|
|
|
+ // not logged in, send appropriate login message instead of normal close
|
|
|
|
+ root["login"] = false;
|
|
|
|
+ root["user"] = "";
|
|
|
|
+ root["pass"] = "";
|
|
|
|
+ root["cancel"] = true;
|
|
|
|
+ retval.type |= close;
|
|
|
|
+ } else {
|
|
|
|
+ root["command"] = "close";
|
|
}
|
|
}
|
|
retval.msg = root;
|
|
retval.msg = root;
|
|
|
|
|
|
@@ -226,22 +224,29 @@ CmdMan::CmdRet CmdMan::execute(string cmd, vector<string> args) {
|
|
Json::Value root;
|
|
Json::Value root;
|
|
root["command"] = cmd;
|
|
root["command"] = cmd;
|
|
if (it == execmap.end()) {
|
|
if (it == execmap.end()) {
|
|
- retval.type = error;
|
|
|
|
- root["command"] = "error";
|
|
|
|
- root["error"] = string(__PRETTY_FUNCTION__) + " unknown command \"" + cmd + "\".\ntype help to list available commands.";
|
|
|
|
- retval.msg = root;
|
|
|
|
- return retval;
|
|
|
|
- }
|
|
|
|
- else if(loginpossible || dologin || dosignup) {
|
|
|
|
- DEBUGPRINT("execute does login");
|
|
|
|
- DEBUGPRINT(string("comparison is ") + std::to_string(cmd.compare("login") && cmd.compare("signup") && cmd.compare("disconnect") && cmd.compare("help")));
|
|
|
|
- if(cmd.compare("login") && cmd.compare("signup") && cmd.compare("disconnect") && cmd.compare("help")) {
|
|
|
|
- retval.type = error;
|
|
|
|
- root["command"] = "error";
|
|
|
|
- root["error"] = string("Not logged in. Available commands are limited to ") + "login" + ", " + "signup" + " and " + "disconnect" + "\n" + "Use help for usage of these commands.";
|
|
|
|
- retval.msg = root;
|
|
|
|
- return retval;
|
|
|
|
- }
|
|
|
|
|
|
+ retval.type = error;
|
|
|
|
+ root["command"] = "error";
|
|
|
|
+ root["error"] = string(__PRETTY_FUNCTION__) + " unknown command \"" + cmd +
|
|
|
|
+ "\".\ntype help to list available commands.";
|
|
|
|
+ retval.msg = root;
|
|
|
|
+ return retval;
|
|
|
|
+ } else if (loginpossible || dologin || dosignup) {
|
|
|
|
+ DEBUGPRINT("execute does login");
|
|
|
|
+ DEBUGPRINT(string("comparison is ") +
|
|
|
|
+ std::to_string(cmd.compare("login") && cmd.compare("signup") &&
|
|
|
|
+ cmd.compare("disconnect") &&
|
|
|
|
+ cmd.compare("help")));
|
|
|
|
+ if (cmd.compare("login") && cmd.compare("signup") &&
|
|
|
|
+ cmd.compare("disconnect") && cmd.compare("help")) {
|
|
|
|
+ retval.type = error;
|
|
|
|
+ root["command"] = "error";
|
|
|
|
+ root["error"] =
|
|
|
|
+ string("Not logged in. Available commands are limited to ") +
|
|
|
|
+ "login" + ", " + "signup" + " and " + "disconnect" + "\n" +
|
|
|
|
+ "Use help for usage of these commands.";
|
|
|
|
+ retval.msg = root;
|
|
|
|
+ return retval;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return (this->*(execmap[cmd]))(args);
|
|
return (this->*(execmap[cmd]))(args);
|
|
}
|
|
}
|
|
@@ -251,8 +256,8 @@ CmdMan::CmdRet CmdMan::cmdLogin(vector<string> args) {
|
|
CmdRet retval;
|
|
CmdRet retval;
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
Json::Value root;
|
|
Json::Value root;
|
|
-
|
|
|
|
- if(loginpossible) {
|
|
|
|
|
|
+
|
|
|
|
+ if (loginpossible) {
|
|
dologin = true;
|
|
dologin = true;
|
|
loginpossible = false;
|
|
loginpossible = false;
|
|
root["user"] = args[0];
|
|
root["user"] = args[0];
|
|
@@ -262,11 +267,12 @@ CmdMan::CmdRet CmdMan::cmdLogin(vector<string> args) {
|
|
retval.type = send;
|
|
retval.type = send;
|
|
} else {
|
|
} else {
|
|
root["command"] = "login";
|
|
root["command"] = "login";
|
|
- root["error"] = "Login not possible, because you already requested a login or you are logged in";
|
|
|
|
|
|
+ root["error"] = "Login not possible, because you already requested a login "
|
|
|
|
+ "or you are logged in";
|
|
root["accept"] = false;
|
|
root["accept"] = false;
|
|
- retval.type = error;
|
|
|
|
|
|
+ retval.type = error;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
retval.msg = root;
|
|
retval.msg = root;
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
@@ -275,10 +281,10 @@ CmdMan::CmdRet CmdMan::cmdSignup(vector<string> args) {
|
|
CmdRet retval;
|
|
CmdRet retval;
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
Json::Value root;
|
|
Json::Value root;
|
|
-
|
|
|
|
- if(loginpossible) {
|
|
|
|
|
|
+
|
|
|
|
+ if (loginpossible) {
|
|
dosignup = true;
|
|
dosignup = true;
|
|
- loginpossible = false;
|
|
|
|
|
|
+ loginpossible = false;
|
|
root["user"] = args[0];
|
|
root["user"] = args[0];
|
|
root["pass"] = args[1];
|
|
root["pass"] = args[1];
|
|
root["login"] = true;
|
|
root["login"] = true;
|
|
@@ -286,16 +292,16 @@ CmdMan::CmdRet CmdMan::cmdSignup(vector<string> args) {
|
|
retval.type = send;
|
|
retval.type = send;
|
|
} else {
|
|
} else {
|
|
root["command"] = "signup";
|
|
root["command"] = "signup";
|
|
- root["error"] = "Signup not possible, because you already requested a login or you are logged in";
|
|
|
|
|
|
+ root["error"] = "Signup not possible, because you already requested a "
|
|
|
|
+ "login or you are logged in";
|
|
root["accept"] = false;
|
|
root["accept"] = false;
|
|
- retval.type = error;
|
|
|
|
|
|
+ retval.type = error;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
retval.msg = root;
|
|
retval.msg = root;
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
/* internal commands */
|
|
/* internal commands */
|
|
CmdMan::CmdRet CmdMan::cmdVersion(vector<string> args) {
|
|
CmdMan::CmdRet CmdMan::cmdVersion(vector<string> args) {
|
|
CmdRet retval;
|
|
CmdRet retval;
|
|
@@ -311,12 +317,12 @@ CmdMan::CmdRet CmdMan::cmdVersion(vector<string> args) {
|
|
}
|
|
}
|
|
|
|
|
|
CmdMan::CmdRet CmdMan::handle(Json::Value root) {
|
|
CmdMan::CmdRet CmdMan::handle(Json::Value root) {
|
|
- CmdRet retval;
|
|
|
|
- Json::Value output;
|
|
|
|
|
|
+ CmdRet retval;
|
|
|
|
+ Json::Value output;
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
DEBUGPRINT(string(__PRETTY_FUNCTION__) + " begin");
|
|
if (doversion)
|
|
if (doversion)
|
|
root["command"] = "version";
|
|
root["command"] = "version";
|
|
- else if (dosignup)
|
|
|
|
|
|
+ else if (dosignup)
|
|
root["command"] = "signup";
|
|
root["command"] = "signup";
|
|
else if (dologin)
|
|
else if (dologin)
|
|
root["command"] = "login";
|
|
root["command"] = "login";
|
|
@@ -325,13 +331,15 @@ CmdMan::CmdRet CmdMan::handle(Json::Value root) {
|
|
string retmsg;
|
|
string retmsg;
|
|
map<string, CmdRet (CmdMan::*)(Json::Value)>::iterator it =
|
|
map<string, CmdRet (CmdMan::*)(Json::Value)>::iterator it =
|
|
handlemap.find(root["command"].asString());
|
|
handlemap.find(root["command"].asString());
|
|
-
|
|
|
|
|
|
+
|
|
if (it == handlemap.end()) {
|
|
if (it == handlemap.end()) {
|
|
- retval.type = error;
|
|
|
|
- output["command"] = "error";
|
|
|
|
- output["error"] = string(__PRETTY_FUNCTION__) + " unknown command \"" + root["command"].asString() + "\".\nEnsure code is implemented.";
|
|
|
|
- retval.msg = output;
|
|
|
|
- return retval;
|
|
|
|
|
|
+ retval.type = error;
|
|
|
|
+ output["command"] = "error";
|
|
|
|
+ output["error"] = string(__PRETTY_FUNCTION__) + " unknown command \"" +
|
|
|
|
+ root["command"].asString() +
|
|
|
|
+ "\".\nEnsure code is implemented.";
|
|
|
|
+ retval.msg = output;
|
|
|
|
+ return retval;
|
|
}
|
|
}
|
|
return (this->*(handlemap[root["command"].asString()]))(root);
|
|
return (this->*(handlemap[root["command"].asString()]))(root);
|
|
}
|
|
}
|
|
@@ -603,7 +611,7 @@ CmdMan::CmdRet CmdMan::handleLogin(Json::Value root) {
|
|
retval.type = error;
|
|
retval.type = error;
|
|
output["error"] = root["error"].asString();
|
|
output["error"] = root["error"].asString();
|
|
output["accept"] = false;
|
|
output["accept"] = false;
|
|
- loginpossible = true;
|
|
|
|
|
|
+ loginpossible = true;
|
|
dologin = false;
|
|
dologin = false;
|
|
} else {
|
|
} else {
|
|
retval.type = print | seton;
|
|
retval.type = print | seton;
|
|
@@ -627,13 +635,13 @@ CmdMan::CmdRet CmdMan::handleSignup(Json::Value root) {
|
|
retval.type = error;
|
|
retval.type = error;
|
|
output["error"] = root["error"].asString();
|
|
output["error"] = root["error"].asString();
|
|
output["accept"] = false;
|
|
output["accept"] = false;
|
|
- loginpossible = true;
|
|
|
|
|
|
+ loginpossible = true;
|
|
dosignup = false;
|
|
dosignup = false;
|
|
} else {
|
|
} else {
|
|
retval.type = print | seton;
|
|
retval.type = print | seton;
|
|
output["error"] = "";
|
|
output["error"] = "";
|
|
output["accept"] = true;
|
|
output["accept"] = true;
|
|
- dosignup = false;
|
|
|
|
|
|
+ dosignup = false;
|
|
}
|
|
}
|
|
retval.msg = output;
|
|
retval.msg = output;
|
|
|
|
|