summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-10-12 16:20:23 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-10-12 16:20:44 (GMT)
commiteb788bf484f4d11f524473986bf19d1a80f522bc (patch)
treeec5c4a32dbc7169414e05fd13457578762be9443 /Swiften/Parser/PayloadParsers/PriorityParser.cpp
parent3a876559c905f324e4bc91cec6c58d93160a5a9d (diff)
downloadswift-eb788bf484f4d11f524473986bf19d1a80f522bc.zip
swift-eb788bf484f4d11f524473986bf19d1a80f522bc.tar.bz2
Don't assert on incorrect priorities.
Release-Notes: We don't crash anymore when a contact has set an incorrect priority
Diffstat (limited to 'Swiften/Parser/PayloadParsers/PriorityParser.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/PriorityParser.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/Swiften/Parser/PayloadParsers/PriorityParser.cpp b/Swiften/Parser/PayloadParsers/PriorityParser.cpp
index 7bf81bf..8872977 100644
--- a/Swiften/Parser/PayloadParsers/PriorityParser.cpp
+++ b/Swiften/Parser/PayloadParsers/PriorityParser.cpp
@@ -20,7 +20,13 @@ void PriorityParser::handleStartElement(const String&, const String&, const Attr
void PriorityParser::handleEndElement(const String&, const String&) {
--level_;
if (level_ == 0) {
- getPayloadInternal()->setPriority(boost::lexical_cast<int>(text_));
+ int priority = 0;
+ try {
+ priority = boost::lexical_cast<int>(text_);
+ }
+ catch (boost::bad_lexical_cast& e) {
+ }
+ getPayloadInternal()->setPriority(priority);
}
}