Beispiel #1
0
        public HttpBackend CreateInstance(TestContext ctx)
        {
            var endpoint = ConnectionTestHelper.GetEndPoint(ctx);

            ConnectionParameters parameters;
            ISslStreamProvider   sslStreamProvider = null;

            var flags = GetHttpFlags(ctx);

            if (GetParameters(ctx, out parameters))
            {
                sslStreamProvider = GetSslStreamProvider(ctx);
            }

            HttpBackend backend;

            if ((flags & HttpFlags.HttpListener) != 0)
            {
                backend = new HttpListenerBackend(endpoint, endpoint, flags, parameters, sslStreamProvider);
            }
            else
            {
                backend = new BuiltinHttpBackend(endpoint, endpoint, flags, parameters, sslStreamProvider);
            }
            return(backend);
        }
Beispiel #2
0
 public HttpServerProvider(
     string identifier, HttpServerFlags serverFlags,
     ISslStreamProvider provider)
 {
     Value             = identifier;
     ServerFlags       = serverFlags;
     SslStreamProvider = provider;
 }
        public DotNetConnectionProvider(ConnectionProviderFactory factory, ConnectionProviderType type, ISslStreamProvider sslStreamProvider)
            : base(factory, type, GetFlags())
        {
            this.sslStreamProvider = sslStreamProvider;

            protocols = ProtocolVersions.Tls10;
            if ((Flags & ConnectionProviderFlags.SupportsTls12) != 0)
            {
                protocols |= ProtocolVersions.Tls11 | ProtocolVersions.Tls12;
            }
        }
        //--//

        public SslStream(Socket socket)
            : base(socket, false)
        {
            if (SocketType.Stream != (SocketType)this._socketType)
            {
                throw new NotSupportedException();
            }

            this._isServer = false;
            this.sslHandle = -1;

            this.ni = NI.GetActiveForSslStream();
        }
Beispiel #5
0
        public HttpServer(Uri uri, IPortableEndPoint listenAddress, ListenerFlags flags, ConnectionParameters parameters, ISslStreamProvider sslStreamProvider = null)
        {
            this.uri               = uri;
            this.listenAddress     = listenAddress;
            this.flags             = flags | ListenerFlags.SSL;
            this.sslStreamProvider = sslStreamProvider;
            this.parameters        = parameters;

            if (this.sslStreamProvider == null)
            {
                var factory = DependencyInjector.Get <ConnectionProviderFactory> ();
                this.sslStreamProvider = factory.DefaultSslStreamProvider;
            }
        }
Beispiel #6
0
        public HttpServer CreateInstance(TestContext ctx)
        {
            var endpoint = ConnectionTestHelper.GetEndPoint();

            ConnectionParameters parameters;
            ISslStreamProvider   sslStreamProvider = null;

            var flags = GetServerFlags(ctx);

            if (GetParameters(ctx, flags, out parameters))
            {
                sslStreamProvider = GetSslStreamProvider(ctx, flags);
            }

            return(new BuiltinHttpServer(endpoint, endpoint, flags, parameters, sslStreamProvider));
        }
Beispiel #7
0
        public HttpServer(IPortableEndPoint listenAddress, HttpServerFlags flags,
                          ConnectionParameters parameters, ISslStreamProvider sslStreamProvider)
        {
            ListenAddress     = listenAddress;
            Flags             = flags;
            Parameters        = parameters;
            SslStreamProvider = sslStreamProvider;

            if (Parameters != null)
            {
                Flags |= HttpServerFlags.SSL;
            }

            if ((Flags & HttpServerFlags.NoSSL) != 0)
            {
                Flags &= ~HttpServerFlags.SSL;
            }


            if ((Flags & HttpServerFlags.SSL) != 0)
            {
                if (SslStreamProvider == null)
                {
                    var factory = DependencyInjector.Get <ConnectionProviderFactory> ();
                    SslStreamProvider = factory.DefaultSslStreamProvider;
                }
            }
            else
            {
                SslStreamProvider = null;
            }

            var description = FormatFlags(Flags);

            if (!string.IsNullOrEmpty(description))
            {
                description = ": " + description;
            }
            var identifier = parameters?.Identifier;

            if (identifier != null)
            {
                identifier = ": " + identifier;
            }

            ME = $"[{GetType ().Name}:{ID}{identifier}{description}]";
        }
Beispiel #8
0
        public HttpServer(IPortableEndPoint listenAddress, HttpServerFlags flags,
                          ConnectionParameters parameters, ISslStreamProvider sslStreamProvider)
        {
            ListenAddress     = listenAddress;
            Flags             = flags;
            Parameters        = parameters;
            SslStreamProvider = sslStreamProvider;

            if (Parameters != null)
            {
                Flags |= HttpServerFlags.SSL;
            }

            if ((Flags & HttpServerFlags.SSL) != 0)
            {
                if (SslStreamProvider == null)
                {
                    var factory = DependencyInjector.Get <ConnectionProviderFactory> ();
                    SslStreamProvider = factory.DefaultSslStreamProvider;
                }
            }
        }
Beispiel #9
0
        public HttpServer(IPortableEndPoint clientEndPoint, IPortableEndPoint listenAddress, ListenerFlags flags, ConnectionParameters parameters = null, ISslStreamProvider sslStreamProvider = null)
        {
            this.listenAddress     = listenAddress;
            this.flags             = flags;
            this.sslStreamProvider = sslStreamProvider;
            this.parameters        = parameters;

            if (parameters != null)
            {
                flags |= ListenerFlags.SSL;
            }

            if ((flags & ListenerFlags.SSL) != 0)
            {
                if (this.sslStreamProvider == null)
                {
                    var factory = DependencyInjector.Get <ConnectionProviderFactory> ();
                    this.sslStreamProvider = factory.DefaultSslStreamProvider;
                }
            }

            uri = new Uri(string.Format("http{0}://{1}:{2}/", UseSSL ? "s" : "", clientEndPoint.Address, clientEndPoint.Port));
        }
Beispiel #10
0
 public BuiltinHttpServer(Uri uri, IPortableEndPoint listenAddress, HttpServerFlags flags,
                          ConnectionParameters parameters, ISslStreamProvider sslStreamProvider)
     : base(listenAddress, flags | HttpServerFlags.SSL, parameters, sslStreamProvider)
 {
     Uri = uri;
 }
Beispiel #11
0
 public BuiltinHttpServer(IPortableEndPoint clientEndPoint, IPortableEndPoint listenAddress, HttpServerFlags flags,
                          ConnectionParameters parameters, ISslStreamProvider sslStreamProvider)
     : base(listenAddress, flags, parameters, sslStreamProvider)
 {
     Uri = new Uri(string.Format("http{0}://{1}:{2}/", SslStreamProvider != null ? "s" : "", clientEndPoint.Address, clientEndPoint.Port));
 }
Beispiel #12
0
        public ProxyServer(IPortableEndPoint endpoint, IPortableEndPoint proxyEndpoint, ISslStreamProvider sslStreamProvider = null, ConnectionParameters parameters = null)
            : base(endpoint, endpoint, ListenerFlags.Proxy, parameters, sslStreamProvider)
        {
            this.proxyEndpoint = proxyEndpoint;

            proxyUri = new Uri(string.Format("http://{0}:{1}/", proxyEndpoint.Address, proxyEndpoint.Port));
        }
Beispiel #13
0
 public DotNetServer(ConnectionProvider provider, ConnectionParameters parameters, ISslStreamProvider sslStreamProvider)
     : base(provider, parameters)
 {
     this.sslStreamProvider = sslStreamProvider;
 }