return updated;
}
-bool pdns::RecResolve::changeDetected()
-{
- bool change = d_refresher.changes.exchange(false);
- return change;
-}
-
pdns::RecResolve::Refresher::Refresher(time_t interval, const std::function<void()>& callback, pdns::RecResolve& res) :
d_resolver(res), d_callback(callback), d_interval(std::max(static_cast<time_t>(1), interval))
{
log->info(Logr::Error, "id.server/CH/TXT resolves to my own server identity", "id.server", Logging::Loggable(resolvedServerID));
}
}
- changes = d_resolver.refresh(time(nullptr));
+ bool changes = d_resolver.refresh(time(nullptr));
wakeTime = time(nullptr);
if (changes) {
d_callback();
- changes = false;
}
}
}
void startRefresher();
// Wipe one or all names
void wipe(const std::string& name = "");
- // Did we see a change? Calling this function will reset the flag.
- bool changeDetected();
private:
bool refresh(time_t now);
void finish();
void trigger();
- std::atomic<bool> changes{false};
-
private:
void refreshLoop();