don't try to save invalid router

This commit is contained in:
orignal 2024-10-16 15:05:29 -04:00
parent 8981e406f5
commit e26682f4cb
2 changed files with 3 additions and 4 deletions

View File

@ -654,7 +654,7 @@ namespace data
std::string ident = it.second->GetIdentHashBase64(); std::string ident = it.second->GetIdentHashBase64();
if (it.second->IsUpdated ()) if (it.second->IsUpdated ())
{ {
if (it.second->GetBuffer ()) if (it.second->GetBuffer () && !it.second->IsUnreachable ())
{ {
// we have something to save // we have something to save
std::shared_ptr<RouterInfo::Buffer> buffer; std::shared_ptr<RouterInfo::Buffer> buffer;
@ -663,9 +663,8 @@ namespace data
buffer = it.second->CopyBuffer (); buffer = it.second->CopyBuffer ();
it.second->ScheduleBufferToDelete (); it.second->ScheduleBufferToDelete ();
} }
if (buffer && !it.second->IsUnreachable ()) // don't save bad router if (buffer)
saveToDisk.push_back(std::make_pair(ident, buffer)); saveToDisk.push_back(std::make_pair(ident, buffer));
it.second->SetUnreachable (false);
} }
it.second->SetUpdated (false); it.second->SetUpdated (false);
updatedCount++; updatedCount++;

View File

@ -293,7 +293,7 @@ namespace data
void DeleteBuffer () { m_Buffer = nullptr; m_IsBufferScheduledToDelete = false; }; void DeleteBuffer () { m_Buffer = nullptr; m_IsBufferScheduledToDelete = false; };
std::shared_ptr<Buffer> GetSharedBuffer () const { return m_Buffer; }; std::shared_ptr<Buffer> GetSharedBuffer () const { return m_Buffer; };
std::shared_ptr<Buffer> CopyBuffer () const; std::shared_ptr<Buffer> CopyBuffer () const;
void ScheduleBufferToDelete () { m_IsBufferScheduledToDelete = false; }; void ScheduleBufferToDelete () { m_IsBufferScheduledToDelete = true; };
bool IsBufferScheduledToDelete () const { return m_IsBufferScheduledToDelete; }; bool IsBufferScheduledToDelete () const { return m_IsBufferScheduledToDelete; };
bool IsUpdated () const { return m_IsUpdated; }; bool IsUpdated () const { return m_IsUpdated; };