/// <summary> /// Default constuctor, initializes sane default values /// </summary> public LoginParams() { List<string> options = new List<string>(16); options.Add("inventory-root"); options.Add("inventory-skeleton"); options.Add("inventory-lib-root"); options.Add("inventory-lib-owner"); options.Add("inventory-skel-lib"); options.Add("initial-outfit"); options.Add("gestures"); options.Add("event_categories"); options.Add("event_notifications"); options.Add("classified_categories"); options.Add("buddy-list"); options.Add("ui-config"); options.Add("tutorial_settings"); options.Add("login-flags"); options.Add("global-textures"); options.Add("adult_compliant"); this.Options = options.ToArray(); this.MethodName = "login_to_simulator"; this.Start = "last"; this.Platform = NetworkManager.GetPlatform(); this.MAC = NetworkManager.GetMAC(); this.ViewerDigest = String.Empty; this.ID0 = NetworkManager.GetMAC(); this.AgreeToTos = true; this.ReadCritical = true; this.LastExecEvent = LastExecStatus.Normal; }
public void Login() { IsLoggingIn = true; // Report crashes only once and not on relogs/reconnects LastExecStatus execStatus = instance.GetLastExecStatus(); if (!instance.AnotherInstanceRunning() && execStatus != LastExecStatus.Normal && (!instance.ReportedCrash)) { instance.ReportedCrash = true; loginOptions.LastExecEvent = execStatus; Logger.Log("Reporting crash of the last application run to the grid login service", Helpers.LogLevel.Warning); } else { loginOptions.LastExecEvent = LastExecStatus.Normal; Logger.Log("Reporting normal shutdown of the last application run to the grid login service", Helpers.LogLevel.Info); } instance.MarkStartExecution(); OverrideEventArgs ea = new OverrideEventArgs(); OnClientLoggingIn(ea); if (ea.Cancel) { IsLoggingIn = false; return; } if (string.IsNullOrEmpty(loginOptions.FirstName) || string.IsNullOrEmpty(loginOptions.LastName) || string.IsNullOrEmpty(loginOptions.Password)) { OnClientLoginStatus( new LoginProgressEventArgs(LoginStatus.Failed, "One or more fields are blank.", string.Empty)); } string startLocation = string.Empty; switch (loginOptions.StartLocation) { case StartLocationType.Home: startLocation = "home"; break; case StartLocationType.Last: startLocation = "last"; break; case StartLocationType.Custom: startLocation = loginOptions.StartLocationCustom.Trim(); StartLocationParser parser = new StartLocationParser(startLocation); startLocation = NetworkManager.StartLocation(parser.Sim, parser.X, parser.Y, parser.Z); break; } string password; if (LoginOptions.IsPasswordMD5(loginOptions.Password)) { password = loginOptions.Password; } else { if (loginOptions.Password.Length > 16) { password = Utils.MD5(loginOptions.Password.Substring(0, 16)); } else { password = Utils.MD5(loginOptions.Password); } } LoginParams loginParams = client.Network.DefaultLoginParams( loginOptions.FirstName, loginOptions.LastName, password, loginOptions.Channel, loginOptions.Version); Grid = loginOptions.Grid; loginParams.Start = startLocation; loginParams.AgreeToTos = AgreeToTos; loginParams.URI = Grid.LoginURI; loginParams.LastExecEvent = loginOptions.LastExecEvent; client.Network.BeginLogin(loginParams); }
public void Login() { try { loggingIn = true; LastExecStatus crashrep = instance.HadCrashed(); loginOptions.CrashStatus = crashrep; instance.StartCrashRep(); OverrideEventArgs ea = new OverrideEventArgs(); OnClientLoggingIn(ea); if (ea.Cancel) { loggingIn = false; return; } if (string.IsNullOrEmpty(loginOptions.FirstName) || string.IsNullOrEmpty(loginOptions.LastName) || string.IsNullOrEmpty(loginOptions.Password)) { OnClientLoginStatus( new LoginProgressEventArgs(LoginStatus.Failed, "One or more fields are blank.", string.Empty)); } string startLocation = string.Empty; switch (loginOptions.StartLocation) { case StartLocationType.Home: startLocation = "home"; break; case StartLocationType.Last: startLocation = "last"; break; case StartLocationType.Custom: startLocation = loginOptions.StartLocationCustom.Trim(); StartLocationParser parser = new StartLocationParser(startLocation); startLocation = NetworkManager.StartLocation(parser.Sim, parser.X, parser.Y, parser.Z); break; } string password; //if (loginOptions.IsPasswordMD5) // password = loginOptions.Password; //else // password = OpenMetaverse.Utils.MD5(loginOptions.Password); password = OpenMetaverse.Utils.MD5(loginOptions.Password); string[] agt = loginOptions.UserAgent.Split(' '); LoginParams loginParams = client.Network.DefaultLoginParams( loginOptions.FirstName, loginOptions.LastName, password, agt[0], loginOptions.UserAgent.Substring(9)); loginParams.Start = startLocation; loginParams.AgreeToTos = true; loginParams.Channel = "METAbolt"; loginParams.Author = loginOptions.Author; loginParams.MAC = GetMACAddress(); //loginParams.MethodName = string.Empty; loginParams.Platform = System.Environment.OSVersion.VersionString; // "Windows"; //loginParams.ReadCritical = false; loginParams.Version = instance.METAbolt_Version; // V 0.9.1.6 change switch (loginOptions.Grid) { case LoginGrid.MainGrid: client.Settings.LOGIN_SERVER = MainGridLogin; loginParams.URI = MainGridLogin; break; case LoginGrid.BetaGrid: client.Settings.LOGIN_SERVER = BetaGridLogin; loginParams.URI = BetaGridLogin; break; case LoginGrid.Custom: client.Settings.LOGIN_SERVER = loginOptions.GridCustomLoginUri; loginParams.URI = loginOptions.GridCustomLoginUri; break; } client.Network.BeginLogin(loginParams); } catch (Exception ex) { Logger.Log("Connection to SL failed", Helpers.LogLevel.Warning, ex); } }