// Copyright 2016 Etix Labs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #pragma once #include // cacheManager #include // task interface #include // cURL client for discovery #include // send DESCRIBE through cURL #include // std::async & std::future #include // LOG #include // std::shared_ptr #include // signals #include // data model namespace etix { namespace cameradar { class path_attack : public etix::cameradar::cameradar_task { const configuration& conf; std::shared_ptr cache; std::string nmap_output; public: path_attack() = delete; path_attack(std::shared_ptr cache, const configuration& conf, std::string nmap_output) : conf(conf), cache(cache), nmap_output(nmap_output) {} path_attack(const path_attack& ref) = delete; virtual bool run() const; bool test_path(const etix::cameradar::stream_model& cit, const std::string& it) const; bool attack_camera_path(const stream_model& stream) const; }; } }