diff options
-rwxr-xr-x | server/server/p_xml.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/server/server/p_xml.cpp b/server/server/p_xml.cpp index 9c6258d..152949a 100755 --- a/server/server/p_xml.cpp +++ b/server/server/p_xml.cpp @@ -103,11 +103,14 @@ bool p_save_proxy_list(std::list<config::p_proxy_entry> *list, char *path) xml_document<> doc;
doc.parse<0>(doc.allocate_string(data.c_str()));
xml_node<> *proxy_list = doc.first_node()->first_node("ProxyList");
- if(!proxy_list)
+ if(proxy_list)
{
- proxy_list = doc.allocate_node(node_element, "ProxyList");
- doc.append_node(proxy_list);
+ proxy_list->remove_all_nodes();
+ proxy_list->remove_all_attributes();
+ doc.remove_node(proxy_list);
}
+ proxy_list = doc.allocate_node(node_element, "ProxyList");
+ doc.append_node(proxy_list);
for(std::list<config::p_proxy_entry>::iterator i = p_list->begin(), end = p_list->end(); i != end; ++i)
{
xml_node<> *proxy = doc.allocate_node(node_element, "Proxy");
|