From 79c298422241c2b38be2dd5f25df65139835aff2 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Fri, 2 Dec 2022 13:29:00 +0100 Subject: [PATCH] Docker: Make hostname valid for Urls Change-Id: I026aee70503699fcada30948195a7ebd4c76aeb0 Reviewed-by: hjk --- src/plugins/docker/dockerdevice.cpp | 10 +++++++--- 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;