summaryrefslogtreecommitdiffstats
path: root/examples/network/torrent/bencodeparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/network/torrent/bencodeparser.cpp')
-rw-r--r--examples/network/torrent/bencodeparser.cpp200
1 files changed, 100 insertions, 100 deletions
diff --git a/examples/network/torrent/bencodeparser.cpp b/examples/network/torrent/bencodeparser.cpp
index 2abc41a852..6ef7234539 100644
--- a/examples/network/torrent/bencodeparser.cpp
+++ b/examples/network/torrent/bencodeparser.cpp
@@ -81,26 +81,26 @@ bool BencodeParser::getByteString(QByteArray *byteString)
const int contentSize = content.size();
int size = -1;
do {
- char c = content.at(index);
- if (c < '0' || c > '9') {
- if (size == -1)
- return false;
- if (c != ':') {
- errString = QString("Unexpected character at pos %1: %2")
- .arg(index).arg(c);
- return false;
- }
- ++index;
- break;
- }
- if (size == -1)
- size = 0;
- size *= 10;
- size += c - '0';
+ char c = content.at(index);
+ if (c < '0' || c > '9') {
+ if (size == -1)
+ return false;
+ if (c != ':') {
+ errString = QString("Unexpected character at pos %1: %2")
+ .arg(index).arg(c);
+ return false;
+ }
+ ++index;
+ break;
+ }
+ if (size == -1)
+ size = 0;
+ size *= 10;
+ size += c - '0';
} while (++index < contentSize);
if (byteString)
- *byteString = content.mid(index, size);
+ *byteString = content.mid(index, size);
index += size;
return true;
}
@@ -109,38 +109,38 @@ bool BencodeParser::getInteger(qint64 *integer)
{
const int contentSize = content.size();
if (content.at(index) != 'i')
- return false;
+ return false;
++index;
qint64 num = -1;
bool negative = false;
do {
- char c = content.at(index);
- if (c < '0' || c > '9') {
- if (num == -1) {
- if (c != '-' || negative)
- return false;
- negative = true;
- continue;
- } else {
- if (c != 'e') {
- errString = QString("Unexpected character at pos %1: %2")
- .arg(index).arg(c);
- return false;
- }
- ++index;
- break;
- }
- }
- if (num == -1)
- num = 0;
- num *= 10;
- num += c - '0';
+ char c = content.at(index);
+ if (c < '0' || c > '9') {
+ if (num == -1) {
+ if (c != '-' || negative)
+ return false;
+ negative = true;
+ continue;
+ } else {
+ if (c != 'e') {
+ errString = QString("Unexpected character at pos %1: %2")
+ .arg(index).arg(c);
+ return false;
+ }
+ ++index;
+ break;
+ }
+ }
+ if (num == -1)
+ num = 0;
+ num *= 10;
+ num += c - '0';
} while (++index < contentSize);
if (integer)
- *integer = negative ? -num : num;
+ *integer = negative ? -num : num;
return true;
}
@@ -148,38 +148,38 @@ bool BencodeParser::getList(QList<QVariant> *list)
{
const int contentSize = content.size();
if (content.at(index) != 'l')
- return false;
+ return false;
- QList<QVariant> tmp;
+ QList<QVariant> tmp;
++index;
do {
- if (content.at(index) == 'e') {
- ++index;
- break;
- }
-
- qint64 number;
- QByteArray byteString;
- QList<QVariant> tmpList;
- QMap<QByteArray, QVariant> dictionary;
-
- if (getInteger(&number))
- tmp << number;
- else if (getByteString(&byteString))
- tmp << byteString;
- else if (getList(&tmpList))
- tmp << tmpList;
- else if (getDictionary(&dictionary))
- tmp << QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary);
- else {
- errString = QString("error at index %1").arg(index);
- return false;
- }
+ if (content.at(index) == 'e') {
+ ++index;
+ break;
+ }
+
+ qint64 number;
+ QByteArray byteString;
+ QList<QVariant> tmpList;
+ QMap<QByteArray, QVariant> dictionary;
+
+ if (getInteger(&number))
+ tmp << number;
+ else if (getByteString(&byteString))
+ tmp << byteString;
+ else if (getList(&tmpList))
+ tmp << tmpList;
+ else if (getDictionary(&dictionary))
+ tmp << QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary);
+ else {
+ errString = QString("error at index %1").arg(index);
+ return false;
+ }
} while (index < contentSize);
if (list)
- *list = tmp;
+ *list = tmp;
return true;
}
@@ -187,48 +187,48 @@ bool BencodeParser::getDictionary(QMap<QByteArray, QVariant> *dictionary)
{
const int contentSize = content.size();
if (content.at(index) != 'd')
- return false;
+ return false;
- QMap<QByteArray, QVariant> tmp;
+ QMap<QByteArray, QVariant> tmp;
++index;
do {
- if (content.at(index) == 'e') {
- ++index;
- break;
- }
-
- QByteArray key;
- if (!getByteString(&key))
- break;
-
- if (key == "info")
- infoStart = index;
-
- qint64 number;
- QByteArray byteString;
- QList<QVariant> tmpList;
- QMap<QByteArray, QVariant> dictionary;
-
- if (getInteger(&number))
- tmp.insert(key, number);
- else if (getByteString(&byteString))
- tmp.insert(key, byteString);
- else if (getList(&tmpList))
- tmp.insert(key, tmpList);
- else if (getDictionary(&dictionary))
- tmp.insert(key, QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary));
- else {
- errString = QString("error at index %1").arg(index);
- return false;
- }
-
- if (key == "info")
- infoLength = index - infoStart;
+ if (content.at(index) == 'e') {
+ ++index;
+ break;
+ }
+
+ QByteArray key;
+ if (!getByteString(&key))
+ break;
+
+ if (key == "info")
+ infoStart = index;
+
+ qint64 number;
+ QByteArray byteString;
+ QList<QVariant> tmpList;
+ QMap<QByteArray, QVariant> dictionary;
+
+ if (getInteger(&number))
+ tmp.insert(key, number);
+ else if (getByteString(&byteString))
+ tmp.insert(key, byteString);
+ else if (getList(&tmpList))
+ tmp.insert(key, tmpList);
+ else if (getDictionary(&dictionary))
+ tmp.insert(key, QVariant::fromValue<QMap<QByteArray, QVariant> >(dictionary));
+ else {
+ errString = QString("error at index %1").arg(index);
+ return false;
+ }
+
+ if (key == "info")
+ infoLength = index - infoStart;
} while (index < contentSize);
if (dictionary)
- *dictionary = tmp;
+ *dictionary = tmp;
return true;
}