Просмотр исходного кода

Switched from regexp to using existing URI class to strip user/password.

Eugene V. Lyubimkin лет назад: 17
Родитель
Сommit
c94e518c5e
1 измененных файлов с 4 добавлено и 15 удалено
  1. 4 15
      apt-pkg/algorithms.cc

+ 4 - 15
apt-pkg/algorithms.cc

@@ -1343,21 +1343,10 @@ bool ListUpdate(pkgAcquireStatus &Stat,
 
 
       (*I)->Finished();
       (*I)->Finished();
 
 
-	  // stripping username/password from URI if present
-	  string descUri = (*I)->DescURI();
-	  regex_t userPassRegex;
-	  regcomp(&userPassRegex, "\\://(\\w+)\\:(\\w+)@", REG_EXTENDED);
-	  regmatch_t userPassMatch;
-	  int regMatchResult = regexec(&userPassRegex, descUri.c_str(), 1, &userPassMatch, 0);
-	  if (regMatchResult == 0 && userPassMatch.rm_so != -1) // regexp matched
-	  {
-         // really stripping
-		 size_t stripStart = userPassMatch.rm_so + 3;
-		 size_t stripEnd = userPassMatch.rm_eo;
-		 descUri = descUri.substr(0, stripStart) +
-            descUri.substr(stripEnd, string::npos);
-      }
-      regfree(&userPassRegex);
+	  ::URI uri((*I)->DescURI());
+	  uri.User.clear();
+	  uri.Password.clear();
+	  string descUri = string(uri);
 
 
       _error->Warning(_("Failed to fetch %s  %s\n"), descUri.c_str(),
       _error->Warning(_("Failed to fetch %s  %s\n"), descUri.c_str(),
 	      (*I)->ErrorText.c_str());
 	      (*I)->ErrorText.c_str());