diff options
Diffstat (limited to 'src/lib/upnp')
-rw-r--r-- | src/lib/upnp/ContentDirectoryService.cxx | 3 | ||||
-rw-r--r-- | src/lib/upnp/Util.cxx | 28 | ||||
-rw-r--r-- | src/lib/upnp/Util.hxx | 3 |
3 files changed, 2 insertions, 32 deletions
diff --git a/src/lib/upnp/ContentDirectoryService.cxx b/src/lib/upnp/ContentDirectoryService.cxx index ef8757ec5..ee7c0d7f5 100644 --- a/src/lib/upnp/ContentDirectoryService.cxx +++ b/src/lib/upnp/ContentDirectoryService.cxx @@ -24,11 +24,12 @@ #include "ixmlwrap.hxx" #include "Util.hxx" #include "Action.hxx" +#include "util/UriUtil.hxx" #include "util/Error.hxx" ContentDirectoryService::ContentDirectoryService(const UPnPDevice &device, const UPnPService &service) - :m_actionURL(caturl(device.URLBase, service.controlURL)), + :m_actionURL(uri_apply_base(device.URLBase, service.controlURL)), m_serviceType(service.serviceType), m_deviceId(device.UDN), m_friendlyName(device.friendlyName), diff --git a/src/lib/upnp/Util.cxx b/src/lib/upnp/Util.cxx index cf34a47d3..79cfb111c 100644 --- a/src/lib/upnp/Util.cxx +++ b/src/lib/upnp/Util.cxx @@ -39,34 +39,6 @@ trimstring(std::string &s, const char *ws) s.replace(pos + 1, std::string::npos, std::string()); } -std::string -caturl(const std::string &s1, const std::string &s2) -{ - if (s2.front() == '/') { - /* absolute path: replace the whole URI path in s1 */ - - auto i = s1.find("://"); - if (i == s1.npos) - /* no scheme: override s1 completely */ - return s2; - - /* find the first slash after the host part */ - i = s1.find('/', i + 3); - if (i == s1.npos) - /* there's no URI path - simply append s2 */ - i = s1.length(); - - return s1.substr(0, i) + s2; - } - - std::string out(s1); - if (out.back() != '/') - out.push_back('/'); - - out += s2; - return out; -} - static void path_catslash(std::string &s) { diff --git a/src/lib/upnp/Util.hxx b/src/lib/upnp/Util.hxx index 58e382faa..a59f23521 100644 --- a/src/lib/upnp/Util.hxx +++ b/src/lib/upnp/Util.hxx @@ -25,9 +25,6 @@ #include <string> #include <list> -std::string -caturl(const std::string& s1, const std::string& s2); - void trimstring(std::string &s, const char *ws = " \t\n"); |