diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-20 12:34:50 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-20 12:34:50 +0000 |
| commit | d5b9ca273924e220a6b5a9c78e7fddfe9400ac53 (patch) | |
| tree | c374b6f2e0cc034cf29b5213ffaa36d56a27336c /src/QXmppStream.cpp | |
| parent | 5008f4e433c305f63b6b6dbd4d8545ab4cb9d4b4 (diff) | |
| download | qxmpp-d5b9ca273924e220a6b5a9c78e7fddfe9400ac53.tar.gz | |
replace Digest MD5 parsing code, the current code chokes on non-quoted parameters
Diffstat (limited to 'src/QXmppStream.cpp')
| -rw-r--r-- | src/QXmppStream.cpp | 42 |
1 files changed, 1 insertions, 41 deletions
diff --git a/src/QXmppStream.cpp b/src/QXmppStream.cpp index b17a314d..033e404e 100644 --- a/src/QXmppStream.cpp +++ b/src/QXmppStream.cpp @@ -828,47 +828,7 @@ void QXmppStream::sendAuthDigestMD5ResponseStep1(const QString& challenge) { QByteArray ba = QByteArray::fromBase64(challenge.toUtf8()); - QMap<QByteArray, QByteArray> map; - - QByteArray key; - QByteArray value; - bool parsingValue = false; - int startindex = 0; - for(int i = 0; i < ba.length(); i++) - { - char next = ba.at(i); - switch (next) { - case '=': - if (!parsingValue) - { - // Trim the key, but do not trim the value as it is in delimiters - key = ba.mid(startindex, i - startindex).trimmed(); - // Skip the equals and delimiter - startindex = i + 2; - } - break; - case '"': - // Ignore the opening delimiter - if (startindex != (i + 1)) - { - value = ba.mid(startindex, i - startindex); - map[key] = value; - debug(key + ":" + value); - // Skip the comma - i += 2; - startindex = i; - parsingValue = false; - } - else { - parsingValue = true; - } - - break; - - default: - break; - } - } + QMap<QByteArray, QByteArray> map = parseDigestMd5(ba); if (!map.contains("nonce")) { |
