fix(Cli): better code to convert from base 64 (uri command)

This commit is contained in:
Ronan Abhamon 2017-08-16 09:26:00 +02:00
parent 833be4c60e
commit 306c187774
2 changed files with 5 additions and 16 deletions

View file

@ -149,24 +149,14 @@ void Cli::Command::execute (QHash<QString, QString> &args) const {
}
}
void Cli::Command::decode (QHash <QString,QString> &args) const{
QByteArray qa;
for (const auto &argName : args.keys()) {
if (argName != QString("sip-address")) {
qa.append(args[argName]);
args[argName] = QByteArray::fromBase64(qa);
qa.clear();
}
}
}
void Cli::Command::executeUri (const shared_ptr<linphone::Address> &address) const {
QHash<QString, QString> args;
for (const auto &argName : mArgsScheme.keys())
args[argName] = ::Utils::coreStringToAppString(address->getHeader(::Utils::appStringToCoreString(argName)));
for (const auto &argName : mArgsScheme.keys()) {
const string header = address->getHeader(::Utils::appStringToCoreString(argName));
args[argName] = QByteArray::fromBase64(QByteArray(header.c_str(), header.length()));
}
address->clean();
args["sip-address"] = ::Utils::coreStringToAppString(address->asStringUriOnly());
decode(args);
execute(args);
}
@ -237,7 +227,7 @@ void Cli::executeCommand (const QString &command, CommandFormat *format) const {
return;
}
//TODO: check if there is any header when the `method` header is missing.
// TODO: Check if there is any header when the `method` header is missing.
const QString functionName = ::Utils::coreStringToAppString(address->getHeader("method")).isEmpty()
? QStringLiteral("call")
: ::Utils::coreStringToAppString(address->getHeader("method"));

View file

@ -63,7 +63,6 @@ class Cli : public QObject {
const QHash<QString, Argument> &argsScheme
);
void decode (QHash<QString, QString> &args) const;
void execute (QHash<QString, QString> &args) const;
void executeUri (const std::shared_ptr<linphone::Address> &address) const;