KestrelHttpServer 785 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. commit 526dfdb332b30fd6042d8ef8d1a2ba99cc654010
  2. Author: Stephen Halter <[email protected]>
  3. Date: Thu Jan 18 17:25:28 2018 -0800
  4. Switch back to libuv as the default transport (#2257)
  5. * Switch back to libuv as the default transport
  6. diff --git a/src/Kestrel/WebHostBuilderKestrelExtensions.cs b/src/Kestrel/WebHostBuilderKestrelExtensions.cs
  7. index faac901affb..70b1a34d74a 100644
  8. --- a/src/Kestrel/WebHostBuilderKestrelExtensions.cs
  9. +++ b/src/Kestrel/WebHostBuilderKestrelExtensions.cs
  10. @@ -5,9 +5,8 @@ using System;
  11. using Microsoft.AspNetCore.Hosting.Server;
  12. using Microsoft.AspNetCore.Server.Kestrel.Core;
  13. using Microsoft.AspNetCore.Server.Kestrel.Core.Internal;
  14. -using Microsoft.AspNetCore.Server.Kestrel.Internal;
  15. using Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal;
  16. -using Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets;
  17. +using Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv;
  18. using Microsoft.Extensions.DependencyInjection;
  19. using Microsoft.Extensions.DependencyInjection.Extensions;
  20. using Microsoft.Extensions.Options;
  21. @@ -30,7 +29,7 @@ namespace Microsoft.AspNetCore.Hosting
  22. return hostBuilder.ConfigureServices(services =>
  23. {
  24. // Don't override an already-configured transport
  25. - services.TryAddSingleton<ITransportFactory, SocketTransportFactory>();
  26. + services.TryAddSingleton<ITransportFactory, LibuvTransportFactory>();
  27. services.AddTransient<IConfigureOptions<KestrelServerOptions>, KestrelServerOptionsSetup>();
  28. services.AddSingleton<IServer, KestrelServer>();
  29. diff --git a/test/Kestrel.Tests/WebHostBuilderKestrelExtensionsTests.cs b/test/Kestrel.Tests/WebHostBuilderKestrelExtensionsTests.cs
  30. index fc5d6509ae9..3c10c1c0ff7 100644
  31. --- a/test/Kestrel.Tests/WebHostBuilderKestrelExtensionsTests.cs
  32. +++ b/test/Kestrel.Tests/WebHostBuilderKestrelExtensionsTests.cs
  33. @@ -3,6 +3,9 @@
  34. using Microsoft.AspNetCore.Hosting;
  35. using Microsoft.AspNetCore.Server.Kestrel.Core;
  36. +using Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal;
  37. +using Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv;
  38. +using Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets;
  39. using Microsoft.Extensions.DependencyInjection;
  40. using Xunit;
  41. @@ -46,5 +49,51 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Tests
  42. // Act
  43. hostBuilder.Build();
  44. }
  45. +
  46. + [Fact]
  47. + public void LibuvIsTheDefaultTransport()
  48. + {
  49. + var hostBuilder = new WebHostBuilder()
  50. + .UseKestrel()
  51. + .Configure(app => { });
  52. +
  53. + Assert.IsType<LibuvTransportFactory>(hostBuilder.Build().Services.GetService<ITransportFactory>());
  54. + }
  55. +
  56. + [Fact]
  57. + public void LibuvTransportCanBeManuallySelectedIndependentOfOrder()
  58. + {
  59. + var hostBuilder = new WebHostBuilder()
  60. + .UseKestrel()
  61. + .UseLibuv()
  62. + .Configure(app => { });
  63. +
  64. + Assert.IsType<LibuvTransportFactory>(hostBuilder.Build().Services.GetService<ITransportFactory>());
  65. +
  66. + var hostBuilderReversed = new WebHostBuilder()
  67. + .UseLibuv()
  68. + .UseKestrel()
  69. + .Configure(app => { });
  70. +
  71. + Assert.IsType<LibuvTransportFactory>(hostBuilderReversed.Build().Services.GetService<ITransportFactory>());
  72. + }
  73. +
  74. + [Fact]
  75. + public void SocketsTransportCanBeManuallySelectedIndependentOfOrder()
  76. + {
  77. + var hostBuilder = new WebHostBuilder()
  78. + .UseKestrel()
  79. + .UseSockets()
  80. + .Configure(app => { });
  81. +
  82. + Assert.IsType<SocketTransportFactory>(hostBuilder.Build().Services.GetService<ITransportFactory>());
  83. +
  84. + var hostBuilderReversed = new WebHostBuilder()
  85. + .UseSockets()
  86. + .UseKestrel()
  87. + .Configure(app => { });
  88. +
  89. + Assert.IsType<SocketTransportFactory>(hostBuilderReversed.Build().Services.GetService<ITransportFactory>());
  90. + }
  91. }
  92. }