findControlUrl

Scan an IGD device-description XML document for the first WAN(IP|PPP)Connection service and its <controlURL>, plus any <URLBase>. Ports find_control_url (upnp.cpp): we walk <service> blocks, accept the first whose <serviceType> is one of ACCEPTED_SERVICE_TYPES, and take the <controlURL> inside that same service block. Returns null when no usable service is present (libtorrent then marks the device disabled).

The parse is intentionally lenient about namespaces and whitespace, matching libtorrent's tag-stack scanner: tag names are compared case-insensitively after stripping any XML namespace prefix.