internal static CookieContainer Login(ushort sid)
        {
            CookieContainer cc = null;

            if (!string.IsNullOrWhiteSpace(Settings.Default.Cookies))
            {
                cc = (CookieContainer)HuntsHubConnection.ByteArrayToObject(Convert.FromBase64String(Settings.Default.Cookies));
            }
            while (!HuntsHubConnection.TestCC(cc))
            {
                Application.Current.Dispatcher.Invoke(delegate()
                {
                    LogInForm lif = new LogInForm(sid);
                    if (lif.ShowDialog().Value&& lif.receivedCookies.Count > 0)
                    {
                        cc = lif.receivedCookies;
                    }
                    if (lif.receivedCookies.Count == 0)
                    {
                        Environment.Exit(0);
                    }
                });
            }
            return(cc);
        }
Ejemplo n.º 2
0
 private void CreateConnection()
 {
     if (hubConnection == null)
     {
         hubConnection = new HuntsHubConnection();
         RegisterHubMethods();
     }
 }
 public HuntsHubConnection()
 {
     this.Connection = new HubConnectionBuilder().WithUrl("https://xivhunt.net/SignalR/HuntsHub", delegate(HttpConnectionOptions o)
     {
         o.Cookies = HuntsHubConnection.Login(Program.mem.GetHomeWorldId());
     }).AddNewtonsoftJsonProtocol <IHubConnectionBuilder>().Build();
     this.Connection.Closed += this.Connection_Closed;
 }
        internal async Task <bool> Connect(Window1 w1)
        {
            HuntsHubConnection.< > c__DisplayClass12_0 CS$ < > 8__locals1 = new HuntsHubConnection.< > c__DisplayClass12_0();
            CS$ < > 8__locals1.w1 = w1;
            if (this.Connected)
            {
                await this.Connection.StopAsync(default(CancellationToken)).ConfigureAwait(false);
            }
            this.Connected = false;
            bool result;

            if (this.IsConnecting)
            {
                result = false;
            }
            else
            {
                this.IsConnecting = true;
                while (!this.Connected)
                {
                    int num = 0;
                    try
                    {
                        Dispatcher    dispatcher = CS$ < > 8__locals1.w1.HuntConnectionTextBlock.Dispatcher;
                        Func <string> callback;
                        if ((callback = CS$ < > 8__locals1.< > 9__0) == null)
                        {
                            HuntsHubConnection.< > c__DisplayClass12_0 CS$ < > 8__locals2 = CS$ < > 8__locals1;
                            Func <string> func = () => CS$ < > 8__locals1.w1.HuntConnectionTextBlock.Text = Resources.FormConnecting;
                            CS$ < > 8__locals2.< > 9__0 = func;
                            callback = func;
                        }
                        dispatcher.Invoke <string>(callback);
                        await this.Connection.StartAsync(default(CancellationToken)).ConfigureAwait(false);

                        this.Connected = true;
                    }
                    catch (Exception obj)
                    {
                        num = 1;
                    }
                    object obj;
                    if (num == 1)
                    {
                        Exception e = (Exception)obj;
                        if (e is HttpRequestException && e.Message.Contains("401"))
                        {
                            LogHost.Default.WarnException("Failed to connect.", e);
                            await this.Connection.DisposeAsync();

                            this.Connection.Closed  -= this.Connection_Closed;
                            Settings.Default.Cookies = string.Empty;
                            Settings.Default.Save();
                            this.Connection = new HubConnectionBuilder().WithUrl("https://xivhunt.net/SignalR/HuntsHub", delegate(HttpConnectionOptions o)
                            {
                                o.Cookies = HuntsHubConnection.Login(Program.mem.GetHomeWorldId());
                            }).Build();
                            this.Connection.Closed += this.Connection_Closed;
                            this.IsConnecting       = false;
                            return(true);
                        }
                        HuntsHubConnection.< > c__DisplayClass12_1 CS$ < > 8__locals3 = new HuntsHubConnection.< > c__DisplayClass12_1();
                        CS$ < > 8__locals3.CS$ < > 8__locals1 = CS$ < > 8__locals1;
                        CS$ < > 8__locals3.wtime = 5000;
                        LogHost.Default.InfoException(string.Format(CultureInfo.CurrentCulture, Resources.FormConnectingRetrying, 5), e);
                        while (CS$ < > 8__locals3.wtime > 0)
                        {
                            CS$ < > 8__locals3.CS$ < > 8__locals1.w1.HuntConnectionTextBlock.Dispatcher.Invoke <string>(() => CS$ < > 8__locals3.CS$ < > 8__locals1.w1.HuntConnectionTextBlock.Text = string.Format(CultureInfo.CurrentCulture, Resources.FormConnectingRetrying, CS$ < > 8__locals3.wtime / 1000));
                            await Task.Delay(1000);

                            CS$ < > 8__locals3.wtime -= 1000;
                        }
                        CS$ < > 8__locals3 = null;
                    }
                    obj = null;
                }
                this.IsConnecting = false;
                result            = false;
            }
            return(result);
        }