rendered paste bodyerandi$ svn diff
Index: WebConnection.cs
===================================================================
--- WebConnection.cs (revision 37141)
+++ WebConnection.cs (working copy)
@@ -805,14 +805,15 @@
if (nstream == null)
return;
- try {
+ // try {
nstream.Write (buffer, offset, size);
// here SSL handshake should have been done
if (ssl && !certsAvailable) {
GetCertificates ();
}
- } catch (Exception) {
- }
+ // } catch (Exception e) {
+ // Console.WriteLine ("being caught in Write: {0}", e);
+ // }
}
internal bool TryReconnect ()
@@ -855,6 +856,7 @@
socket.Close ();
} catch {}
socket = null;
+ status = WebExceptionStatus.NameResolutionFailure;
}
if (sendNext) {
@@ -876,6 +878,10 @@
internal bool Connected {
get {
lock (this) {
+ bool s = socket != null && socket.Connected;
+ if (s == false)
+ Console.WriteLine ("socket: {0} {1} {2}", socket, socket != null && socket.Connected, status);
+
return (socket != null && socket.Connected);
}
}
Index: WebConnectionStream.cs
===================================================================
--- WebConnectionStream.cs (revision 37141)
+++ WebConnectionStream.cs (working copy)
@@ -394,7 +394,9 @@
headersSent = true;
try {
cnc.Write (buffer, offset, size);
- } catch (IOException) {
+ } catch (IOException e) {
+ Console.WriteLine ("EXCEPTION CAUGHT, RECONNECTING: " + e);
+
if (cnc.Connected)
throw;
@@ -446,7 +448,12 @@
if (cnc.Data.StatusCode != 0 && cnc.Data.StatusCode != 100)
return;
+ bool old = cnc.Connected;
cnc.Write (bytes, 0, length);
+ if (cnc.Connected == false){
+ Console.WriteLine ("Connected=false, old={0}", old);
+ }
+
if (!cnc.Connected && cnc.TryReconnect ())
continue;
erandi$