summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-12-10 05:01:02 +0200
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-12-10 05:01:02 +0200
commit0b0c959dbab7ac923c904102ae6b2fcedab074a1 (patch)
tree54783371d72397a5e77a2609ab1f292ac669cbfd
parent8a1608b14343f8612199a5fae9173df6d0361821 (diff)
clean existing proxy list in proxifier config
-rwxr-xr-xserver/server/p_xml.cpp9
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");