diff options
author | lloyd <[email protected]> | 2012-05-18 13:14:04 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2012-05-18 13:14:04 +0000 |
commit | 9cdff001953ce80cd15ff556a5ae08aaa98d2df5 (patch) | |
tree | 00b653a94292147415e10b6b9771e8361a48cc3f | |
parent | c26068b5c08d6121ad83ea41ad220e3fb095bced (diff) |
Pipe::reset's requirement that a message be completed meant that
exceptions thrown in end_msg (for instance in CBC decryption when the
padding is bad) more or less screwed up the pipe completely. Allowing
reset here at least allows an escape hatch.
-rw-r--r-- | doc/log.txt | 5 | ||||
-rw-r--r-- | src/filters/pipe.cpp | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/doc/log.txt b/doc/log.txt index cc13a63d3..180a50340 100644 --- a/doc/log.txt +++ b/doc/log.txt @@ -10,6 +10,11 @@ Series 1.10 Version 1.10.2, Not Yet Released ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +* Pipe::reset no longer requires that message processing be completed, + a requirement that caused problems when a Filter's end_msg call + threw an exception, after which point the Pipe object was no longer + usable. + * The SSL/TLS code is disabled by default in this release. A new version is being developed and the current iteration should not be used unless needed for existing code. diff --git a/src/filters/pipe.cpp b/src/filters/pipe.cpp index 3c3b5e6a4..85a6cddab 100644 --- a/src/filters/pipe.cpp +++ b/src/filters/pipe.cpp @@ -75,8 +75,6 @@ void Pipe::init() */ void Pipe::reset() { - if(inside_msg) - throw Invalid_State("Pipe cannot be reset while it is processing"); destruct(pipe); pipe = 0; inside_msg = false; |