diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-12-10 05:01:02 +0200 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-12-10 05:01:02 +0200 |
commit | 0b0c959dbab7ac923c904102ae6b2fcedab074a1 (patch) | |
tree | 54783371d72397a5e77a2609ab1f292ac669cbfd /server | |
parent | 8a1608b14343f8612199a5fae9173df6d0361821 (diff) |
clean existing proxy list in proxifier config
Diffstat (limited to 'server')
-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");
|