mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralgw.git
synced 2025-11-02 03:37:57 +00:00
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
This commit is contained in:
@@ -467,4 +467,16 @@ namespace OpenWifi {
|
||||
poco_warning(Logger(), fmt::format("{}: Failed to send command. ID: {}", UUID, RPC_ID));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool CommandManager::FireAndForget(const std::string &SerialNumber, const std::string &Method, const Poco::JSON::Object &Params) {
|
||||
Poco::JSON::Object CompleteRPC;
|
||||
CompleteRPC.set(uCentralProtocol::JSONRPC, uCentralProtocol::JSONRPC_VERSION);
|
||||
CompleteRPC.set(uCentralProtocol::ID, 0);
|
||||
CompleteRPC.set(uCentralProtocol::METHOD, Method);
|
||||
CompleteRPC.set(uCentralProtocol::PARAMS, Params);
|
||||
std::stringstream ToSend;
|
||||
CompleteRPC.stringify(ToSend);
|
||||
poco_debug(Logger(), fmt::format("{}: Fire and forget command {}.", SerialNumber, Method));
|
||||
return AP_WS_Server()->SendFrame(SerialNumber, ToSend.str())>0;
|
||||
}
|
||||
} // namespace OpenWifi
|
||||
@@ -162,6 +162,8 @@ namespace OpenWifi {
|
||||
inline auto CommandTimeout() const { return commandTimeOut_; }
|
||||
inline auto CommandRetry() const { return commandRetry_; }
|
||||
|
||||
bool FireAndForget(const std::string &SerialNumber, const std::string &Method,
|
||||
const Poco::JSON::Object &Params);
|
||||
private:
|
||||
mutable std::recursive_mutex LocalMutex_;
|
||||
std::atomic_bool Running_ = false;
|
||||
|
||||
@@ -1398,10 +1398,17 @@ namespace OpenWifi {
|
||||
Cmd.RunAt = 0;
|
||||
Cmd.ErrorCode = 0;
|
||||
Cmd.WaitingForFile = 0;
|
||||
|
||||
return RESTAPI_RPC::WaitForCommand(CMD_RPC, APCommands::Commands::rrm, false, Cmd,
|
||||
Params, *Request, *Response, timeout, nullptr, this,
|
||||
Logger_);
|
||||
Cmd.Status= "completed";
|
||||
if(CommandManager()->FireAndForget(SerialNumber_, uCentralProtocol::RRM, Params)) {
|
||||
StorageService()->AddCommand(SerialNumber_, Cmd,
|
||||
Storage::CommandExecutionType::COMMAND_COMPLETED);
|
||||
Cmd.Status= "completed";
|
||||
return OK();
|
||||
}
|
||||
Cmd.Status= "failed"; // should never happen
|
||||
StorageService()->AddCommand(SerialNumber_, Cmd,
|
||||
Storage::CommandExecutionType::COMMAND_COMPLETED);
|
||||
return BadRequest(RESTAPI::Errors::CouldNotPerformCommand);
|
||||
}
|
||||
|
||||
void RESTAPI_device_commandHandler::Transfer(
|
||||
|
||||
@@ -940,7 +940,8 @@ certupdate() {
|
||||
}
|
||||
|
||||
rrm_kick() {
|
||||
payload="$(printf '[{ "action": "kick", "addr": "%s", "reason": %s, "ban_time": %s}' "$2" "$3" "$4")"
|
||||
payload="$(printf '{ "actions" : [{ "action": "kick", "addr": "%s", "reason": %s, "ban_time": %s}] }' "$2" "$3" "$4")"
|
||||
echo "$payload"
|
||||
curl ${FLAGS} -X POST "https://${OWGW}/api/v1/device/$1/rrm" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Accept: application/json" \
|
||||
|
||||
Reference in New Issue
Block a user