コード例 #1
0
ファイル: logger.cpp プロジェクト: mwielgoszewski/osquery
Status LoggerPlugin::call(const PluginRequest& request,
                          PluginResponse& response) {
  QueryLogItem item;
  std::vector<StatusLogLine> intermediate_logs;
  if (request.count("string") > 0) {
    return this->logString(request.at("string"));
  } else if (request.count("snapshot") > 0) {
    return this->logSnapshot(request.at("snapshot"));
  } else if (request.count("init") > 0) {
    deserializeIntermediateLog(request, intermediate_logs);
    this->init(request.at("init"), intermediate_logs);
    return Status(0);
  } else if (request.count("status") > 0) {
    deserializeIntermediateLog(request, intermediate_logs);
    return this->logStatus(intermediate_logs);
  } else if (request.count("event") > 0) {
    return this->logEvent(request.at("event"));
  } else if (request.count("action") && request.at("action") == "features") {
    size_t features = 0;
    features |= (usesLogStatus()) ? LOGGER_FEATURE_LOGSTATUS : 0;
    features |= (usesLogEvent()) ? LOGGER_FEATURE_LOGEVENT : 0;
    return Status(features);
  } else {
    return Status(1, "Unsupported call to logger plugin");
  }
}
コード例 #2
0
ファイル: logger.cpp プロジェクト: jreese/osquery
Status LoggerPlugin::call(const PluginRequest& request,
                          PluginResponse& response) {
  QueryLogItem item;
  std::vector<StatusLogLine> intermediate_logs;
  if (request.count("string") > 0) {
    auto status = Status(0, "OK");
    if (request.count("category") && request.at("category") == "event") {
      // Optionally overload the logEvent method, but receive a duplicate.
      // message to log string.
      deserializeQueryLogItemJSON(request.at("event"), item);
      status = this->logEvent(item);
    }

    if (status.ok()) {
      return this->logString(request.at("string"));
    } else {
      return status;
    }
  } else if (request.count("snapshot") > 0) {
    deserializeQueryLogItemJSON(request.at("snapshot"), item);
    return this->logSnapshot(item);
  } else if (request.count("health") > 0) {
    deserializeQueryLogItemJSON(request.at("health"), item);
    return this->logHealth(item);
  } else if (request.count("init") > 0) {
    deserializeIntermediateLog(request, intermediate_logs);
    return this->init(request.at("init"), intermediate_logs);
  } else if (request.count("status") > 0) {
    deserializeIntermediateLog(request, intermediate_logs);
    return this->logStatus(intermediate_logs);
  } else {
    return Status(1, "Unsupported call to logger plugin");
  }
}
コード例 #3
0
Status LoggerPlugin::call(const PluginRequest& request,
                          PluginResponse& response) {
  QueryLogItem item;
  std::vector<StatusLogLine> intermediate_logs;
  if (request.count("string") > 0) {
    return this->logString(request.at("string"));
  } else if (request.count("snapshot") > 0) {
    return this->logSnapshot(request.at("snapshot"));
  } else if (request.count("init") > 0) {
    deserializeIntermediateLog(request, intermediate_logs);
    this->init(request.at("init"), intermediate_logs);
    return Status(this->usesLogStatus() ? 0 : 1);
  } else if (request.count("status") > 0) {
    deserializeIntermediateLog(request, intermediate_logs);
    return this->logStatus(intermediate_logs);
  } else {
    return Status(1, "Unsupported call to logger plugin");
  }
}