From d681d44e1e1aeb06b87af0b54b5716fef9d16802 Mon Sep 17 00:00:00 2001 From: APTX Date: Thu, 24 May 2012 00:20:37 +0200 Subject: [PATCH] Warn if amask/fmask bits get removed. Setting invalid bits might make break result parsing. --- animecommand.cpp | 7 +++++++ filecommand.cpp | 15 ++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/animecommand.cpp b/animecommand.cpp index 3a83a52..c31f88d 100644 --- a/animecommand.cpp +++ b/animecommand.cpp @@ -78,8 +78,15 @@ Command AnimeCommand::rawCommand() const cmd.second["aname"] = m_aname; if (m_amask) + { + if ((m_amask & AnimeFlag::AllData) != m_amask) + { + qWarning() << "Clearing invalid bits in amask"; + } + cmd.second["amask"] = QString::number(m_amask & AnimeFlag::AllData, 16) .rightJustified(14, QLatin1Char('0'));; + } return cmd; } diff --git a/filecommand.cpp b/filecommand.cpp index 931d8c9..b9d92d3 100644 --- a/filecommand.cpp +++ b/filecommand.cpp @@ -230,10 +230,19 @@ Command FileCommand::rawCommand() const cmd.second["fid"] = m_fid; } + if ((m_fmask & FileFlag::AllData) != m_fmask) + { + qWarning() << "Clearing invalid bits in fmask"; + } + if ((m_amask & FileAnimeFlag::AllData) != m_amask) + { + qWarning() << "Clearing invalid bits in fmask"; + } + // Clear any bits which aren't known and pad to 8 characters cmd.second["fmask"] = QString::number(m_fmask & FileFlag::AllData, 16) .rightJustified(10, QLatin1Char('0')); - cmd.second["amask"] = QString::number(quint32(m_amask & FileAnimeFlag::AllData), 16) + cmd.second["amask"] = QString::number(m_amask & FileAnimeFlag::AllData, 16) .rightJustified(8, QLatin1Char('0')); return cmd; @@ -315,7 +324,7 @@ void FileReply::readReplyData(const QString &reply) { if (partNo >= parts.size()) { - qWarning() << "Not enough parts in reply."; + qWarning() << "Not enough parts in reply. fmask"; continue; } fileFlagData.insert(FileFlags(flag), parts[partNo]); @@ -329,7 +338,7 @@ void FileReply::readReplyData(const QString &reply) { if (partNo >= parts.size()) { - qWarning() << "Not enough parts in reply."; + qWarning() << "Not enough parts in reply. amask"; continue; } fileAnimeFlagData.insert(FileAnimeFlags(flag), parts[partNo]); -- 2.52.0