IMAP: Fixed stream vs. parse exception handling.
* Protocol::HandleNextResponse() will now exit when a stream exception occurs. * This should fix bug #12601.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2015, Haiku Inc. All Rights Reserved.
|
* Copyright 2010-2016, Haiku Inc. All Rights Reserved.
|
||||||
* Copyright 2010 Clemens Zeidler. All rights reserved.
|
* Copyright 2010 Clemens Zeidler. All rights reserved.
|
||||||
*
|
*
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
@@ -355,6 +355,8 @@ Protocol::HandleResponse(Command* command, bigtime_t timeout,
|
|||||||
}
|
}
|
||||||
} catch (ParseException& exception) {
|
} catch (ParseException& exception) {
|
||||||
printf("Error during parsing: %s\n", exception.Message());
|
printf("Error during parsing: %s\n", exception.Message());
|
||||||
|
} catch (StreamException& exception) {
|
||||||
|
return exception.Status();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fOngoingCommands.size() == 0)
|
if (fOngoingCommands.size() == 0)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2011-2013, Axel Dörfler, [email protected].
|
* Copyright 2011-2016, Axel Dörfler, [email protected].
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -393,7 +393,7 @@ ParseException::ParseException(const char* format, ...)
|
|||||||
|
|
||||||
StreamException::StreamException(status_t status)
|
StreamException::StreamException(status_t status)
|
||||||
:
|
:
|
||||||
ParseException("Error from stream: %s", status)
|
fStatus(status)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2011-2013, Axel Dörfler, [email protected].
|
* Copyright 2011-2016, Axel Dörfler, [email protected].
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
#ifndef RESPONSE_H
|
#ifndef RESPONSE_H
|
||||||
@@ -107,9 +107,14 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class StreamException : public ParseException {
|
class StreamException : public std::exception {
|
||||||
public:
|
public:
|
||||||
StreamException(status_t status);
|
StreamException(status_t status);
|
||||||
|
|
||||||
|
status_t Status() const { return fStatus; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
status_t fStatus;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user