Пример #1
0
        /// Loads and sets certificate and key for ENet connection.
        protected void SetupDTLS()
        {
            serverPeer.DtlsVerify = false;
            serverPeer.UseDtls    = true;
            var pathToDTLS = "user://DTLS";

            if (DirExists(pathToDTLS))
            {
                var x509Cert        = new X509Certificate();
                var certificateFile = pathToDTLS.PlusFile("main.crt");
                var error           = x509Cert.Load(certificateFile);
                if (error != Error.Ok)
                {
                    //Logger.Server.Error($"Could not load certificate file {ProjectSettings.GlobalizePath(certificateFile)}. Error code: {error}");
                    GetTree().Quit(-(int)error);
                    return;
                }
                serverPeer.SetDtlsCertificate(x509Cert);

                var cryptoKey = new CryptoKey();
                var keyFile   = pathToDTLS.PlusFile("main.key");
                error = cryptoKey.Load(keyFile);
                if (error != Error.Ok)
                {
                    // Logger.Server.Error($"Could not load key file {ProjectSettings.GlobalizePath(keyFile)}. Error code: {error}");
                    GetTree().Quit(-(int)error);
                    return;
                }
                serverPeer.SetDtlsKey(cryptoKey);
            }
            else
            {
                // Logger.Server.Error($"Directory {ProjectSettings.GlobalizePath(pathToDTLS)} doesn't exist!. Abording");
                GetTree().Quit(-(int)Error.FileBadPath);
            }
        }