src/server/webdav/saxhandler.cpp

changeset 59
ab25c0a231d0
parent 50
4d39adda7a38
child 71
069c152f6272
--- a/src/server/webdav/saxhandler.cpp	Tue Mar 19 17:38:32 2013 +0100
+++ b/src/server/webdav/saxhandler.cpp	Mon May 06 13:44:27 2013 +0200
@@ -88,9 +88,10 @@
         size_t nslen = strlen(ns);
         size_t namelen = strlen(name);
         if(nslen > 0) {
-            property->xmlns = (char*)pool_malloc(pool, nslen + 1);
-            property->xmlns[nslen] = 0;
-            memcpy(property->xmlns, ns, nslen);
+            //property->xmlns = (char*)pool_malloc(pool, nslen + 1);
+            //property->xmlns[nslen] = 0;
+            property->xmlns = xmlnsmap_put(davrq->nsmap, ns);
+            //memcpy(property->xmlns, ns, nslen);
         } else {
             property->xmlns = NULL;
         }
@@ -118,7 +119,7 @@
     char *name = XMLString::transcode(localname);
 
     if(property != NULL) {
-        const char *xmlns = (property->xmlns) ? property->xmlns : "";
+        const char *xmlns = (property->xmlns) ? property->xmlns->xmlns : "";
         
         if(!strcmp(ns, xmlns) && !strcmp(name, property->name)) {
             // add property to DavRequest
@@ -181,7 +182,7 @@
         davPropTag = true;
     } else if(davPropTag) {
         newElement = (XmlElement*)pool_calloc(pool, 1, sizeof(XmlElement));
-        newElement->name = sstr(pool_strdup(pool, name));
+        newElement->name = pool_strdup(pool, name);
         newElement->xmlns = xmlnsmap_put(davrq->nsmap, ns);
         
         /*
@@ -276,6 +277,7 @@
         for(int i=0;i<length;i++) {
             str[i] = chars[i];
         }
+        str[length] = 0;
         
         currentElm->content = str;
         currentElm->ctlen = length;

mercurial