xref: /openbmc/phosphor-networkd/src/dns_updater.hpp (revision 1bbe3d1e3bce52044874294e353e80af9ee706a2)
1*1bbe3d1eSWilliam A. Kennington III #pragma once
2*1bbe3d1eSWilliam A. Kennington III 
3*1bbe3d1eSWilliam A. Kennington III #include <filesystem>
4*1bbe3d1eSWilliam A. Kennington III 
5*1bbe3d1eSWilliam A. Kennington III namespace phosphor
6*1bbe3d1eSWilliam A. Kennington III {
7*1bbe3d1eSWilliam A. Kennington III namespace network
8*1bbe3d1eSWilliam A. Kennington III {
9*1bbe3d1eSWilliam A. Kennington III namespace dns
10*1bbe3d1eSWilliam A. Kennington III {
11*1bbe3d1eSWilliam A. Kennington III namespace updater
12*1bbe3d1eSWilliam A. Kennington III {
13*1bbe3d1eSWilliam A. Kennington III 
14*1bbe3d1eSWilliam A. Kennington III namespace fs = std::filesystem;
15*1bbe3d1eSWilliam A. Kennington III 
16*1bbe3d1eSWilliam A. Kennington III constexpr auto RESOLV_CONF = "/etc/resolv.conf";
17*1bbe3d1eSWilliam A. Kennington III 
18*1bbe3d1eSWilliam A. Kennington III /** @brief Reads DNS entries supplied by DHCP and updates specified file
19*1bbe3d1eSWilliam A. Kennington III  *
20*1bbe3d1eSWilliam A. Kennington III  *  @param[in] inFile  - File having DNS entries supplied by DHCP
21*1bbe3d1eSWilliam A. Kennington III  *  @param[in] outFile - File to write the nameserver entries to
22*1bbe3d1eSWilliam A. Kennington III  */
23*1bbe3d1eSWilliam A. Kennington III void updateDNSEntries(const fs::path& inFile, const fs::path& outFile);
24*1bbe3d1eSWilliam A. Kennington III 
25*1bbe3d1eSWilliam A. Kennington III /** @brief User callback handler invoked by inotify watcher
26*1bbe3d1eSWilliam A. Kennington III  *
27*1bbe3d1eSWilliam A. Kennington III  *  Needed to enable production and test code so that the right
28*1bbe3d1eSWilliam A. Kennington III  *  callback functions could be implemented
29*1bbe3d1eSWilliam A. Kennington III  *
30*1bbe3d1eSWilliam A. Kennington III  *  @param[in] inFile - File having DNS entries supplied by DHCP
31*1bbe3d1eSWilliam A. Kennington III  */
processDNSEntries(const fs::path & inFile)32*1bbe3d1eSWilliam A. Kennington III inline void processDNSEntries(const fs::path& inFile)
33*1bbe3d1eSWilliam A. Kennington III {
34*1bbe3d1eSWilliam A. Kennington III     return updateDNSEntries(inFile, RESOLV_CONF);
35*1bbe3d1eSWilliam A. Kennington III }
36*1bbe3d1eSWilliam A. Kennington III 
37*1bbe3d1eSWilliam A. Kennington III } // namespace updater
38*1bbe3d1eSWilliam A. Kennington III } // namespace dns
39*1bbe3d1eSWilliam A. Kennington III } // namespace network
40*1bbe3d1eSWilliam A. Kennington III } // namespace phosphor
41