Пример #1
0
        internal static void StartKernel()
        {
            FilesList.LoadSharedFiles();

            UDPListener.Start();
            Listener.Start();

            CLog.Log(Constants.Log.Notify, "INIT_KRN", Version);
            LastSearch = 1;

            if (Preferences.GetBool("IPFilterEnabled"))
            {
                IPFilter = new CIPFilter();
                IPFilter.LoadIPFilter(DllDirectory, "ipfilter.dat", 128);
            }
            else
            {
                IPFilter = null;
            }

            if (Preferences.GetBool("DownloadServerMet"))
            {
                httpDownload.DownloadFile(Preferences.GetString("ServerMetUri"), "", "server.met", false);
            }
            else
            {
                CKernel.ServersList.Load("", true);
            }

            //currently for fun only, should be removed
            //httpDownload.GetInfo(@"http://www.lphant.com/Messages/TestVersions-pre5-test2.txt");

            // TODO: Version
            //Xml example :
            string[] myLog = new string[] { "version", "log" };
            httpDownload.GetInfoXML(@"http://www.lphant.com/Messages/v1.01.xml?lang=" + Globalization.Language, myLog, true);

            //if threaded = true, it returns "", else can be used later to get
            //CLog.Log(Constants.Log.Info,httpDownload.getReadInfoFromXML("log"));
            //

            if (Preferences.GetBool("AutoReconnect"))
            {
                ServersList.ConnectToAnyServer();
            }
        }
Пример #2
0
        /// <summary>
        /// Event handler for preferences class if any property was changed.
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="e">changed property arguments</param>
        internal void OnPropertyChanged(object sender, PropertyEventArgs e)
        {
            if (e.Key=="MaxDownloadRate")
            {
                float upRate=Preferences.GetFloat("MaxUploadRate");
                float downRate=(float)e.NewValue;
                if (downRate<1.0F) e.NewValue=1.0F;

                if ((upRate*4.0F<downRate)&&(upRate<9))
                {
                    e.NewValue = upRate*4.0F;
                }
                else
                {
                    // do nothing
                }
            }

            if (e.Key=="MaxUploadRate")
            {
                float upRate=(float)e.NewValue;
                float downRate=Preferences.GetFloat("MaxDownloadRate");
                if (upRate<1.0F) e.NewValue=1.0F;

                if ((upRate*4.0F<downRate)&&(upRate<9))
                {
                    Preferences.SetProperty("MaxDownloadRate", upRate*4.0F, false);
                }
                else
                {
                    // do nothing
                }
            }

            if (e.Key=="RemotePassword")
            {
                System.Security.Cryptography.MD5 crypto=System.Security.Cryptography.MD5.Create();
                byte [] c=null;
                string clearPass=(string)e.NewValue;
                c=new byte[clearPass.Length];
                for (int i=0; i < clearPass.Length; i++)
                {
                    c[i]=System.Convert.ToByte(clearPass[i]);
                }
                byte[] res=crypto.ComputeHash(c);
                e.NewValue=CKernel.HashToString(res);
            }
            if(e.Key=="Language")
            {
                Globalization.Language = e.NewValue.ToString();
            }

            if (e.Key=="IPFilterEnabled")
            {
                bool enabled=(bool)e.NewValue;
                if (enabled)
                {
                    IPFilter = new CIPFilter();
                    IPFilter.LoadIPFilter(DllDirectory,"ipfilter.dat",128);
                }
                else
                    IPFilter=null;
            }

            if (e.Key=="TCPPort")
            {
                m_PortChanged=true;
                if (e.NewValue!=e.OldValue)
                {
                    CKernel.Listener.Stop();
                    CKernel.Listener=new CListener((ushort)e.NewValue);
                    CKernel.Listener.Start();
                    CKernel.ServersList.ConnectToAnyServer();//first call disconnects
                    CKernel.ServersList.ConnectToAnyServer();//secons call connects
                }
            }

            if (e.Key=="UDPPort")
            {
                if (e.NewValue!=e.OldValue)
                {
                    CKernel.UDPListener.Close();
                    CKernel.UDPListener=new CUDPListener();
                    CKernel.UDPListener.Start();
                }
            }

            if (e.Key=="TempFolders")
            {
                ArrayList newFolders=new ArrayList((Array)e.NewValue);
                ArrayList oldFolders=new ArrayList((Array)e.OldValue);
                foreach (string oldfolder in (Array)e.OldValue)
                {
                    if (!newFolders.Contains(oldfolder))
                    {
                        //remove files from folder
                        CKernel.FilesList.RemoveIncompleteFolder(oldfolder);
                    }
                }
                foreach (string newfolder in (Array)e.NewValue)
                {
                    if (!oldFolders.Contains(newfolder))
                    {
                        //remove files from folderadd new temp folder
                        CKernel.FilesList.AddNewIncompleteFolder(newfolder);
                    }
                }
            }
            if (e.Key=="SharedFolders")
            {
                string sharedOld="";
                string sharedNew="";
                foreach (string oldfolder in (Array)e.OldValue)
                {
                    sharedOld+=oldfolder;
                }
                foreach (string newfolder in (Array)e.NewValue)
                {
                    sharedNew+=newfolder;
                }
                if (sharedOld!=sharedNew) CKernel.FilesList.RefreshSharedList();
            }
        }
