20 Commits

Author SHA1 Message Date
Johnson Yang 38c7c49a90 fix TLS1.3 connection drops if application data sent before TLS authentication completed 2026-01-08 16:44:09 -08:00
Andrey Ilnitsky 18fbb0839e Target fix: net5 -> net5.0, net6 -> net6.0 (#592) 2022-08-04 14:53:30 -07:00
Andrey Ilnitsky f754c83069 [0.7.3] Target net5 and net6 (#588)
* [0.7.2] Start threads as background in HashedWheelTimer, LoopExecutor, ThreadDeathWatcher

* + code formatting

* [0.7.3] Target net5 and net6 (#2)

target net5 and net6
Adopted TlsHandler for the case when Handshake completion callback is dispatched asynchronously to thread pool
Introduced SingleThreadedEmbededChannel for TlsHandler and SniHandler tests

* + Update DotNetVersion to "6.0.302" in build.ps1
2022-08-02 16:37:48 -07:00
Andrey Ilnitsky 1cdaadbfaa - target net472 and netstandard2.0
- microsoft.extensions.logging 5.0.0
- microsoft.extensions.configuration 5.0.0
2021-07-16 18:04:31 -07:00
Max Gortman 6515aa0853 set version to 0.6.0 (#435) 2018-10-10 09:16:51 -07:00
Johnny Z 4ddb22088a Libuv tests. (#332) 2018-01-19 11:11:02 -08:00
Johnny Z 131db28613 Libuv based tcp transport. (#270) 2017-10-02 16:10:14 -07:00
mgortman 4ad4ffaf3c Fixes to examples, STEE loop failure handling
- Fixing examples following move to new csproj to load cert where it's placed
- Fixing STEE behavior when loop crashes
2017-03-09 19:00:56 -08:00
Max Gortman 52d1bf34d1 Migrating to new .Net Core RC tooling (#192) 2017-02-09 02:30:48 -08:00
Max Gortman 4f28a55b48 Move to .NET Core tooling (#170)
Motivation
.NET Core tooling allows building for both .NET Framework and .NET Standard while easing pains of running tests and packaging.

Modifications
- csproj -> xproj + project.json
- support for .NET Standard 1.3
- build script is now based on CAKE
- using dotnet CLI for building, testing, packing
- strong name by default (snk included)

Result
DotNetty works on .NET Core and any other platform supporting .NET Standard 1.3+.
2016-11-07 17:50:24 -08:00
Max Gortman b2f10c28cb Fixes excessive exceptions from being thrown in case of graceful channel closure. (#152)
Motivation:
SocketException and ODE are being thrown when disconnecting gracefully.

Modifications:
- dismiss async read completion if it is done on inactive channel
- do not attempt sync-reading from a socket that is not Connected
- extra: fixing echo sample with better practices
- extra: ReadListener for more natural test scenarios
- extra: tweaked nbench spec to work in-loop

Result:
No excessive errors happen during graceful shutdown
2016-08-08 15:34:08 -07:00
Mikhail Tuhckov fb18eaffd7 Exposes SSL Stream and adds more TLS settings (#132)
Motivation:

Some important SSL Stream settings are hidden in the TlsHandler class

Modifications:
SSLStream is provided by user now via factory method;
TLS settings extended

Results:
More advanced scenarios, like X509 client authentication, are possible to do now
2016-06-16 12:07:04 -07:00
Max Gortman 8114b7fb21 Fixing minor issues and code style throughout
Motivation:
Modern language features provide for easier to read, more compact code.

Modifications:
- expression body for single line methods
- Extra: fixes in xml docs
- Extra: code style deviations in recent commits

Result:
Cleaner, more consistent code.
2016-05-13 12:18:04 -07:00
Max Gortman 47163fde8d switching to C# 6.0 2016-05-05 01:19:49 -07:00
Max Gortman aa3cbc6766 Fixes ByteBuffer+Stream integration, TLS neg, STEE Shutdown
Motivation:
Fix up top priority issues to ensure proper working state with recent changes.

Modifications:
- TlsHandler negotiates TLS 1.0+ on server side (#89)
- STEE properly supports graceful shutdown (#7)
- UnpooledHeapByteBuffer.GetBytes honors received index and length (#88)
- Echo E2E test uses length-prefix based framing (#90)

Result:
Setting up DotNetty does not require workarounds for shutdown and hacks to enable negotiation of higher versions of TLS. Tests are passing even with new SslStream behavior.
2016-04-27 10:51:02 -07:00
hide1202 d7cbe06feb Implemented ToString methods in ByteBuffers.
Motivation:

If users want to change the ByteBuffer of the string, it is complicated.

Modifications:

Implement ToString methods in IByteBuffer and derived classes.

Result:

Users can easily use to change IByteBuffer to the string.
2016-01-25 08:40:04 +09:00
Sudheer 08c6d22a5f Port LoggingHandler Fixes #38
Port Logging Handler Fixes #38

Motivation:

LoggingHandler  is a must in many situations especially with non-trivial
pipeline composition so it will definitely be ported soon . It actually
provides nice looking bytebuf output + additional log for all the
events.

Modifications:
Added Logging functionality to DotNetty.Handlers project
Modified Echo.Server example project to log the events

Result: Easier to learn DotNetty from output by LoggingHandler
2015-11-30 16:01:00 +05:30
mgortman 8b59715deb Improved perf of SingleThreadEventExecutor
Motivation:
Impove performance of execution model

Modifications:
- switched SemaphoreSlim for ManualResetEventSlim to track empty vs non-empty states for executor's queue

extras
- removing wait for event loop shutdown (reduces test run time)
- adding benchmarking
- extracted common test utilities into Tests.Common project
- fixing ReSharper settings for ReSharper 10

Results:
5x improvement on in-loop scheduling, 2x improvement on out-of-liio scheduling:
STEE in loop (new)
        624ms   1,406,159Kc (G0= 114, G1=   0, G2=   0)
STEE in loop (old)
      2,719ms   6,205,423Kc (G0= 114, G1=   0, G2=   0)
STEE out of loop (new)
      1,464ms   6,559,838Kc (G0=  95, G1=   0, G2=   0)
STEE out of loop (old)
      3,869ms  12,331,986Kc (G0=  38, G1=  28, G2=   3)
2015-11-09 04:30:42 -08:00
mgortman 0722ade2a8 Motivation:
enable netty's internal logging experience to ease porting efforts and streamline logging configuration

Modifications:
- ported over InternalLogger and InternalLoggerFactory
- implemented InternalLogger using EventSource
- switched existing internal logging to this (increasing parity with netty)
- added logging configuration in Echo example
- added log to xunit output to end-to-end tests

*** extras
- fixed Echo client to send back received message (not 0 bytes)
- MqttDecoder no longer closes the Channel by itself instead changing internal state to invalid and forwarding an exception.
- further fix to ReSharper's code cleanup settings to properly arrange scope modifiers

Result:
internal components can use familiar experience to perform logging, e.g. `static readonly IInternalLogger Logger = InternalLoggerFactory.GetInstance<AbstractChannel>();`
2015-10-26 02:42:55 -07:00
Bartosz Sypytkowski 6e1733a5b1 Echo client-server example
Motivation:

At the present moment documentation of DotNetty is almost non-existent.
Moreover there are no examples that can be used as starting point for the
library learning. This commit is mean to provide basic client-server echo example over secure pipeline.

Modification:

- Created an examples directory to be used in the future for possible
  examples projects.
- Added two console projects used to establish server-client connection
  with basic secure DotNetty echo pipeline.

Result:

New console projects have been created under /examples directory.
2015-10-15 18:01:22 +02:00