IsRunningOnMono() static private method

static private IsRunningOnMono ( ) : bool
return bool
Example #1
0
        private void Initialize()
        {
            if (_initialized)
            {
                return;
            }

            _initialized = true;
            if (!CanBrowse)
            {
                _host     = string.Empty;
                _endPoint = null;
                return;
            }

            var value = (string)this["bindingInformation"];
            var last  = value.LastIndexOf(':');

            if (last > -1)
            {
                _host = value.Substring(last + 1);
                var next = value.LastIndexOf(':', last - 1);
                var port = value.Substring(next + 1, last - next - 1);
                if (next > -1)
                {
                    var address = value.Substring(0, next);
                    _endPoint = new IPEndPoint(address.DisplayToAddress(), Int32.Parse(port));
                }
            }

            if (Protocol != "https" || CertificateHash != null)
            {
                return;
            }

            if (Helper.IsRunningOnMono())
            {
                // TODO: how to do it on Mono?
                return;
            }

            if (Parent.Parent.Server.SupportsSni)
            {
                if (this.GetIsSni())
                {
                    var sni = NativeMethods.QuerySslSniInfo(new Tuple <string, int>(_host, _endPoint.Port));
                    if (sni != null)
                    {
                        CertificateHash      = sni.Hash;
                        CertificateStoreName = sni.StoreName;
                        SslFlags             = SslFlags.Sni;
                        return;
                    }
                }
            }

            var certificate = NativeMethods.QuerySslCertificateInfo(_endPoint);

            if (certificate != null)
            {
                CertificateHash      = certificate.Hash;
                CertificateStoreName = certificate.StoreName;
            }
        }
Example #2
0
        private void Initialize()
        {
            if (Initialized)
            {
                return;
            }

            Initialized = true;
            PreInitialize();
            var machineConfig = Helper.IsRunningOnMono()
                ? "/Library/Frameworks/Mono.framework/Versions/Current/etc/mono/4.5/machine.config"
                : Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.Windows),
                "Microsoft.NET",
                IntPtr.Size == 2 ? "Framework" : "Framework64",
                "v4.0.30319",
                "config",
                "machine.config");
            var machine =
                new Configuration(
                    new FileContext(
                        this,
                        machineConfig,
                        null,
                        null,
                        false,
                        true,
                        true));
            var webConfig = Helper.IsRunningOnMono()
                ? "/Library/Frameworks/Mono.framework/Versions/Current/etc/mono/4.5/web.config"
                : Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.Windows),
                "Microsoft.NET",
                IntPtr.Size == 2 ? "Framework" : "Framework64",
                "v4.0.30319",
                "config",
                "web.config");

            _web =
                new Configuration(
                    new FileContext(
                        this,
                        webConfig,
                        machine.FileContext,
                        null,
                        false,
                        true,
                        false));

            _applicationHost =
                new Configuration(
                    new FileContext(this, FileName, _web.FileContext, null, true, false, ReadOnly));

            LoadCache();

            var poolSection = _applicationHost.GetSection("system.applicationHost/applicationPools");

            _applicationPoolDefaults =
                new ApplicationPoolDefaults(poolSection.GetChildElement("applicationPoolDefaults"), poolSection);
            ApplicationPoolCollection = new ApplicationPoolCollection(poolSection, this);
            var siteSection = _applicationHost.GetSection("system.applicationHost/sites");

            _siteDefaults        = new SiteDefaults(siteSection.GetChildElement("siteDefaults"), siteSection);
            _applicationDefaults = new ApplicationDefaults(
                siteSection.GetChildElement("applicationDefaults"),
                siteSection);
            _virtualDirectoryDefaults =
                new VirtualDirectoryDefaults(siteSection.GetChildElement("virtualDirectoryDefaults"), siteSection);
            SiteCollection = new SiteCollection(siteSection, this);

            PostInitialize();
        }