mirror of
https://github.com/falcosecurity/falco.git
synced 2025-08-01 06:29:47 +00:00
refactor(userspace): reduce usage of raw pointers
Signed-off-by: Jason Dellaluce <jasondellaluce@gmail.com>
This commit is contained in:
parent
b515f0a079
commit
0ec2a6c708
@ -20,23 +20,6 @@ limitations under the License.
|
||||
|
||||
using namespace libsinsp::filter;
|
||||
|
||||
bool filter_macro_resolver::run(libsinsp::filter::ast::expr*& filter)
|
||||
{
|
||||
m_unknown_macros.clear();
|
||||
m_resolved_macros.clear();
|
||||
m_errors.clear();
|
||||
|
||||
visitor v(m_errors, m_unknown_macros, m_resolved_macros, m_macros);
|
||||
v.m_node_substitute = nullptr;
|
||||
filter->accept(&v);
|
||||
if (v.m_node_substitute)
|
||||
{
|
||||
delete filter;
|
||||
filter = v.m_node_substitute.release();
|
||||
}
|
||||
return !m_resolved_macros.empty();
|
||||
}
|
||||
|
||||
bool filter_macro_resolver::run(std::shared_ptr<libsinsp::filter::ast::expr>& filter)
|
||||
{
|
||||
m_unknown_macros.clear();
|
||||
|
@ -40,11 +40,6 @@ class filter_macro_resolver
|
||||
class and is deleted automatically.
|
||||
\return true if at least one of the defined macros is resolved
|
||||
*/
|
||||
bool run(libsinsp::filter::ast::expr*& filter);
|
||||
|
||||
/*!
|
||||
\brief Version of run() that works with shared pointers
|
||||
*/
|
||||
bool run(std::shared_ptr<libsinsp::filter::ast::expr>& filter);
|
||||
|
||||
/*!
|
||||
|
@ -77,45 +77,41 @@ falco_outputs::~falco_outputs()
|
||||
#ifndef __EMSCRIPTEN__
|
||||
this->stop_worker();
|
||||
#endif
|
||||
for(auto o : m_outputs)
|
||||
{
|
||||
delete o;
|
||||
}
|
||||
}
|
||||
|
||||
// This function is called only at initialization-time by the constructor
|
||||
void falco_outputs::add_output(const falco::outputs::config &oc)
|
||||
{
|
||||
falco::outputs::abstract_output *oo;
|
||||
std::unique_ptr<falco::outputs::abstract_output> oo;
|
||||
|
||||
if(oc.name == "file")
|
||||
{
|
||||
oo = new falco::outputs::output_file();
|
||||
oo = std::make_unique<falco::outputs::output_file>();
|
||||
}
|
||||
#ifndef _WIN32
|
||||
else if(oc.name == "program")
|
||||
{
|
||||
oo = new falco::outputs::output_program();
|
||||
oo = std::make_unique<falco::outputs::output_program>();
|
||||
}
|
||||
#endif
|
||||
else if(oc.name == "stdout")
|
||||
{
|
||||
oo = new falco::outputs::output_stdout();
|
||||
oo = std::make_unique<falco::outputs::output_stdout>();
|
||||
}
|
||||
#ifndef _WIN32
|
||||
else if(oc.name == "syslog")
|
||||
{
|
||||
oo = new falco::outputs::output_syslog();
|
||||
oo = std::make_unique<falco::outputs::output_syslog>();
|
||||
}
|
||||
#endif
|
||||
#if !defined(_WIN32) && !defined(__EMSCRIPTEN__) && !defined(MINIMAL_BUILD)
|
||||
else if(oc.name == "http")
|
||||
{
|
||||
oo = new falco::outputs::output_http();
|
||||
oo = std::make_unique<falco::outputs::output_http>();
|
||||
}
|
||||
else if(oc.name == "grpc")
|
||||
{
|
||||
oo = new falco::outputs::output_grpc();
|
||||
oo = std::make_unique<falco::outputs::output_grpc>();
|
||||
}
|
||||
#endif
|
||||
else
|
||||
@ -126,12 +122,11 @@ void falco_outputs::add_output(const falco::outputs::config &oc)
|
||||
std::string init_err;
|
||||
if (oo->init(oc, m_buffered, m_hostname, m_json_output, init_err))
|
||||
{
|
||||
m_outputs.push_back(oo);
|
||||
m_outputs.push_back(std::move(oo));
|
||||
}
|
||||
else
|
||||
{
|
||||
falco_logger::log(falco_logger::level::ERR, "Failed to init output: " + init_err);
|
||||
delete(oo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -323,12 +318,12 @@ void falco_outputs::worker() noexcept
|
||||
m_queue.pop(cmsg);
|
||||
#endif
|
||||
|
||||
for(auto o : m_outputs)
|
||||
for(const auto& o : m_outputs)
|
||||
{
|
||||
wd.set_timeout(timeout, o->get_name());
|
||||
try
|
||||
{
|
||||
process_msg(o, cmsg);
|
||||
process_msg(o.get(), cmsg);
|
||||
}
|
||||
catch(const std::exception &e)
|
||||
{
|
||||
|
@ -93,7 +93,7 @@ public:
|
||||
private:
|
||||
std::unique_ptr<falco_formats> m_formats;
|
||||
|
||||
std::vector<falco::outputs::abstract_output *> m_outputs;
|
||||
std::vector<std::unique_ptr<falco::outputs::abstract_output>> m_outputs;
|
||||
|
||||
bool m_buffered;
|
||||
bool m_json_output;
|
||||
|
@ -43,13 +43,13 @@ void falco_webserver::start(
|
||||
// allocate and configure server
|
||||
if (ssl_enabled)
|
||||
{
|
||||
m_server = new httplib::SSLServer(
|
||||
m_server = std::make_unique<httplib::SSLServer>(
|
||||
ssl_certificate.c_str(),
|
||||
ssl_certificate.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
m_server = new httplib::Server();
|
||||
m_server = std::make_unique<httplib::Server>();
|
||||
}
|
||||
|
||||
// configure server
|
||||
@ -71,8 +71,7 @@ void falco_webserver::start(
|
||||
// run server in a separate thread
|
||||
if (!m_server->is_valid())
|
||||
{
|
||||
delete m_server;
|
||||
m_server = NULL;
|
||||
m_server = nullptr;
|
||||
throw falco_exception("invalid webserver configuration");
|
||||
}
|
||||
|
||||
@ -111,7 +110,7 @@ void falco_webserver::stop()
|
||||
{
|
||||
if (m_running)
|
||||
{
|
||||
if (m_server != NULL)
|
||||
if (m_server != nullptr)
|
||||
{
|
||||
m_server->stop();
|
||||
}
|
||||
@ -119,10 +118,9 @@ void falco_webserver::stop()
|
||||
{
|
||||
m_server_thread.join();
|
||||
}
|
||||
if (m_server != NULL)
|
||||
if (m_server != nullptr)
|
||||
{
|
||||
delete m_server;
|
||||
m_server = NULL;
|
||||
m_server = nullptr;
|
||||
}
|
||||
m_running = false;
|
||||
}
|
||||
|
@ -45,6 +45,6 @@ public:
|
||||
|
||||
private:
|
||||
bool m_running = false;
|
||||
httplib::Server* m_server = NULL;
|
||||
std::unique_ptr<httplib::Server> m_server = nullptr;
|
||||
std::thread m_server_thread;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user