--- a/libidav/utils.c Sun Oct 04 15:57:40 2015 +0200 +++ b/libidav/utils.c Sun Oct 04 18:35:15 2015 +0200 @@ -87,6 +87,35 @@ } } +char* util_url_base(char *url) { + sstr_t u = sstr(url); + int len = u.length; + 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; + for(i=0;i<len;i++) { + c = url[i]; + if(c == '/') { + slashcount++; + if(slashcount == slmax) { + i++; + break; + } + } + } + sstr_t server = sstrsubsl(u, 0, i); + server = sstrdup(server); + return server.ptr; +} + char* util_url_path(char *url) { char *path = NULL; size_t len = strlen(url);