xref: /openbmc/phosphor-user-manager/phosphor-ldap-config/main.cpp (revision 5d00cf2560f387aa3ca4c58be5ec173fe289f0e5)
1 #include "config.h"
2 #include "ldap_config_mgr.hpp"
3 #include <experimental/filesystem>
4 #include <phosphor-logging/log.hpp>
5 #include <phosphor-logging/elog-errors.hpp>
6 #include <sdbusplus/bus.hpp>
7 #include <xyz/openbmc_project/Common/error.hpp>
8 
9 int main(int argc, char* argv[])
10 {
11     using namespace phosphor::logging;
12     using namespace sdbusplus::xyz::openbmc_project::Common::Error;
13     namespace fs = std::experimental::filesystem;
14     fs::path configDir = fs::path(LDAP_CONFIG_FILE).parent_path();
15 
16     if (!fs::exists(configDir / phosphor::ldap::defaultNslcdFile) ||
17         !fs::exists(configDir / phosphor::ldap::nsSwitchFile))
18     {
19         log<level::ERR>("Error starting LDAP Config App, configfile(s) are "
20                         "missing, exiting!!!");
21         elog<InternalFailure>();
22     }
23     auto bus = sdbusplus::bus::new_default();
24 
25     // Add sdbusplus ObjectManager for the 'root' path of the LDAP config.
26     sdbusplus::server::manager::manager objManager(bus, LDAP_CONFIG_ROOT);
27 
28     phosphor::ldap::ConfigMgr mgr(bus, LDAP_CONFIG_ROOT, LDAP_CONFIG_FILE,
29                                   LDAP_CONF_PERSIST_PATH, TLS_CACERT_PATH,
30                                   TLS_CERT_FILE);
31     mgr.restore();
32 
33     bus.request_name(LDAP_CONFIG_BUSNAME);
34 
35     while (true)
36     {
37         bus.process_discard();
38         bus.wait();
39     }
40 
41     return 0;
42 }
43