summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2020-06-28 20:52:09 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2021-02-04 11:00:00 +0100
commit96dc40b19623621a9cc2c5541fb3adbbceb553b1 (patch)
tree405ed81b2c23d21b52324b393c25301056011162 /methods
parent35af71bc026d85aef4af979aa247e837d91dfc1c (diff)
Replace PrintStatus with SendMessage usage
varg API is a nightmare as the symbols seems different on ever other arch, but more importantly SendMessage does a few checks on the content of the message and it is all outputted via C++ iostreams and not mixed in FILE* which is handy for overriding the streams.
Diffstat (limited to 'methods')
-rw-r--r--methods/aptmethod.h30
-rw-r--r--methods/basehttp.cc4
-rw-r--r--methods/gpgv.cc8
3 files changed, 27 insertions, 15 deletions
diff --git a/methods/aptmethod.h b/methods/aptmethod.h
index 7038131cf..bd50e8078 100644
--- a/methods/aptmethod.h
+++ b/methods/aptmethod.h
@@ -325,7 +325,11 @@ protected:
rc = seccomp_load(ctx);
if (rc == -EINVAL)
- Warning("aptMethod::Configuration: could not load seccomp policy: %s", strerror(-rc));
+ {
+ std::string msg;
+ strprintf(msg, "aptMethod::Configuration: could not load seccomp policy: %s", strerror(-rc));
+ Warning(std::move(msg));
+ }
else if (rc != 0)
return _error->FatalE("aptMethod::Configuration", "could not load seccomp policy: %s", strerror(-rc));
@@ -380,12 +384,17 @@ protected:
return true;
}
- void Warning(const char *Format,...)
+ void Warning(std::string &&msg)
{
- va_list args;
- va_start(args,Format);
- PrintStatus("104 Warning", Format, args);
- va_end(args);
+ std::unordered_map<std::string, std::string> fields;
+ if (Queue != 0)
+ fields.emplace("URI", Queue->Uri);
+ else
+ fields.emplace("URI", "<UNKNOWN>");
+ if (not UsedMirror.empty())
+ fields.emplace("UsedMirror", UsedMirror);
+ fields.emplace("Message", std::move(msg));
+ SendMessage("104 Warning", std::move(fields));
}
std::vector<std::string> methodNames;
@@ -560,14 +569,11 @@ class aptAuthConfMethod : public aptMethod
result &= MaybeAddAuth(*authconf, uri);
}
- if (not _error->empty())
+ while (not _error->empty())
{
std::string message;
- while (not _error->empty())
- {
- _error->PopMessage(message);
- Warning("%s", message.c_str());
- }
+ _error->PopMessage(message);
+ Warning(std::move(message));
}
_error->RevertToStack();
diff --git a/methods/basehttp.cc b/methods/basehttp.cc
index 8aac1090c..b75b450cc 100644
--- a/methods/basehttp.cc
+++ b/methods/basehttp.cc
@@ -762,7 +762,9 @@ int BaseHttpMethod::Loop()
// yes, he did! Disable pipelining and rewrite queue
if (Server->Pipeline == true)
{
- Warning(_("Automatically disabled %s due to incorrect response from server/proxy. (man 5 apt.conf)"), "Acquire::http::Pipeline-Depth");
+ std::string msg;
+ strprintf(msg, _("Automatically disabled %s due to incorrect response from server/proxy. (man 5 apt.conf)"), "Acquire::http::Pipeline-Depth");
+ Warning(std::move(msg));
Server->Pipeline = false;
Server->PipelineAllowed = false;
// we keep the PipelineDepth value so that the rest of the queue can be fixed up as well
diff --git a/methods/gpgv.cc b/methods/gpgv.cc
index 08d030a17..a9da456ec 100644
--- a/methods/gpgv.cc
+++ b/methods/gpgv.cc
@@ -264,7 +264,7 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
SubKeyMapping[tokens[9]].emplace_back(sig);
}
else if (strncmp(buffer, APTKEYWARNING, sizeof(APTKEYWARNING)-1) == 0)
- Warning("%s", buffer + sizeof(APTKEYWARNING));
+ Warning(buffer + sizeof(APTKEYWARNING));
else if (strncmp(buffer, APTKEYERROR, sizeof(APTKEYERROR)-1) == 0)
_error->Error("%s", buffer + sizeof(APTKEYERROR));
}
@@ -442,8 +442,12 @@ bool GPGVMethod::URIAcquire(std::string const &Message, FetchItem *Itm)
}))
{
for (auto const & Signer : Signers.SoonWorthless)
+ {
+ std::string msg;
// TRANSLATORS: The second %s is the reason and is untranslated for repository owners.
- Warning(_("Signature by key %s uses weak digest algorithm (%s)"), Signer.key.c_str(), Signer.note.c_str());
+ strprintf(msg, _("Signature by key %s uses weak digest algorithm (%s)"), Signer.key.c_str(), Signer.note.c_str());
+ Warning(std::move(msg));
+ }
}
if (Signers.Good.empty() || !Signers.Bad.empty() || !Signers.NoPubKey.empty())