libidav/methods.c

changeset 66
f8c1f685e08e
parent 62
3b813c57c106
child 74
da079dc0724c
--- a/libidav/methods.c	Sun Nov 09 11:30:24 2014 +0100
+++ b/libidav/methods.c	Sun Nov 09 14:33:23 2014 +0100
@@ -280,8 +280,8 @@
                 //char *href = (char*)href_node->content;
                 href = util_url_path((char*)href_node->content);
                 
-                sstr_t href_s = sstr((char*)href);
-                sstr_t href_r = sstr(resource->href);
+                sstr_t href_s = sstr(util_url_decode(resource->session, href));
+                sstr_t href_r = sstr(util_url_decode(resource->session, resource->href));
                 if(!sstrcmp(href_s, href_r)) {
                     res = resource;
                 } else if(href_s.length == href_r.length + 1) {
@@ -292,6 +292,9 @@
                         }
                     }
                 }
+                
+                free(href_s.ptr);
+                free(href_r.ptr);
             } else if(xstreq(node->name, "propstat")) {
                 xmlNode *n = node->children;
                 xmlNode *prop_node = NULL;

mercurial