Fix HttpAbstraction dependencies.
This commit is contained in:
parent
21616bcde5
commit
903197e1ce
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"version" : "0.1-alpha-*",
|
"version" : "0.1-alpha-*",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.AspNet.Abstractions": "0.1-alpha-*",
|
"Microsoft.AspNet.Http": "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.Hosting": "0.1-alpha-*",
|
"Microsoft.AspNet.Hosting": "0.1-alpha-*",
|
||||||
"Microsoft.Net.Server": "",
|
"Microsoft.Net.Server": "",
|
||||||
"Microsoft.AspNet.Server.WebListener": ""
|
"Microsoft.AspNet.Server.WebListener": ""
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ using Microsoft.Net.Server;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Server.WebListener
|
namespace Microsoft.AspNet.Server.WebListener
|
||||||
{
|
{
|
||||||
internal class FeatureContext : IHttpRequestInformation, IHttpConnection, IHttpResponseInformation, IHttpSendFile, IHttpTransportLayerSecurity, IHttpRequestLifetime
|
internal class FeatureContext : IHttpRequestFeature, IHttpConnectionFeature, IHttpResponseFeature, IHttpSendFileFeature, IHttpTransportLayerSecurityFeature, IHttpRequestLifetimeFeature
|
||||||
{
|
{
|
||||||
private RequestContext _requestContext;
|
private RequestContext _requestContext;
|
||||||
private FeatureCollection _features;
|
private FeatureCollection _features;
|
||||||
|
|
@ -74,16 +74,16 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
|
|
||||||
private void PopulateFeatures()
|
private void PopulateFeatures()
|
||||||
{
|
{
|
||||||
_features.Add(typeof(IHttpRequestInformation), this);
|
_features.Add(typeof(IHttpRequestFeature), this);
|
||||||
_features.Add(typeof(IHttpConnection), this);
|
_features.Add(typeof(IHttpConnectionFeature), this);
|
||||||
if (Request.IsSecureConnection)
|
if (Request.IsSecureConnection)
|
||||||
{
|
{
|
||||||
// TODO: Should this feature be conditional? Should we add this for HTTP requests?
|
// TODO: Should this feature be conditional? Should we add this for HTTP requests?
|
||||||
_features.Add(typeof(IHttpTransportLayerSecurity), this);
|
_features.Add(typeof(IHttpTransportLayerSecurityFeature), this);
|
||||||
}
|
}
|
||||||
_features.Add(typeof(IHttpResponseInformation), this);
|
_features.Add(typeof(IHttpResponseFeature), this);
|
||||||
_features.Add(typeof(IHttpSendFile), this);
|
_features.Add(typeof(IHttpSendFileFeature), this);
|
||||||
_features.Add(typeof(IHttpRequestLifetime), this);
|
_features.Add(typeof(IHttpRequestLifetimeFeature), this);
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// _environment.CallCancelled = _cts.Token;
|
// _environment.CallCancelled = _cts.Token;
|
||||||
|
|
@ -98,9 +98,9 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#region IHttpRequestInformation
|
#region IHttpRequestFeature
|
||||||
|
|
||||||
Stream IHttpRequestInformation.Body
|
Stream IHttpRequestFeature.Body
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -113,7 +113,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _requestBody = value; }
|
set { _requestBody = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
IDictionary<string, string[]> IHttpRequestInformation.Headers
|
IDictionary<string, string[]> IHttpRequestFeature.Headers
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _requestHeaders = value; }
|
set { _requestHeaders = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
string IHttpRequestInformation.Method
|
string IHttpRequestFeature.Method
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -139,7 +139,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _httpMethod = value; }
|
set { _httpMethod = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
string IHttpRequestInformation.Path
|
string IHttpRequestFeature.Path
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -152,7 +152,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _path = value; }
|
set { _path = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
string IHttpRequestInformation.PathBase
|
string IHttpRequestFeature.PathBase
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -165,7 +165,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _pathBase = value; }
|
set { _pathBase = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
string IHttpRequestInformation.Protocol
|
string IHttpRequestFeature.Protocol
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -190,7 +190,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _httpProtocolVersion = value; }
|
set { _httpProtocolVersion = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
string IHttpRequestInformation.QueryString
|
string IHttpRequestFeature.QueryString
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -203,7 +203,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _query = value; }
|
set { _query = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
string IHttpRequestInformation.Scheme
|
string IHttpRequestFeature.Scheme
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -216,8 +216,8 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _scheme = value; }
|
set { _scheme = value; }
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region IHttpConnection
|
#region IHttpConnectionFeature
|
||||||
bool IHttpConnection.IsLocal
|
bool IHttpConnectionFeature.IsLocal
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -230,7 +230,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _isLocal = value; }
|
set { _isLocal = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
IPAddress IHttpConnection.LocalIpAddress
|
IPAddress IHttpConnectionFeature.LocalIpAddress
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -243,7 +243,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _localIpAddress = value; }
|
set { _localIpAddress = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
IPAddress IHttpConnection.RemoteIpAddress
|
IPAddress IHttpConnectionFeature.RemoteIpAddress
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -256,7 +256,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _remoteIpAddress = value; }
|
set { _remoteIpAddress = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
int IHttpConnection.LocalPort
|
int IHttpConnectionFeature.LocalPort
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -269,7 +269,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _localPort = value; }
|
set { _localPort = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
int IHttpConnection.RemotePort
|
int IHttpConnectionFeature.RemotePort
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -282,8 +282,8 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _remotePort = value; }
|
set { _remotePort = value; }
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region IHttpTransportLayerSecurity
|
#region IHttpTransportLayerSecurityFeature
|
||||||
X509Certificate IHttpTransportLayerSecurity.ClientCertificate
|
X509Certificate IHttpTransportLayerSecurityFeature.ClientCertificate
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -296,7 +296,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _clientCert = value; }
|
set { _clientCert = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task IHttpTransportLayerSecurity.LoadAsync()
|
async Task IHttpTransportLayerSecurityFeature.LoadAsync()
|
||||||
{
|
{
|
||||||
if (_clientCert == null)
|
if (_clientCert == null)
|
||||||
{
|
{
|
||||||
|
|
@ -304,8 +304,8 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region IHttpResponseInformation
|
#region IHttpResponseFeature
|
||||||
Stream IHttpResponseInformation.Body
|
Stream IHttpResponseFeature.Body
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -318,7 +318,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _responseStream = value; }
|
set { _responseStream = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
IDictionary<string, string[]> IHttpResponseInformation.Headers
|
IDictionary<string, string[]> IHttpResponseFeature.Headers
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -331,24 +331,24 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _responseHeaders = value; }
|
set { _responseHeaders = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
void IHttpResponseInformation.OnSendingHeaders(Action<object> callback, object state)
|
void IHttpResponseFeature.OnSendingHeaders(Action<object> callback, object state)
|
||||||
{
|
{
|
||||||
Response.OnSendingHeaders(callback, state);
|
Response.OnSendingHeaders(callback, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
string IHttpResponseInformation.ReasonPhrase
|
string IHttpResponseFeature.ReasonPhrase
|
||||||
{
|
{
|
||||||
get { return Response.ReasonPhrase; }
|
get { return Response.ReasonPhrase; }
|
||||||
set { Response.ReasonPhrase = value; }
|
set { Response.ReasonPhrase = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
int IHttpResponseInformation.StatusCode
|
int IHttpResponseFeature.StatusCode
|
||||||
{
|
{
|
||||||
get { return Response.StatusCode; }
|
get { return Response.StatusCode; }
|
||||||
set { Response.StatusCode = value; }
|
set { Response.StatusCode = value; }
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
Task IHttpSendFile.SendFileAsync(string path, long offset, long? length, CancellationToken cancellation)
|
Task IHttpSendFileFeature.SendFileAsync(string path, long offset, long? length, CancellationToken cancellation)
|
||||||
{
|
{
|
||||||
return Response.SendFileAsync(path, offset, length, cancellation);
|
return Response.SendFileAsync(path, offset, length, cancellation);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"version": "0.1-alpha-*",
|
"version": "0.1-alpha-*",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.Net.Server" : "",
|
"Microsoft.Net.Server" : "",
|
||||||
"Microsoft.AspNet.Abstractions": "0.1-alpha-*",
|
"Microsoft.AspNet.Http": "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*",
|
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.HttpFeature": "0.1-alpha-*",
|
"Microsoft.AspNet.HttpFeature": "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.FeatureModel": "0.1-alpha-*",
|
"Microsoft.AspNet.FeatureModel": "0.1-alpha-*",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"version": "0.1-alpha-*",
|
"version": "0.1-alpha-*",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.AspNet.Abstractions" : "0.1-alpha-*",
|
"Microsoft.AspNet.Http" : "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.HttpFeature" : "0.1-alpha-*"
|
"Microsoft.AspNet.HttpFeature" : "0.1-alpha-*"
|
||||||
},
|
},
|
||||||
"compilationOptions" : { "allowUnsafe": true },
|
"compilationOptions" : { "allowUnsafe": true },
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpsServer(async env =>
|
using (Utilities.CreateHttpsServer(async env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var tls = httpContext.GetFeature<IHttpTransportLayerSecurity>();
|
var tls = httpContext.GetFeature<IHttpTransportLayerSecurityFeature>();
|
||||||
Assert.NotNull(tls);
|
Assert.NotNull(tls);
|
||||||
await tls.LoadAsync();
|
await tls.LoadAsync();
|
||||||
Assert.Null(tls.ClientCertificate);
|
Assert.Null(tls.ClientCertificate);
|
||||||
|
|
@ -102,7 +102,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpsServer(async env =>
|
using (Utilities.CreateHttpsServer(async env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var tls = httpContext.GetFeature<IHttpTransportLayerSecurity>();
|
var tls = httpContext.GetFeature<IHttpTransportLayerSecurityFeature>();
|
||||||
Assert.NotNull(tls);
|
Assert.NotNull(tls);
|
||||||
await tls.LoadAsync();
|
await tls.LoadAsync();
|
||||||
Assert.NotNull(tls.ClientCertificate);
|
Assert.NotNull(tls.ClientCertificate);
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
// General keys
|
// General keys
|
||||||
// TODO: Assert.True(env.Get<CancellationToken>("owin.CallCancelled").CanBeCanceled);
|
// TODO: Assert.True(env.Get<CancellationToken>("owin.CallCancelled").CanBeCanceled);
|
||||||
|
|
||||||
var requestInfo = httpContext.GetFeature<IHttpRequestInformation>();
|
var requestInfo = httpContext.GetFeature<IHttpRequestFeature>();
|
||||||
|
|
||||||
// Request Keys
|
// Request Keys
|
||||||
Assert.Equal("GET", requestInfo.Method);
|
Assert.Equal("GET", requestInfo.Method);
|
||||||
|
|
@ -60,7 +60,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
// Server Keys
|
// Server Keys
|
||||||
// TODO: Assert.NotNull(env.Get<IDictionary<string, object>>("server.Capabilities"));
|
// TODO: Assert.NotNull(env.Get<IDictionary<string, object>>("server.Capabilities"));
|
||||||
|
|
||||||
var connectionInfo = httpContext.GetFeature<IHttpConnection>();
|
var connectionInfo = httpContext.GetFeature<IHttpConnectionFeature>();
|
||||||
Assert.Equal("::1", connectionInfo.RemoteIpAddress.ToString());
|
Assert.Equal("::1", connectionInfo.RemoteIpAddress.ToString());
|
||||||
Assert.NotEqual(0, connectionInfo.RemotePort);
|
Assert.NotEqual(0, connectionInfo.RemotePort);
|
||||||
Assert.Equal("::1", connectionInfo.LocalIpAddress.ToString());
|
Assert.Equal("::1", connectionInfo.LocalIpAddress.ToString());
|
||||||
|
|
@ -96,8 +96,8 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var requestInfo = httpContext.GetFeature<IHttpRequestInformation>();
|
var requestInfo = httpContext.GetFeature<IHttpRequestFeature>();
|
||||||
var connectionInfo = httpContext.GetFeature<IHttpConnection>();
|
var connectionInfo = httpContext.GetFeature<IHttpConnectionFeature>();
|
||||||
|
|
||||||
// Request Keys
|
// Request Keys
|
||||||
Assert.Equal("http", requestInfo.Scheme);
|
Assert.Equal("http", requestInfo.Scheme);
|
||||||
|
|
@ -137,7 +137,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (CreateServer(env =>
|
using (CreateServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var requestInfo = httpContext.GetFeature<IHttpRequestInformation>();
|
var requestInfo = httpContext.GetFeature<IHttpRequestFeature>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Assert.Equal(expectedPath, requestInfo.Path);
|
Assert.Equal(expectedPath, requestInfo.Path);
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
|
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
|
||||||
var responseHeaders = responseInfo.Headers;
|
var responseHeaders = responseInfo.Headers;
|
||||||
responseHeaders["WWW-Authenticate"] = new string[] { "custom1" };
|
responseHeaders["WWW-Authenticate"] = new string[] { "custom1" };
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
|
|
@ -80,7 +80,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
|
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
|
||||||
var responseHeaders = responseInfo.Headers;
|
var responseHeaders = responseInfo.Headers;
|
||||||
responseHeaders["WWW-Authenticate"] = new string[] { "custom1, and custom2", "custom3" };
|
responseHeaders["WWW-Authenticate"] = new string[] { "custom1, and custom2", "custom3" };
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
|
|
@ -104,7 +104,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
|
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
|
||||||
var responseHeaders = responseInfo.Headers;
|
var responseHeaders = responseInfo.Headers;
|
||||||
responseHeaders["Custom-Header1"] = new string[] { "custom1, and custom2", "custom3" };
|
responseHeaders["Custom-Header1"] = new string[] { "custom1, and custom2", "custom3" };
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
|
|
@ -128,7 +128,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
|
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
|
||||||
var responseHeaders = responseInfo.Headers;
|
var responseHeaders = responseInfo.Headers;
|
||||||
responseHeaders["Connection"] = new string[] { "Close" };
|
responseHeaders["Connection"] = new string[] { "Close" };
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
|
|
@ -205,7 +205,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
|
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
|
||||||
var responseHeaders = responseInfo.Headers;
|
var responseHeaders = responseInfo.Headers;
|
||||||
responseHeaders["Transfer-Encoding"] = new string[] { "chunked" };
|
responseHeaders["Transfer-Encoding"] = new string[] { "chunked" };
|
||||||
return responseInfo.Body.WriteAsync(new byte[10], 0, 10);
|
return responseInfo.Body.WriteAsync(new byte[10], 0, 10);
|
||||||
|
|
@ -233,7 +233,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
env =>
|
env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
|
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
|
||||||
var responseHeaders = responseInfo.Headers;
|
var responseHeaders = responseInfo.Headers;
|
||||||
responseHeaders.Add("Custom1", new string[] { "value1a", "value1b" });
|
responseHeaders.Add("Custom1", new string[] { "value1a", "value1b" });
|
||||||
responseHeaders.Add("Custom2", new string[] { "value2a, value2b" });
|
responseHeaders.Add("Custom2", new string[] { "value2a, value2b" });
|
||||||
|
|
@ -263,7 +263,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
async env =>
|
async env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
|
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
|
||||||
var responseHeaders = responseInfo.Headers;
|
var responseHeaders = responseInfo.Headers;
|
||||||
responseHeaders.Add("Custom1", new string[] { "value1a", "value1b" });
|
responseHeaders.Add("Custom1", new string[] { "value1a", "value1b" });
|
||||||
responseHeaders.Add("Custom2", new string[] { "value2a, value2b" });
|
responseHeaders.Add("Custom2", new string[] { "value2a, value2b" });
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
Assert.Equal("Overlapped", support.Get<string>("sendfile.Concurrency"));
|
Assert.Equal("Overlapped", support.Get<string>("sendfile.Concurrency"));
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
Assert.NotNull(sendFile);
|
Assert.NotNull(sendFile);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
@ -94,7 +94,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
sendFile.SendFileAsync(string.Empty, 0, null, CancellationToken.None).Wait();
|
sendFile.SendFileAsync(string.Empty, 0, null, CancellationToken.None).Wait();
|
||||||
|
|
@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
|
|
@ -145,7 +145,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
return sendFile.SendFileAsync(RelativeFilePath, 0, null, CancellationToken.None);
|
return sendFile.SendFileAsync(RelativeFilePath, 0, null, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
|
|
@ -164,7 +164,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
httpContext.Response.Headers["Transfer-EncodinG"] = "CHUNKED";
|
httpContext.Response.Headers["Transfer-EncodinG"] = "CHUNKED";
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
|
|
@ -184,7 +184,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
httpContext.Response.Headers["Transfer-EncodinG"] = "CHUNKED";
|
httpContext.Response.Headers["Transfer-EncodinG"] = "CHUNKED";
|
||||||
sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None).Wait();
|
sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None).Wait();
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
||||||
|
|
@ -205,7 +205,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, FileLength / 2, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, FileLength / 2, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
|
|
@ -224,7 +224,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 1234567, null, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 1234567, null, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
|
|
@ -239,7 +239,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 1234567, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 1234567, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
|
|
@ -254,7 +254,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 0, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 0, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
|
|
@ -273,7 +273,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
httpContext.Response.Headers["Content-lenGth"] = FileLength.ToString();
|
httpContext.Response.Headers["Content-lenGth"] = FileLength.ToString();
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
|
|
@ -294,7 +294,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
httpContext.Response.Headers["Content-lenGth"] = "10";
|
httpContext.Response.Headers["Content-lenGth"] = "10";
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 10, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 10, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
|
|
@ -315,7 +315,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpServer(env =>
|
using (Utilities.CreateHttpServer(env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var sendFile = httpContext.GetFeature<IHttpSendFile>();
|
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
|
||||||
httpContext.Response.Headers["Content-lenGth"] = "0";
|
httpContext.Response.Headers["Content-lenGth"] = "0";
|
||||||
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 0, CancellationToken.None);
|
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 0, CancellationToken.None);
|
||||||
}))
|
}))
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
httpContext.Response.StatusCode = 201;
|
httpContext.Response.StatusCode = 201;
|
||||||
httpContext.GetFeature<IHttpResponseInformation>().ReasonPhrase = "CustomReasonPhrase"; // TODO?
|
httpContext.GetFeature<IHttpResponseFeature>().ReasonPhrase = "CustomReasonPhrase"; // TODO?
|
||||||
// TODO: env["owin.ResponseProtocol"] = "HTTP/1.0"; // Http.Sys ignores this value
|
// TODO: env["owin.ResponseProtocol"] = "HTTP/1.0"; // Http.Sys ignores this value
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
}))
|
}))
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"xunit.execution": "2.0.0-aspnet-*",
|
"xunit.execution": "2.0.0-aspnet-*",
|
||||||
"Microsoft.AspNet.Server.WebListener" : "",
|
"Microsoft.AspNet.Server.WebListener" : "",
|
||||||
"Microsoft.Net.Server" : "",
|
"Microsoft.Net.Server" : "",
|
||||||
"Microsoft.AspNet.Abstractions" : "0.1-alpha-*",
|
"Microsoft.AspNet.Http" : "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*",
|
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.HttpFeature" : "0.1-alpha-*",
|
"Microsoft.AspNet.HttpFeature" : "0.1-alpha-*",
|
||||||
"Microsoft.AspNet.FeatureModel" : "0.1-alpha-*",
|
"Microsoft.AspNet.FeatureModel" : "0.1-alpha-*",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue