dav/utils.c

changeset 11
5db6178d8b58
parent 7
d9bdd5a22c1d
child 14
d1a43035d3a2
--- a/dav/utils.c	Mon Aug 12 19:50:14 2013 +0200
+++ b/dav/utils.c	Tue Aug 13 11:19:22 2013 +0200
@@ -70,18 +70,26 @@
 
 char* util_url_path(char *url) { 
     char *path = NULL;
+    size_t len = strlen(url);
     int slashcount = 0;
+    int slmax;
+    if(len > 7 && !strncasecmp(url, "http://", 7)) {
+        slmax = 3;
+    } else if(len > 8 && !strncasecmp(url, "https://", 8)) {
+        slmax = 3;
+    } else {
+        slmax = 1;
+    }
     char c;
-    int i = 0;
-    while((c = url[i]) != 0) {
+    for(int i=0;i<len;i++) {
+        c = url[i];
         if(c == '/') {
             slashcount++;
-            if(slashcount == 3) {
+            if(slashcount == slmax) {
                 path = url + i;
                 break;
             }
         }
-        i++;
     } 
     return path;
 }

mercurial