Esempio n. 1
0
        void OnFinishedCallback(bool succ)
        {
            m_succesed = succ;
            if (m_succesed)
            {
                LogUtils.Log(m_name + " download succ!");

                try
                {
                    //todo...move or decrompress
                    string desName = PathUtils.GetPersistentPath() + m_name;
                    PathUtils.MakeSureDirExist(desName);

                    if (File.Exists(desName))
                    {
                        File.Delete(desName);
                    }

                    File.Copy(m_tempFile.GetTempFileName(), desName);
                    m_tempFile.Delete();

                    //check
                    if (m_signature.Length > 0)
                    {
                        bool vaild = FileChecker.VerifyFileSignature(desName, m_signature);
                        if (vaild == false)
                        {
                            File.Delete(desName);
                            LogUtils.LogError(m_name + " VerifyFileSignature faild!");
                        }
                        m_succesed = vaild;
                    }
                }
                catch (System.Exception ex)
                {
                    m_succesed = false;
                    LogUtils.LogError(ex.ToString());
                }
            }
            else
            {
                LogUtils.LogError(m_name + " download faild!");
            }
            m_status = DownLoadTaskStatus.Finished;
        }
Esempio n. 2
0
        public override void OnEnter(Status oldStatus)
        {
            LogUtils.Log("enter app channel status");
            verAddrCfg.item.Clear();

            try
            {
                Uri            requestUrl = new Uri("http://10.0.0.252:8080/channel_cfg/channel_ver_addr.json");
                HttpWebRequest request    = (HttpWebRequest)WebRequest.Create(requestUrl);
                request.Timeout = 2000;
                HttpWebResponse respone = (HttpWebResponse)request.GetResponse();

                long   blockSize  = respone.ContentLength;
                byte[] blockBuff  = new byte[blockSize];
                var    respStream = respone.GetResponseStream();
                int    rec        = respStream.Read(blockBuff, 0, (int)blockSize);
                respone.Close();
                request.Abort();

                string str = System.Text.Encoding.Default.GetString(blockBuff);
                verAddrCfg = JsonUtility.FromJson <ChannelVerAddrCfg>(str);

                int channelId = VersionUpdate.GetIns().GetChannelID();
                for (int i = 0; i < verAddrCfg.item.Count; ++i)
                {
                    if (verAddrCfg.item[i].id == channelId)
                    {
                        DownloadMgr.GetInst().SetBaseURL(verAddrCfg.item[i].addr);
                        m_mgr.ChangeNextStatus();
                        return;
                    }
                }
                LogUtils.LogError("can not find channel ver addr!");
            }
            catch (System.Exception ex)
            {
                LogUtils.LogError(ex.ToString());
            }
        }
        public void Init()
        {
            m_statusMgr.RegisterStatus(new AppChannelStatus());
            m_statusMgr.RegisterStatus(new GameVersionStatus());
            m_statusMgr.RegisterStatus(new ResDownloadStatus());
            m_statusMgr.RegisterStatus(new GameStatus());

            DownloadMgr.GetInst().Init();
            m_statusMgr.Init();

            string verFile = PathUtils.GetVaildFullPath("version.json");

            if (verFile.Length > 0)
            {
                m_verRes = SerializeHelper.LoadFromFile <VersionRes>(verFile);
            }

            if (m_verRes == null)
            {
                LogUtils.LogError("verFile can not find!");
                return;
            }
        }