From 2afecae39c00c2de6ad3296146e235701b3d5cf9 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Fri, 19 Oct 2007 23:56:51 +0000
Subject: * IRC ChatModule extension should now be more stable.

---
 OpenSim/Region/Environment/Modules/ChatModule.cs | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Region/Environment/Modules/ChatModule.cs b/OpenSim/Region/Environment/Modules/ChatModule.cs
index 518454c..a438ae6 100644
--- a/OpenSim/Region/Environment/Modules/ChatModule.cs
+++ b/OpenSim/Region/Environment/Modules/ChatModule.cs
@@ -188,7 +188,8 @@ namespace OpenSim.Region.Environment.Modules
                                                              });
                         }
                     }
-                }
+                }
+                Thread.Sleep(50);
             }
         }
 
@@ -245,10 +246,20 @@ namespace OpenSim.Region.Environment.Modules
             m_log.Verbose("CHAT", fromName + " (" + e.Channel + " @ " + scene.RegionInfo.RegionName + ") " + typeName + ": " + e.Message);
 
             if (connected)
-            {
-                m_ircWriter.WriteLine("PRIVMSG " + m_channel + " :" + "<" + fromName + " in " + scene.RegionInfo.RegionName + ">:  " +
-                                      e.Message);
-                m_ircWriter.Flush();
+            {
+                try
+                {
+                    m_ircWriter.WriteLine("PRIVMSG " + m_channel + " :" + "<" + fromName + " in " + scene.RegionInfo.RegionName + ">:  " +
+                                          e.Message);
+                    m_ircWriter.Flush();
+                }
+                catch (IOException)
+                {
+                    m_log.Error("IRC","Disconnected from IRC server.");
+                    listener.Abort();
+                    pingSender.Abort();
+                    connected = false;
+                }
             }
 
             if (e.Channel == 0)
-- 
cgit v1.1