diff options
| -rw-r--r-- | windows/windns/src/windns/windns.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/windows/windns/src/windns/windns.cpp b/windows/windns/src/windns/windns.cpp index 66b7c94f7c..ea8ee15c33 100644 --- a/windows/windns/src/windns/windns.cpp +++ b/windows/windns/src/windns/windns.cpp @@ -2,6 +2,9 @@ #include "windns.h" #include "windnscontext.h" #include "clientsinkinfo.h" +#include "windns/serialization/deserializer.h" +#include "interfaceconfig.h" +#include "dnsreverter.h" #include <vector> #include <string> @@ -164,7 +167,17 @@ WinDns_Recover( uint32_t dataLength ) { - // TODO: smart stuff + common::serialization::Deserializer d(reinterpret_cast<const uint8_t *>(configData), dataLength); - return false; + uint32_t numConfigs; + d >> numConfigs; + + DnsReverter dnsReverter; + + for (; numConfigs != 0; --numConfigs) + { + dnsReverter.revert(InterfaceConfig(d)); + } + + return true; } |
