diff options
author | Marcus Tillmanns <[email protected]> | 2022-12-02 13:29:00 +0100 |
---|---|---|
committer | Marcus Tillmanns <[email protected]> | 2022-12-06 12:02:04 +0000 |
commit | 79c298422241c2b38be2dd5f25df65139835aff2 (patch) | |
tree | 0c17783b616b984338cd233d8decbb18201a673e /src/plugins/docker | |
parent | 0f4430ca05081b12c7b2cfd2d2ff9336ba30629c (diff) |
Docker: Make hostname valid for Urls
Change-Id: I026aee70503699fcada30948195a7ebd4c76aeb0
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/docker')
-rw-r--r-- | src/plugins/docker/dockerdevice.cpp | 10 | ||||
-rw-r--r-- | src/plugins/docker/dockerdevice.h | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index e4e8bd64a3d..f8fad9efe66 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -150,6 +150,7 @@ public: DockerSettings *settings() { return m_settings; } QString repoAndTag() const { return m_data.repoAndTag(); } + QString repoAndTagEncoded() const { return m_data.repoAndTagEncoded(); } QString dockerImageId() const { return m_data.imageId; } Environment environment(); @@ -770,7 +771,7 @@ FilePath DockerDevice::mapToGlobalPath(const FilePath &pathOnDevice) const } return FilePath::fromParts(Constants::DOCKER_DEVICE_SCHEME, - d->repoAndTag(), + d->repoAndTagEncoded(), pathOnDevice.path()); // The following would work, but gives no hint on repo and tag @@ -784,7 +785,7 @@ FilePath DockerDevice::mapToGlobalPath(const FilePath &pathOnDevice) const Utils::FilePath DockerDevice::rootPath() const { - return FilePath::fromParts(Constants::DOCKER_DEVICE_SCHEME, d->repoAndTag(), u"/"); + return FilePath::fromParts(Constants::DOCKER_DEVICE_SCHEME, d->repoAndTagEncoded(), u"/"); } bool DockerDevice::handlesFile(const FilePath &filePath) const @@ -797,7 +798,10 @@ bool DockerDevice::handlesFile(const FilePath &filePath) const if (isDockerScheme && filePath.host() == d->dockerImageId()) return true; - if (isDockerScheme && filePath.host() == QString(d->repoAndTag())) + if (isDockerScheme && filePath.host() == d->repoAndTagEncoded()) + return true; + + if (isDockerScheme && filePath.host() == d->repoAndTag()) return true; return false; diff --git a/src/plugins/docker/dockerdevice.h b/src/plugins/docker/dockerdevice.h index 14a1a074d72..015ea806556 100644 --- a/src/plugins/docker/dockerdevice.h +++ b/src/plugins/docker/dockerdevice.h @@ -39,6 +39,8 @@ public: return repo + ':' + tag; } + QString repoAndTagEncoded() const { return repoAndTag().replace(':', '.'); } + QString imageId; QString repo; QString tag; |