mono/mono — pull request #377 by robwilkens (2012-07-07 01:05:50+00:00)
Title: Bug #5926: Catches various crashes from client dropped connection in ser...

...ver

In order git diff --staged returns them

1. HttpListenerManager:
Made sure we're not calling ourselves recursively if the revised timeout
is less than zero.
2. ReplyChannelBase:
Catches XmlException and SocketException errors which we were getting on
dropped connection. Previously these errors would cause a crash which was
reportedly not catchable by the user.
3. BaseRequestProcessor:
Catches IOException and XmlException, which were previously potentially
causing crashes on client disconnect, according to problem report.
4. Channel Dispatcher:
Making sure we don't reply with an exception when we may already be
handling an exception which indicates dropped connection. This was causing
one of the crashes in the stack traces in this bug report.

This is a revised pull request because my earlier one contained merges that were unrelated to the patch. This attempts to be cleaner.

The goal here is to prevent a client from being able to crash a server when responding to WCF service requests by disconnecting from the server early.