11dc9178dSRatan Gupta #include "config.h" 2*1334b7b3SPatrick Williams 31dc9178dSRatan Gupta #include "snmp_conf_manager.hpp" 41dc9178dSRatan Gupta 51dc9178dSRatan Gupta #include <phosphor-logging/log.hpp> 61dc9178dSRatan Gupta #include <sdbusplus/bus.hpp> 71dc9178dSRatan Gupta #include <sdbusplus/server/manager.hpp> 81dc9178dSRatan Gupta 91dc9178dSRatan Gupta #include <memory> 101dc9178dSRatan Gupta 111dc9178dSRatan Gupta /* Need a custom deleter for freeing up sd_event */ 121dc9178dSRatan Gupta struct EventDeleter 131dc9178dSRatan Gupta { 141dc9178dSRatan Gupta void operator()(sd_event* event) const 151dc9178dSRatan Gupta { 161dc9178dSRatan Gupta event = sd_event_unref(event); 171dc9178dSRatan Gupta } 181dc9178dSRatan Gupta }; 191dc9178dSRatan Gupta 201dc9178dSRatan Gupta using EventPtr = std::unique_ptr<sd_event, EventDeleter>; 211dc9178dSRatan Gupta 221dc9178dSRatan Gupta int main(int argc, char* argv[]) 231dc9178dSRatan Gupta { 241dc9178dSRatan Gupta using namespace phosphor::logging; 251dc9178dSRatan Gupta 261dc9178dSRatan Gupta auto bus = sdbusplus::bus::new_default(); 271dc9178dSRatan Gupta 281dc9178dSRatan Gupta sd_event* event = nullptr; 291dc9178dSRatan Gupta auto r = sd_event_default(&event); 301dc9178dSRatan Gupta if (r < 0) 311dc9178dSRatan Gupta { 321dc9178dSRatan Gupta log<level::ERR>("Error creating a default sd_event handler"); 331dc9178dSRatan Gupta return r; 341dc9178dSRatan Gupta } 351dc9178dSRatan Gupta 361dc9178dSRatan Gupta EventPtr eventPtr{event}; 371dc9178dSRatan Gupta event = nullptr; 381dc9178dSRatan Gupta 391dc9178dSRatan Gupta // Attach the bus to sd_event to service user requests 401dc9178dSRatan Gupta bus.attach_event(eventPtr.get(), SD_EVENT_PRIORITY_NORMAL); 411dc9178dSRatan Gupta 421dc9178dSRatan Gupta // Add sdbusplus Object Manager for the 'root' path of the snmp. 431dc9178dSRatan Gupta sdbusplus::server::manager::manager objManager(bus, OBJ_NETWORK_SNMP); 441dc9178dSRatan Gupta bus.request_name(BUSNAME_NETWORK_SNMP); 451dc9178dSRatan Gupta 461dc9178dSRatan Gupta auto manager = std::make_unique<phosphor::network::snmp::ConfManager>( 471dc9178dSRatan Gupta bus, OBJ_NETWORK_SNMP); 481dc9178dSRatan Gupta 49212f53e8SRatan Gupta manager->restoreClients(); 50212f53e8SRatan Gupta 511dc9178dSRatan Gupta return sd_event_loop(eventPtr.get()); 521dc9178dSRatan Gupta } 53