Esempio n. 1
0
        public static BnetProxy FindBnetProxyForRealm(string username)
        {
            Console.WriteLine("Finding for user " + username);
            if (string.IsNullOrEmpty(username))
            {
                foreach (BnetProxy proxy in BnetProxies)
                {
                    if (proxy.RealmAddress != null)
                    {
                        return(proxy);
                    }
                }
                return(null);
            }

            BnetProxy result = null;

            foreach (BnetProxy proxy in BnetProxies)
            {
                if (proxy.Username == username)
                {
                    result = proxy;
                    break;
                }
            }

            return(result);
        }
Esempio n. 2
0
 void RealmProxy_OnRealmStartupRequest(RealmClient.RealmStartupRequest packet, ref PacketFlag flag)
 {
     bnetProxy = ProxyServer.FindBnetProxyForRealm(packet.Username);
     if (bnetProxy != null)
     {
         bnetProxy.Proxy.RealmProxy = this;
         this.Proxy = bnetProxy.Proxy;
     }
 }
Esempio n. 3
0
        public RealmProxy(TcpClient client) : base(client)
        {
            this.OnRealmStartupRequest   += new OnRealmStartupRequestEventHandler(RealmProxy_OnRealmStartupRequest);
            this.OnCharacterLogonRequest += new OnCharacterLogonRequestEventHandler(RealmProxy_OnCharacterLogonRequest);
            this.OnJoinGameResponse      += new OnJoinGameResponseEventHandler(RealmProxy_OnJoinGameResponse);
            this.OnJoinGameRequest       += new OnJoinGameRequestEventHandler(RealmProxy_OnJoinGameRequest);

            BnetProxy bnetProxy = ProxyServer.FindBnetProxyForRealm(string.Empty);

            if (bnetProxy != null)
            {
                base.Connect(bnetProxy.RealmAddress, bnetProxy.RealmPort);
                base.Init();
            }
            else
            {
                base.Disconnect();
            }
        }
Esempio n. 4
0
        private void OnAcceptTcpClient(IAsyncResult ar)
        {
            TcpClient tcpClient   = tcpListener.EndAcceptTcpClient(ar);
            BaseProxy proxyClient = null;

            try
            {
                tcpListener.BeginAcceptTcpClient(new AsyncCallback(OnAcceptTcpClient), null);
            }
            catch (Exception)
            {
                tcpListener = null;
                throw;
            }

            switch (proxyType)
            {
            case ProxyType.Bnet:
                proxyClient             = new BnetProxy(tcpClient);
                proxyClient.ProxyServer = this;
                BnetProxies.Add((BnetProxy)proxyClient);
                break;

            case ProxyType.Realm:
                proxyClient = new RealmProxy(tcpClient);
                RealmProxies.Add((RealmProxy)proxyClient);
                break;

            case ProxyType.Game:
                proxyClient = new GameProxy(tcpClient);
                GameProxies.Add((GameProxy)proxyClient);
                break;
            }

            this.ClientConnected(proxyClient, new EventArgs());
        }