summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--windows/windns/src/windns/configmanager.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/windows/windns/src/windns/configmanager.cpp b/windows/windns/src/windns/configmanager.cpp
index 138bbd5f75..09b3049fa4 100644
--- a/windows/windns/src/windns/configmanager.cpp
+++ b/windows/windns/src/windns/configmanager.cpp
@@ -1,5 +1,6 @@
#include "stdafx.h"
#include "configmanager.h"
+#include "windns/serialization/serializer.h"
#include <utility>
#include <algorithm>
@@ -124,9 +125,16 @@ bool ConfigManager::internalUpdate(const InterfaceConfig &config)
void ConfigManager::exportConfigs()
{
- //
- // TODO: Serialize all configs and send to config sink
- //
- // serialize as array of InterfaceConfig?
- //
+ common::serialization::Serializer s;
+
+ s << static_cast<uint32_t>(m_configs.size());
+
+ for (auto it = m_configs.begin(); it != m_configs.end(); ++it)
+ {
+ it->second.serialize(s);
+ }
+
+ auto data = s.blob();
+
+ m_configSinkInfo.sink(&data[0], static_cast<uint32_t>(data.size()), m_configSinkInfo.context);
}