internal void reconnect(String addressString, int addressPort, String authenticateString, List <String> initialUsers) { try { activeUsers.Clear(); #region connect to switchboard try { switchboardSocket = new MSNSocketWrapper(addressString, addressPort, false); if (!switchboardSocket.connected()) { Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); throw new Exception("Could not connect to switchboard in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); } } catch (Exception) { Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); return; } #endregion #region authenticate //USR 7 [email protected] 189597.1056411784.29994\r\n switchboardSocket.send(new MSNMessage("USR " + MSNTrIDGenerator.NextID() + " " + controller.Username + " " + authenticateString + "\r\n")); #endregion #region add initial users //CAL 8 [email protected]\r\n if (initialUsers != null) { for (int i = 0; i < initialUsers.Count; i++) { switchboardSocket.send(new MSNMessage("CAL " + MSNTrIDGenerator.NextID() + " " + initialUsers[i] + "\r\n")); } } #endregion #region incommingMessageReadThread try { incommingMessageHandlerThread.Abort(); } catch (Exception) { } incommingMessageHandlerThread = new Thread(new ThreadStart(processIncommingMessageLoop)); incommingMessageHandlerThread.Name = "MSNSwitchboard incomming read thread"; incommingMessageHandlerThread.Start(); #endregion #region incommingMSGThread try { incommingMSGThread.Abort(); } catch (Exception) { } incommingMSGThread = new Thread(new ThreadStart(incommingMSGLoop)); incommingMSGThread.Name = "Incomming MSG handler thread"; incommingMSGThread.Start(); #endregion #region outgoingMSGThread try { outgoingMSGThread.Abort(); } catch (Exception) { } outgoingMSGThread = new Thread(new ThreadStart(outgoingMSGLoop)); outgoingMSGThread.Name = "Outgoing MSG handler thread"; outgoingMSGThread.Start(); #endregion } catch (Exception) { Console.WriteLine("Error establishing switchboard session in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); } }
internal MSNSwitchboard(MSNController controller, String addressString, int addressPort, String authenticateString, List <String> initialUsers) //handles conversations started by local client { try { this.controller = controller; #region connect to switchboard try { switchboardSocket = new MSNSocketWrapper(addressString, addressPort, false); if (!switchboardSocket.connected()) { Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); throw new Exception("Could not connect to switchboard in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); } } catch (Exception) { Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); return; } #endregion #region authenticate //USR 7 [email protected] 189597.1056411784.29994\r\n switchboardSocket.send(new MSNMessage("USR " + MSNTrIDGenerator.NextID() + " " + controller.Username + " " + authenticateString + "\r\n")); #endregion #region add initial users //CAL 8 [email protected]\r\n if (initialUsers != null) { for (int i = 0; i < initialUsers.Count; i++) { switchboardSocket.send(new MSNMessage("CAL " + MSNTrIDGenerator.NextID() + " " + initialUsers[i] + "\r\n")); } } #endregion #region incommingMessageReadThread incommingMessageHandlerThread = new Thread(new ThreadStart(processIncommingMessageLoop)); incommingMessageHandlerThread.Name = "MSNSwitchboard incomming read thread"; incommingMessageHandlerThread.Start(); #endregion #region incommingMSGThread incommingMSGThread = new Thread(new ThreadStart(incommingMSGLoop)); incommingMSGThread.Name = "Incomming MSG handler thread"; incommingMSGThread.Start(); #endregion #region outgoingMSGThread outgoingMSGThread = new Thread(new ThreadStart(outgoingMSGLoop)); outgoingMSGThread.Name = "Outgoing MSG handler thread"; outgoingMSGThread.Start(); #endregion plugins.ElementAdded += new MSNListenableList <IMSNSwitchboardPlugin> .ElementAddedDelegate(plugins_ElementAdded); } catch (Exception) { //Console.WriteLine("Error establishing switchboard session in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")"); } }
internal MSNSwitchboard(MSNController controller, String addressString, int addressPort, String authenticateString, String rngTrID) //handles conversations started by local client { try { this.controller = controller; #region connect to switchboard try { switchboardSocket = new MSNSocketWrapper(addressString, addressPort, false); if (!switchboardSocket.connected()) { Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")"); throw new Exception("Could not connect to switchboard in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")"); } } catch (Exception) { Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")"); return; } #endregion #region authenticate //ANS 1 [email protected] 1056411141.26158 17342299\r\n switchboardSocket.send(new MSNMessage("ANS " + MSNTrIDGenerator.NextID() + " " + controller.Username + " " + authenticateString + " " + rngTrID + "\r\n")); #endregion #region incommingMessageReadThread incommingMessageHandlerThread = new Thread(new ThreadStart(processIncommingMessageLoop)); incommingMessageHandlerThread.Name = "MSNSwitchboard incomming read thread"; incommingMessageHandlerThread.Start(); #endregion #region incommingMSGThread incommingMSGThread = new Thread(new ThreadStart(incommingMSGLoop)); incommingMSGThread.Name = "Incomming MSG handler thread"; incommingMSGThread.Start(); #endregion #region outgoingMSGThread outgoingMSGThread = new Thread(new ThreadStart(outgoingMSGLoop)); outgoingMSGThread.Name = "Outgoing MSG handler thread"; outgoingMSGThread.Start(); #endregion plugins.ElementAdded += new MSNListenableList <IMSNSwitchboardPlugin> .ElementAddedDelegate(plugins_ElementAdded); } catch (Exception) { Console.WriteLine("Error establishing switchboard session in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")"); } }