[gnote] Fix FileSystemSyncServer::id()



commit 4dca06070d37aed868b2deb60ac4445c21034dc8
Author: Aurimas Äernius <aurisc4 gmail com>
Date:   Fri Mar 9 21:30:17 2012 +0200

    Fix FileSystemSyncServer::id()
    
    Failing to read server id using XPath.
    Switching to using sharp::XmlReader.

 src/synchronization/filesystemsyncserver.cpp |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
---
diff --git a/src/synchronization/filesystemsyncserver.cpp b/src/synchronization/filesystemsyncserver.cpp
index d5f9525..4021a2a 100644
--- a/src/synchronization/filesystemsyncserver.cpp
+++ b/src/synchronization/filesystemsyncserver.cpp
@@ -31,6 +31,7 @@
 #include "sharp/files.hpp"
 #include "sharp/uuid.hpp"
 #include "sharp/xml.hpp"
+#include "sharp/xmlreader.hpp"
 #include "sharp/xmlwriter.hpp"
 
 
@@ -510,13 +511,12 @@ std::string FileSystemSyncServer::id()
 
   // Attempt to read from manifest file first
   if(is_valid_xml_file(m_manifest_path)) {
-    xmlDocPtr xml_doc = xmlReadFile(m_lock_path.c_str(), "UTF-8", 0);
-    xmlNodePtr root_node = xmlDocGetRootElement(xml_doc);
-
-    xmlNodePtr syncNode = sharp::xml_node_xpath_find_single_node(root_node, "//sync");
-    m_server_id = sharp::xml_node_get_attribute(syncNode, "server-id");
-
-    xmlFreeDoc(xml_doc);
+    sharp::XmlReader reader(m_manifest_path);
+    if(reader.read()) {
+      if(reader.get_node_type() == XML_READER_TYPE_ELEMENT && reader.get_name() == "sync") {
+	m_server_id = reader.get_attribute("server-id");
+      }
+    }
   }
 
   // Generate a new ID if there isn't already one



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]