From 573910664116004f72453ad885b0d5eec6e1b9cf Mon Sep 17 00:00:00 2001 From: Jan Kupec Date: Mon, 15 Sep 2008 10:21:04 +0000 Subject: [PATCH] - fixed --loose-auth and --loose-query for removerepo --- src/repos.cc | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/repos.cc b/src/repos.cc index 3254499..5cbfbbe 100644 --- a/src/repos.cc +++ b/src/repos.cc @@ -290,13 +290,38 @@ bool match_repo(Zypper & zypper, string str, RepoInfo *repo) try { - if (known_it->alias() == str || - tmp == number || - find(known_it->baseUrlsBegin(),known_it->baseUrlsEnd(),Url(str)) - != known_it->baseUrlsEnd()) + if (known_it->alias() == str || tmp == number) + found = true; + if (!found) + { + url::ViewOption urlview = url::ViewOption::DEFAULTS + url::ViewOption::WITH_PASSWORD; + if (copts.count("loose-auth")) + { + urlview = urlview + - url::ViewOptions::WITH_PASSWORD + - url::ViewOptions::WITH_USERNAME; + } + if (copts.count("loose-query")) + urlview = urlview - url::ViewOptions::WITH_QUERY_STR; + + if (!(urlview.has(url::ViewOptions::WITH_PASSWORD) + && urlview.has(url::ViewOptions::WITH_QUERY_STR))) + { + for_(urlit, known_it->baseUrlsBegin(), known_it->baseUrlsEnd()) + if (urlit->asString(urlview) == Url(str).asString(urlview)) + { + found = true; + break; + } + } + else + found = + find(known_it->baseUrlsBegin(),known_it->baseUrlsEnd(),Url(str)) + != known_it->baseUrlsEnd(); + } + if (found) { *repo = *known_it; - found = true; break; } } -- 2.7.4