Пример #3
0
        internal static void StartKernel()
        {
            FilesList.LoadSharedFiles();

            UDPListener.Start();
            Listener.Start();

            CLog.Log(Constants.Log.Notify, "INIT_KRN", Version);
            LastSearch=1;

            if (Preferences.GetBool("IPFilterEnabled"))
            {
                IPFilter=new CIPFilter();
                IPFilter.LoadIPFilter(DllDirectory,"ipfilter.dat",128);
            }
            else
                IPFilter=null;

            if(Preferences.GetBool("DownloadServerMet"))
                httpDownload.DownloadFile(Preferences.GetString("ServerMetUri"),"","server.met",false);
            else
                CKernel.ServersList.Load("",true);

            //currently for fun only, should be removed
            //httpDownload.GetInfo(@"http://www.lphant.com/Messages/TestVersions-pre5-test2.txt");

            // TODO: Version
            //Xml example :
            string[] myLog=new string[] {"version","log"};
            httpDownload.GetInfoXML(@"http://www.lphant.com/Messages/v1.01.xml?lang="+Globalization.Language,myLog,true);

            //if threaded = true, it returns "", else can be used later to get
            //CLog.Log(Constants.Log.Info,httpDownload.getReadInfoFromXML("log"));
            //

            if (Preferences.GetBool("AutoReconnect"))
            {
                ServersList.ConnectToAnyServer();
            }
        }
Пример #4
0
        /// <summary>
        /// Event handler for preferences class if any property was changed.
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="e">changed property arguments</param>
        internal void OnPropertyChanged(object sender, PropertyEventArgs e)
        {
            if (e.Key == "MaxDownloadRate")
            {
                float upRate   = Preferences.GetFloat("MaxUploadRate");
                float downRate = (float)e.NewValue;
                if (downRate < 1.0F)
                {
                    e.NewValue = 1.0F;
                }

                if ((upRate * 4.0F < downRate) && (upRate < 9))
                {
                    e.NewValue = upRate * 4.0F;
                }
                else
                {
                    // do nothing
                }
            }

            if (e.Key == "MaxUploadRate")
            {
                float upRate   = (float)e.NewValue;
                float downRate = Preferences.GetFloat("MaxDownloadRate");
                if (upRate < 1.0F)
                {
                    e.NewValue = 1.0F;
                }

                if ((upRate * 4.0F < downRate) && (upRate < 9))
                {
                    Preferences.SetProperty("MaxDownloadRate", upRate * 4.0F, false);
                }
                else
                {
                    // do nothing
                }
            }

            if (e.Key == "RemotePassword")
            {
                System.Security.Cryptography.MD5 crypto = System.Security.Cryptography.MD5.Create();
                byte [] c         = null;
                string  clearPass = (string)e.NewValue;
                c = new byte[clearPass.Length];
                for (int i = 0; i < clearPass.Length; i++)
                {
                    c[i] = System.Convert.ToByte(clearPass[i]);
                }
                byte[] res = crypto.ComputeHash(c);
                e.NewValue = CKernel.HashToString(res);
            }
            if (e.Key == "Language")
            {
                Globalization.Language = e.NewValue.ToString();
            }

            if (e.Key == "IPFilterEnabled")
            {
                bool enabled = (bool)e.NewValue;
                if (enabled)
                {
                    IPFilter = new CIPFilter();
                    IPFilter.LoadIPFilter(DllDirectory, "ipfilter.dat", 128);
                }
                else
                {
                    IPFilter = null;
                }
            }

            if (e.Key == "TCPPort")
            {
                m_PortChanged = true;
                if (e.NewValue != e.OldValue)
                {
                    CKernel.Listener.Stop();
                    CKernel.Listener = new CListener((ushort)e.NewValue);
                    CKernel.Listener.Start();
                    CKernel.ServersList.ConnectToAnyServer();                    //first call disconnects
                    CKernel.ServersList.ConnectToAnyServer();                    //secons call connects
                }
            }

            if (e.Key == "UDPPort")
            {
                if (e.NewValue != e.OldValue)
                {
                    CKernel.UDPListener.Close();
                    CKernel.UDPListener = new CUDPListener();
                    CKernel.UDPListener.Start();
                }
            }

            if (e.Key == "TempFolders")
            {
                ArrayList newFolders = new ArrayList((Array)e.NewValue);
                ArrayList oldFolders = new ArrayList((Array)e.OldValue);
                foreach (string oldfolder in (Array)e.OldValue)
                {
                    if (!newFolders.Contains(oldfolder))
                    {
                        //remove files from folder
                        CKernel.FilesList.RemoveIncompleteFolder(oldfolder);
                    }
                }
                foreach (string newfolder in (Array)e.NewValue)
                {
                    if (!oldFolders.Contains(newfolder))
                    {
                        //remove files from folderadd new temp folder
                        CKernel.FilesList.AddNewIncompleteFolder(newfolder);
                    }
                }
            }
            if (e.Key == "SharedFolders")
            {
                string sharedOld = "";
                string sharedNew = "";
                foreach (string oldfolder in (Array)e.OldValue)
                {
                    sharedOld += oldfolder;
                }
                foreach (string newfolder in (Array)e.NewValue)
                {
                    sharedNew += newfolder;
                }
                if (sharedOld != sharedNew)
                {
                    CKernel.FilesList.RefreshSharedList();
                }
            }
        }