public override void Connect(FrontendManager fm, ServerModel server) { Trace.Call(fm, server); if (server == null) { throw new ArgumentNullException("server"); } if (server is XmppServerModel) { Server = (XmppServerModel) server; } else { Server = new XmppServerModel(); if (server.ServerID != null) { Server.Load(Session.UserConfig, Protocol, server.ServerID); } // HACK: previous line overwrites any passed values with the values from config // thus we have to copy the original values: Server.Hostname = server.Hostname; Server.Network = server.Network; Server.OnConnectCommands = server.OnConnectCommands; Server.OnStartupConnect = server.OnStartupConnect; Server.Password = server.Password; Server.Port = server.Port; Server.Protocol = server.Protocol; Server.ServerID = server.ServerID; Server.UseEncryption = server.UseEncryption; Server.Username = server.Username; Server.ValidateServerCertificate = server.ValidateServerCertificate; } Host = Server.Hostname; Port = Server.Port; // TODO: use config for single network chat or once per network manager NetworkChat = Session.CreateChat<ProtocolChatModel>( NetworkID, String.Format("{0} {1}", Protocol, Host), this ); Session.AddChat(NetworkChat); if (Host.EndsWith("facebook.com") && !(this is FacebookProtocolManager)) { var builder = CreateMessageBuilder(); builder.AppendEventPrefix(); builder.AppendMessage(_("This engine has native Facebook support, you should be using it instead of connecting to Facebook with XMPP")); // cannot use AddMessageToFrontend because NetworkChat is not yet synced, causing AddMessageToFrontend to drop it. // cannot sync NetworkChat before this, because then the sync would swallow the message Session.AddMessageToChat(NetworkChat, builder.ToMessage()); } Session.SyncChat(NetworkChat); Connect(); }
public override void Connect(FrontendManager fm, ServerModel server) { Trace.Call(fm, server); if (fm == null) { throw new ArgumentNullException("fm"); } if (server == null) { throw new ArgumentNullException("server"); } if (server is XmppServerModel) { Server = (XmppServerModel) server; } else { Server = new XmppServerModel(); if (server.ServerID != null) { Server.Load(Session.UserConfig, server.ServerID); } // HACK: previous line overwrites any passed values with the values from config // thus we have to copy the original values: Server.Hostname = server.Hostname; Server.Network = server.Network; Server.OnConnectCommands = server.OnConnectCommands; Server.OnStartupConnect = server.OnStartupConnect; Server.Password = server.Password; Server.Port = server.Port; Server.Protocol = server.Protocol; Server.ServerID = server.ServerID; Server.UseEncryption = server.UseEncryption; Server.Username = server.Username; Server.ValidateServerCertificate = server.ValidateServerCertificate; } Host = server.Hostname; Port = server.Port; ApplyConfig(Session.UserConfig, Server); // TODO: use config for single network chat or once per network manager NetworkChat = Session.CreateChat<ProtocolChatModel>( NetworkID, "Jabber " + Host, this ); Session.AddChat(NetworkChat); Session.SyncChat(NetworkChat); OpenContactChat(); if (!String.IsNullOrEmpty(JabberClient.ProxyHost)) { var builder = CreateMessageBuilder(); builder.AppendEventPrefix(); builder.AppendText(_("Using proxy: {0}:{1}"), JabberClient.ProxyHost, JabberClient.ProxyPort); Session.AddMessageToChat(Chat, builder.ToMessage()); } JabberClient.Connect(); }
public override void Connect(FrontendManager fm, ServerModel server) { Trace.Call(fm, server); if (server == null) { throw new ArgumentNullException("server"); } if (server is XmppServerModel) { Server = (XmppServerModel) server; } else { Server = new XmppServerModel(); if (server.ServerID != null) { Server.Load(Session.UserConfig, server.ServerID); } // HACK: previous line overwrites any passed values with the values from config // thus we have to copy the original values: Server.Hostname = server.Hostname; Server.Network = server.Network; Server.OnConnectCommands = server.OnConnectCommands; Server.OnStartupConnect = server.OnStartupConnect; Server.Password = server.Password; Server.Port = server.Port; Server.Protocol = server.Protocol; Server.ServerID = server.ServerID; Server.UseEncryption = server.UseEncryption; Server.Username = server.Username; Server.ValidateServerCertificate = server.ValidateServerCertificate; } Host = Server.Hostname; Port = Server.Port; // TODO: use config for single network chat or once per network manager NetworkChat = Session.CreateChat<ProtocolChatModel>( NetworkID, String.Format("{0} {1}", Protocol, Host), this ); Session.AddChat(NetworkChat); Session.SyncChat(NetworkChat); Connect(); }