aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/docker
diff options
context:
space:
mode:
authorMarcus Tillmanns <[email protected]>2022-12-02 13:29:00 +0100
committerMarcus Tillmanns <[email protected]>2022-12-06 12:02:04 +0000
commit79c298422241c2b38be2dd5f25df65139835aff2 (patch)
tree0c17783b616b984338cd233d8decbb18201a673e /src/plugins/docker
parent0f4430ca05081b12c7b2cfd2d2ff9336ba30629c (diff)
Docker: Make hostname valid for Urls
Diffstat (limited to 'src/plugins/docker')
-rw-r--r--src/plugins/docker/dockerdevice.cpp10
-rw-r--r--src/plugins/docker/dockerdevice.h2
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;