├── test ├── DotNetty.Codecs.Http.Tests │ ├── Multipart │ │ ├── file-01.txt │ │ ├── file-02.txt │ │ ├── DiskFileUploadTest.cs │ │ └── MemoryFileUploadTest.cs │ └── WebSockets │ │ ├── WebSocketClientHandshaker08Test.cs │ │ ├── WebSocketClientHandshaker13Test.cs │ │ ├── WebSocketClientHandshaker00Test.cs │ │ └── WebSocketClientHandshaker07Test.cs ├── DotNetty.Buffers.Tests │ ├── CompositeByteBufferTests.cs │ ├── PooledHeapByteBufferTests.cs │ ├── PooledDirectByteBufferTests.cs │ ├── UnpooledByteBufferAllocatorTests.cs │ ├── WrappedCompositeByteBufferTests.cs │ ├── AdvancedLeakAwareByteBufferTests.cs │ ├── HeapByteBufferTests.cs │ ├── AdvancedLeakAwareCompositeByteBufferTests.cs │ ├── RetainedSlicedByteBufferTests.cs │ ├── UnsafeDirectByteBufferTest.cs │ └── NoopResourceLeakTracker.cs ├── DotNetty.Common.Tests │ ├── Properties │ │ └── AssemblyInfo.cs │ └── app.config ├── DotNetty.Transport.Tests.Performance │ ├── Utilities │ │ ├── IReadFinishedSignal.cs │ │ ├── SimpleReadFinishedSignal.cs │ │ ├── TaskCompletionSourceFinishedSignal.cs │ │ ├── ManualResetEventSlimReadFinishedSignal.cs │ │ └── CounterHandlerInbound.cs │ └── Transport │ │ ├── SocketPumpPerfSpecs.cs │ │ ├── LibuvPumpPerfSpecs.cs │ │ ├── LibuvPingPongPerfSpecs.cs │ │ └── SocketPingPongPerfSpecs.cs ├── DotNetty.Tests.Common │ ├── app.config │ ├── XUnitOutputLoggerProvider.cs │ ├── TestBase.cs │ ├── Disposable.cs │ └── ChannelExtensions.cs ├── DotNetty.Tests.End2End │ ├── app.config │ ├── EchoChannelHandler.cs │ └── ExceptionCatchHandler.cs ├── DotNetty.Handlers.Tests │ ├── IWriteStrategy.cs │ └── AsIsWriteStrategy.cs ├── DotNetty.Microbench │ └── Allocators │ │ ├── UnpooledByteBufferAllocatorBenchmark.cs │ │ ├── PooledByteBufferAllocatorBenchmark.cs │ │ └── PooledHeapByteBufferAllocatorBenchmark.cs ├── DotNetty.Codecs.Tests │ └── Protobuf │ │ └── TestUtil.cs ├── DotNetty.Codecs.Protobuf.Tests │ └── Addressbook.proto ├── DotNetty.Codecs.ProtocolBuffers.Tests │ └── AddressBook.proto └── DotNetty.Transport.Libuv.Tests │ └── TestUtil.cs ├── examples ├── QuoteOfTheMoment.Client │ └── appsettings.json ├── QuoteOfTheMoment.Server │ └── appsettings.json ├── HttpServer │ ├── appsettings.json │ └── MessageBody.cs ├── Telnet.Server │ └── appsettings.json ├── Discard.Server │ ├── appsettings.json │ └── DiscardServerHandler.cs ├── Factorial.Server │ └── appsettings.json ├── SecureChat.Server │ └── appsettings.json ├── WebSockets.Server │ └── appsettings.json ├── Echo.Server │ └── appsettings.json ├── SecureChat.Client │ ├── appsettings.json │ └── SecureChatClientHandler.cs ├── Discard.Client │ └── appsettings.json ├── Echo.Client │ └── appsettings.json ├── Telnet.Client │ ├── appsettings.json │ └── TelnetClientHandler.cs ├── UWPEcho.Client │ ├── Assets │ │ ├── StoreLogo.png │ │ ├── SplashScreen.scale-200.png │ │ ├── LockScreenLogo.scale-200.png │ │ ├── Square150x150Logo.scale-200.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Wide310x150Logo.scale-200.png │ │ └── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── readme.md │ ├── UWPEcho.Client_TemporaryKey.pfx │ ├── App.xaml │ └── project.json ├── Factorial.Client │ ├── appsettings.json │ └── ClientSettings.cs ├── WebSockets.Client │ └── appsettings.json ├── Factorial │ └── Factorial.csproj └── Examples.Common │ └── ServerSettings.cs ├── DotNetty.snk ├── shared ├── contoso.com.pfx └── dotnetty.com.pfx ├── SamplesForUnity ├── Assets │ ├── DotNetty │ │ ├── Notices.txt │ │ ├── Runtime │ │ │ ├── DotNetty.Codecs.dll │ │ │ ├── DotNetty.Codecs.pdb │ │ │ ├── DotNetty.Common.dll │ │ │ ├── DotNetty.Common.pdb │ │ │ ├── DotNetty.Unity.dll │ │ │ ├── DotNetty.Unity.pdb │ │ │ ├── DotNetty.Buffers.dll │ │ │ ├── DotNetty.Buffers.pdb │ │ │ ├── DotNetty.Handlers.dll │ │ │ ├── DotNetty.Handlers.pdb │ │ │ ├── DotNetty.Transport.dll │ │ │ ├── DotNetty.Transport.pdb │ │ │ ├── DotNetty.Unity.dll.mdb │ │ │ ├── DotNetty.Buffers.dll.mdb │ │ │ ├── DotNetty.Codecs.dll.mdb │ │ │ ├── DotNetty.Common.dll.mdb │ │ │ ├── DotNetty.Handlers.dll.mdb │ │ │ ├── DotNetty.Transport.dll.mdb │ │ │ ├── DotNetty.Unity.xml │ │ │ ├── System.Runtime.CompilerServices.Unsafe.dll │ │ │ ├── LICENSE.txt.meta │ │ │ ├── DotNetty.Buffers.pdb.meta │ │ │ ├── DotNetty.Codecs.pdb.meta │ │ │ ├── DotNetty.Common.pdb.meta │ │ │ ├── DotNetty.Unity.pdb.meta │ │ │ ├── DotNetty.Buffers.dll.mdb.meta │ │ │ ├── DotNetty.Buffers.xml.meta │ │ │ ├── DotNetty.Codecs.dll.mdb.meta │ │ │ ├── DotNetty.Codecs.xml.meta │ │ │ ├── DotNetty.Common.dll.mdb.meta │ │ │ ├── DotNetty.Common.xml.meta │ │ │ ├── DotNetty.Handlers.dll.mdb.meta │ │ │ ├── DotNetty.Handlers.pdb.meta │ │ │ ├── DotNetty.Handlers.xml.meta │ │ │ ├── DotNetty.Transport.pdb.meta │ │ │ ├── DotNetty.Transport.xml.meta │ │ │ ├── DotNetty.Unity.dll.mdb.meta │ │ │ ├── DotNetty.Unity.xml.meta │ │ │ ├── DotNetty.Transport.dll.mdb.meta │ │ │ ├── System.Runtime.CompilerServices.Unsafe.xml.meta │ │ │ ├── DotNetty.Buffers.dll.meta │ │ │ ├── DotNetty.Codecs.dll.meta │ │ │ ├── DotNetty.Common.dll.meta │ │ │ ├── DotNetty.Handlers.dll.meta │ │ │ ├── DotNetty.Transport.dll.meta │ │ │ ├── DotNetty.Unity.dll.meta │ │ │ └── System.Runtime.CompilerServices.Unsafe.dll.meta │ │ ├── Documentation~ │ │ │ └── docs │ │ │ │ └── images │ │ │ │ ├── icon.png │ │ │ │ ├── install_makecert.png │ │ │ │ ├── install_via_git.png │ │ │ │ └── download_makecert.png │ │ ├── CHANGELOG.md │ │ ├── README.md.meta │ │ ├── CHANGELOG.md.meta │ │ ├── Notices.txt.meta │ │ ├── package.json.meta │ │ ├── Runtime.meta │ │ └── Samples~ │ │ │ └── Tutorials │ │ │ ├── Launcher.unity.meta │ │ │ ├── UDPLauncher.unity.meta │ │ │ ├── Scripts.meta │ │ │ └── Scripts │ │ │ ├── EchoClient.cs.meta │ │ │ ├── EchoServer.cs.meta │ │ │ ├── Launcher.cs.meta │ │ │ ├── UDPLauncher.cs.meta │ │ │ ├── EchoClientHandler.cs.meta │ │ │ ├── EchoServerHandler.cs.meta │ │ │ ├── EchoUDPClient.cs.meta │ │ │ ├── EchoUDPServer.cs.meta │ │ │ ├── EchoUDPClientHandler.cs.meta │ │ │ └── EchoUDPServerHandler.cs.meta │ ├── DotNetty.meta │ ├── Samples.meta │ └── Samples │ │ ├── DotNetty.meta │ │ └── DotNetty │ │ ├── 0.7.5.meta │ │ └── 0.7.5 │ │ ├── Tutorials │ │ ├── Launcher.unity.meta │ │ ├── UDPLauncher.unity.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── EchoClient.cs.meta │ │ │ ├── EchoServer.cs.meta │ │ │ ├── Launcher.cs.meta │ │ │ ├── UDPLauncher.cs.meta │ │ │ ├── EchoClientHandler.cs.meta │ │ │ ├── EchoServerHandler.cs.meta │ │ │ ├── EchoUDPClient.cs.meta │ │ │ ├── EchoUDPServer.cs.meta │ │ │ ├── EchoUDPClientHandler.cs.meta │ │ │ └── EchoUDPServerHandler.cs.meta │ │ └── Tutorials.meta └── ProjectSettings │ ├── ProjectVersion.txt │ ├── ClusterInputManager.asset │ ├── NetworkManager.asset │ ├── TimeManager.asset │ ├── VFXManager.asset │ ├── EditorBuildSettings.asset │ ├── AudioManager.asset │ ├── TagManager.asset │ └── EditorSettings.asset ├── after.DotNetty.sln.targets ├── Directory.Build.targets ├── .nuget └── NuGet.Config ├── src ├── DotNetty.Codecs.Http │ ├── IHttpObject.cs │ ├── IFullHttpMessage.cs │ ├── IFullHttpRequest.cs │ ├── IFullHttpResponse.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Multipart │ │ ├── IAttribute.cs │ │ ├── IFileUpload.cs │ │ ├── NotEnoughDataDecoderException.cs │ │ ├── EndOfDataDecoderException.cs │ │ ├── MultiPartStatus.cs │ │ ├── IInterfaceHttpData.cs │ │ ├── FileUploadUtil.cs │ │ ├── ErrorDataEncoderException.cs │ │ └── ErrorDataDecoderException.cs │ ├── IHttpContent.cs │ ├── ILastHttpContent.cs │ ├── WebSockets │ │ ├── Extensions │ │ │ ├── IWebSocketClientExtension.cs │ │ │ ├── WebSocketExtensionDecoder.cs │ │ │ ├── WebSocketExtensionEncoder.cs │ │ │ ├── IWebSocketServerExtension.cs │ │ │ ├── IWebSocketServerExtensionHandshaker.cs │ │ │ ├── IWebSocketClientExtensionHandshaker.cs │ │ │ ├── Compression │ │ │ │ ├── WebSocketServerCompressionHandler.cs │ │ │ │ └── WebSocketClientCompressionHandler.cs │ │ │ └── IWebSocketExtension.cs │ │ ├── WebSocket07FrameEncoder.cs │ │ ├── WebSocket13FrameEncoder.cs │ │ ├── IWebSocketFrameDecoder.cs │ │ ├── IWebSocketFrameEncoder.cs │ │ ├── WebSocketHandshakeException.cs │ │ ├── WebSocket07FrameDecoder.cs │ │ └── WebSocket13FrameDecoder.cs │ ├── IHttpResponse.cs │ ├── IHttpMessage.cs │ ├── IHttpRequest.cs │ ├── HttpExpectationFailedEvent.cs │ └── Cookies │ │ └── CookieHeaderNames.cs ├── DotNetty.Common │ ├── Concurrency │ │ ├── IRunnable.cs │ │ ├── ICallable`T.cs │ │ ├── IRecyclable.cs │ │ ├── IScheduledRunnable.cs │ │ ├── IScheduledTask.cs │ │ ├── RejectedExecutionException.cs │ │ ├── IPromise.cs │ │ ├── RunnableScheduledTask.cs │ │ ├── ActionScheduledTask.cs │ │ ├── ExecutionEnvironment.cs │ │ ├── StateActionScheduledTask.cs │ │ ├── ActionScheduledAsyncTask.cs │ │ └── StateActionScheduledAsyncTask.cs │ ├── Internal │ │ ├── IDeque.cs │ │ ├── IPlatform.cs │ │ ├── IQueue.cs │ │ ├── IAppendable.cs │ │ ├── Platform.cs │ │ ├── Logging │ │ │ └── EventSourceLoggerProvider.cs │ │ ├── AbstractQueue.cs │ │ ├── CompatibleConcurrentQueue.cs │ │ └── EmptyArrays.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Friends.cs │ ├── Utilities │ │ ├── RandomExtensions.cs │ │ ├── ActionTimerTask.cs │ │ ├── ByteProcessorUtils.cs │ │ ├── BitOps.cs │ │ ├── ThreadExtensions.cs │ │ ├── IConstant.cs │ │ ├── ITimerTask.cs │ │ ├── IHashingStrategy.cs │ │ └── ReferenceEqualityComparer.cs │ └── IResourceLeakHint.cs ├── DotNetty.Transport │ ├── Channels │ │ ├── Sockets │ │ │ ├── ISocketChannel.cs │ │ │ ├── IServerSocketChannelConfiguration.cs │ │ │ ├── IServerSocketChannel.cs │ │ │ ├── ISocketChannelConfiguration.cs │ │ │ └── IDatagramChannelConfig.cs │ │ ├── ConnectionPendingException.cs │ │ ├── Groups │ │ │ ├── IChannelMatcher.cs │ │ │ └── IChannelGroupTaskCompletionSource.cs │ │ ├── NotYetConnectedException.cs │ │ ├── AlreadyConnectedException.cs │ │ ├── SkipAttribute.cs │ │ ├── IChannelId.cs │ │ ├── Embedded │ │ │ ├── EmbeddedSocketAddress.cs │ │ │ └── IEmbeddedChannel.cs │ │ ├── ConnectException.cs │ │ ├── IMessageSizeEstimator.cs │ │ ├── IAddressedEnvelope.cs │ │ ├── ChannelDuplexHandler.cs │ │ ├── ConnectTimeoutException.cs │ │ ├── IFileRegion.cs │ │ ├── ClosedChannelException.cs │ │ ├── IServerChannel.cs │ │ ├── ChannelPipelineException.cs │ │ ├── IMessageSizeEstimatorHandle.cs │ │ ├── IEventLoop.cs │ │ ├── ChannelException.cs │ │ ├── IRecvByteBufAllocator.cs │ │ ├── DefaultChannelHandlerContext.cs │ │ └── IMaxMessagesRecvByteBufAllocator.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Friends.cs │ └── Bootstrapping │ │ └── INameResolver.cs ├── DotNetty.Codecs │ ├── INameValidator.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Friends.cs │ ├── IDecoderResultProvider.cs │ ├── Compression │ │ ├── ZlibDecoder.cs │ │ ├── IChecksum.cs │ │ ├── CompressionException.cs │ │ ├── DecompressionException.cs │ │ └── ZlibEncoder.cs │ ├── NullNameValidator.cs │ ├── MessageAggregationException.cs │ ├── DecoderException.cs │ ├── EncoderException.cs │ ├── TooLongFrameException.cs │ ├── CorruptedFrameException.cs │ ├── PrematureChannelClosureException.cs │ └── CodecException.cs ├── DotNetty.Buffers │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ByteOrder.cs │ ├── IByteBufferAllocatorMetricProvider.cs │ ├── IPoolChunkMetric.cs │ ├── IPoolChunkListMetric.cs │ ├── IByteBufferAllocatorMetric.cs │ └── IPoolSubpageMetric.cs ├── DotNetty.Codecs.Mqtt │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Friends.cs │ └── Packets │ │ ├── PacketWithId.cs │ │ ├── QualityOfService.cs │ │ ├── ConnAckPacket.cs │ │ ├── PingReqPacket.cs │ │ ├── PingRespPacket.cs │ │ ├── DisconnectPacket.cs │ │ ├── ConnectReturnCode.cs │ │ ├── PubAckPacket.cs │ │ ├── PubRecPacket.cs │ │ ├── PubCompPacket.cs │ │ ├── UnsubAckPacket.cs │ │ ├── PacketType.cs │ │ ├── PubRelPacket.cs │ │ ├── Packet.cs │ │ ├── UnsubscribePacket.cs │ │ └── SubscribePacket.cs ├── DotNetty.Handlers │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Friends.cs │ ├── Logging │ │ ├── LogLevelExtensions.cs │ │ └── LogLevel.cs │ ├── Timeout │ │ ├── TimeoutException.cs │ │ ├── ReadTimeoutException.cs │ │ ├── WriteTimeoutException.cs │ │ └── IdleState.cs │ ├── Streams │ │ └── IChunkedInput.cs │ └── Tls │ │ ├── TlsSettings.cs │ │ └── ServerTlsSniSettings.cs ├── DotNetty.Codecs.Protobuf │ └── Properties │ │ └── AssemblyInfo.cs ├── DotNetty.Codecs.Redis │ ├── Messages │ │ ├── ILastBulkStringRedisContent.cs │ │ ├── IFullBulkStringRedisMessage.cs │ │ ├── IBulkStringRedisContent.cs │ │ ├── IRedisMessage.cs │ │ ├── ErrorRedisMessage.cs │ │ ├── SimpleStringRedisMessage.cs │ │ ├── InlineCommandRedisMessage.cs │ │ ├── IArrayRedisMessage.cs │ │ ├── DefaultLastBulkStringRedisContent.cs │ │ ├── BulkStringHeaderRedisMessage.cs │ │ └── IntegerRedisMessage.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── RedisCodecException.cs ├── DotNetty.Transport.Libuv │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Friends.cs │ └── Native │ │ └── RemoteConnection.cs ├── DotNetty.Codecs.ProtocolBuffers │ └── Properties │ │ └── AssemblyInfo.cs └── shared │ └── SharedAssemblyInfo.cs ├── .vscode ├── tasks.json └── launch.json ├── appveyor.yml ├── .gitignore └── .github └── workflows └── publish.yml /test/DotNetty.Codecs.Http.Tests/Multipart/file-01.txt: -------------------------------------------------------------------------------- 1 | File 01 2 | -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Http.Tests/Multipart/file-02.txt: -------------------------------------------------------------------------------- 1 | File 02 2 | -------------------------------------------------------------------------------- /examples/QuoteOfTheMoment.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": "7686" 3 | } -------------------------------------------------------------------------------- /examples/QuoteOfTheMoment.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": "7686" 3 | } -------------------------------------------------------------------------------- /DotNetty.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/DotNetty.snk -------------------------------------------------------------------------------- /examples/HttpServer/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": "7686", 3 | "libuv": "true" 4 | } -------------------------------------------------------------------------------- /examples/Telnet.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "port": "8007" 4 | } -------------------------------------------------------------------------------- /examples/Discard.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "port": "8007" 4 | } -------------------------------------------------------------------------------- /examples/Factorial.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "port": "8007" 4 | } -------------------------------------------------------------------------------- /examples/SecureChat.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "port": "8007" 4 | } -------------------------------------------------------------------------------- /examples/WebSockets.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": "8080", 3 | "libuv": "true" 4 | } -------------------------------------------------------------------------------- /shared/contoso.com.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/shared/contoso.com.pfx -------------------------------------------------------------------------------- /shared/dotnetty.com.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/shared/dotnetty.com.pfx -------------------------------------------------------------------------------- /examples/Echo.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "port": "8007", 4 | "libuv": "true" 5 | } -------------------------------------------------------------------------------- /examples/SecureChat.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "host": "127.0.0.1", 4 | "port": "8007" 5 | } -------------------------------------------------------------------------------- /examples/Discard.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "host": "127.0.0.1", 4 | "port": "8007", 5 | "size": "256" 6 | } -------------------------------------------------------------------------------- /examples/Echo.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "host": "127.0.0.1", 4 | "port": "8007", 5 | "size": "256" 6 | } -------------------------------------------------------------------------------- /examples/Telnet.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "host": "127.0.0.1", 4 | "port": "8007", 5 | "size": "256" 6 | } -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Notices.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Notices.txt -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2021.3.37f1 2 | m_EditorVersionWithRevision: 2021.3.37f1 (3b6005ad5ad6) 3 | -------------------------------------------------------------------------------- /examples/UWPEcho.Client/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/Assets/StoreLogo.png -------------------------------------------------------------------------------- /examples/UWPEcho.Client/readme.md: -------------------------------------------------------------------------------- 1 | # UWPEcho.Client 2 | 3 | This example connects to the Echo.Server with SSL, using the StreamSocketChannel class -------------------------------------------------------------------------------- /examples/Factorial.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "true", 3 | "host": "127.0.0.1", 4 | "port": "8007", 5 | "size": "256", 6 | "count": "100" 7 | } -------------------------------------------------------------------------------- /examples/UWPEcho.Client/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /examples/UWPEcho.Client/UWPEcho.Client_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/UWPEcho.Client_TemporaryKey.pfx -------------------------------------------------------------------------------- /examples/WebSockets.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssl": "false", 3 | "host": "127.0.0.1", 4 | "port": "8080", 5 | "path": "/websocket", 6 | "libuv": "true" 7 | } -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.dll -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.pdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.dll -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.pdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.dll -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.pdb -------------------------------------------------------------------------------- /examples/UWPEcho.Client/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.dll -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.pdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.dll -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.pdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.dll -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.pdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.dll.mdb -------------------------------------------------------------------------------- /after.DotNetty.sln.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/UWPEcho.Client/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /examples/UWPEcho.Client/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /examples/UWPEcho.Client/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.dll.mdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.dll.mdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.dll.mdb -------------------------------------------------------------------------------- /Directory.Build.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/icon.png -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.dll.mdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.dll.mdb -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | Requires Unity 2018.4 or higher. 4 | 5 | ## [0.7.2] - 2022-07-15 6 | ### This is the first release of *DotNettyForUnity* 7 | 8 | -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/install_makecert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/install_makecert.png -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/install_via_git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/install_via_git.png -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/download_makecert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Documentation~/docs/images/download_makecert.png -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DotNetty.Unity 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/System.Runtime.CompilerServices.Unsafe.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/SamplesForUnity/Assets/DotNetty/Runtime/System.Runtime.CompilerServices.Unsafe.dll -------------------------------------------------------------------------------- /examples/UWPEcho.Client/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vovgou/DotNettyForUnity/HEAD/examples/UWPEcho.Client/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e027c8d7487fcd043b360a5a45d0ec6c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cb2df8d041cf0542871856e43471151 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Notices.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0de388db2a779174aa9f69594be63fdc 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72d355319bb7d6143bf7e8df2c8fffeb 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f7bc0f8ee241fa47a1a13d6a110be6b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/LICENSE.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38df922502fef2a4d8e81048b1d7ef61 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c936a6f1ac36474f8f65276bfde24a8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43e5eef16b0280442b62c007cf7d6304 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f115da9a4e605a04590cbbc5c46e416f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ae5a74b089e32d4f9e7f3ffe94e6072 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a21e213b5e1e0684cb3e00a30252902f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffb2d4af7be12054db81762b2d585887 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c255d8dacae11eb43af4e29b6883331c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9f013cd847fa5144a1b8089fe0a7888 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 991956ddfc61ef14ca46d3c8eae721e9 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70f0a8fa49650a4458ed62e36ce70603 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf54e07b609f28c4c9ed1409ba230ad6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 206957aa7baaebe49899acc8f0e8c89a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c546fed3667084e4aaa511b1588f700f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39f9688dda8becc44b61267395d5e74b 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e52783c20d361e14287f5ac05e933943 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89c10de1e938af64ca52675754efe833 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92f1af146f5fa4d41b064e7023dbea80 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 312af1fcd31a2ef4a8ef4ed76e440da1 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cdb39fee38ded5b408550015cdae617b 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6957bfcee5d34ae4987f8c9817282acd 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Launcher.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5746a973d78b30a41b21ce0d608356db 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ecf53dc58e4338e4bb4a383e7499c042 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/UDPLauncher.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3fede6e0e474d145a4246a9226bccb0 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6f1d35e26c273746b0cb00476d72697 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Launcher.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5746a973d78b30a41b21ce0d608356db 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/UDPLauncher.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3fede6e0e474d145a4246a9226bccb0 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28b57d3a42da2d540b630f9820f2e9ff 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ada8f83ee198a8418c1b9206b7d426e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/System.Runtime.CompilerServices.Unsafe.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a305de97dae1f434a8f39e79eec3ae86 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28b57d3a42da2d540b630f9820f2e9ff 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /examples/UWPEcho.Client/App.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IHttpObject.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface IHttpObject : IDecoderResultProvider 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/IRunnable.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | public interface IRunnable 7 | { 8 | void Run(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/ICallable`T.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | public interface ICallable 7 | { 8 | T Call(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Sockets/ISocketChannel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Sockets 5 | { 6 | public interface ISocketChannel : IChannel 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IFullHttpMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface IFullHttpMessage : IHttpMessage, ILastHttpContent 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IFullHttpRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface IFullHttpRequest : IHttpRequest, IFullHttpMessage 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IFullHttpResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface IFullHttpResponse : IHttpResponse, IFullHttpMessage 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/INameValidator.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | public interface INameValidator 7 | { 8 | void ValidateName(T name); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/CompositeByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | namespace DotNetty.Buffers.Tests 4 | { 5 | public class CompositeByteBufferTests : AbstractCompositeByteBufferTests 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/IDeque.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Internal 5 | { 6 | public interface IDeque : IQueue 7 | { 8 | bool TryDequeueLast(out T item); 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoClient.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edb79d9b271972b4c8bfb4ac82f7a34a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoServer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a74b041de8e74a4783f8a4a4a6aa46b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/Launcher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b8b9e3315fbec74f9048d97e180ad7c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/UDPLauncher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd9497989c131ea489a83adcea442fba 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /src/DotNetty.Buffers/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Codecs/IDecoderResultProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | public interface IDecoderResultProvider 7 | { 8 | DecoderResult Result { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Transport/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoClientHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8c4ab8c409edde47b1db044e75dee7a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoServerHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87b7e84c49412a344951ccc0fae47f94 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoUDPClient.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14184f5572728e54692622a978cf32f0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoUDPServer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 941f09b48911d33479148e8af9defc90 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoClient.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edb79d9b271972b4c8bfb4ac82f7a34a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoServer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a74b041de8e74a4783f8a4a4a6aa46b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/Launcher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b8b9e3315fbec74f9048d97e180ad7c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/UDPLauncher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd9497989c131ea489a83adcea442fba 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Protobuf/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/ILastBulkStringRedisContent.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | public interface ILastBulkStringRedisContent : IBulkStringRedisContent 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Transport.Libuv/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /test/DotNetty.Common.Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoUDPClientHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 516187a56d313724fb287f719965312a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Samples~/Tutorials/Scripts/EchoUDPServerHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56d8dcdbbef13d5498988435e7afca2b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoClientHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8c4ab8c409edde47b1db044e75dee7a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoServerHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87b7e84c49412a344951ccc0fae47f94 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoUDPClient.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14184f5572728e54692622a978cf32f0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoUDPServer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 941f09b48911d33479148e8af9defc90 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/IAttribute.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | public interface IAttribute : IHttpData 7 | { 8 | string Value { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoUDPClientHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 516187a56d313724fb287f719965312a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/Samples/DotNetty/0.7.5/Tutorials/Scripts/EchoUDPServerHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56d8dcdbbef13d5498988435e7afca2b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Samples/DotNetty/0.7.5/Tutorials/Launcher.unity 10 | guid: 5746a973d78b30a41b21ce0d608356db 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IHttpContent.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | using DotNetty.Buffers; 7 | 8 | public interface IHttpContent : IHttpObject, IByteBufferHolder 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/ILastHttpContent.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface ILastHttpContent : IHttpContent 7 | { 8 | HttpHeaders TrailingHeaders { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PacketWithId.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public abstract class PacketWithId : Packet 7 | { 8 | public int PacketId { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.ProtocolBuffers/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Reflection; 5 | using System.Resources; 6 | 7 | [assembly: NeutralResourcesLanguage("en-US")] 8 | [assembly: AssemblyMetadata("Serviceable", "True")] -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/ConnectionPendingException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System; 7 | 8 | public class ConnectionPendingException : Exception 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Groups/IChannelMatcher.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Groups 5 | { 6 | public interface IChannelMatcher 7 | { 8 | bool Matches(IChannel channel); 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/NotYetConnectedException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System.IO; 7 | 8 | public class NotYetConnectedException : IOException 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/IPlatform.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Internal 5 | { 6 | public interface IPlatform 7 | { 8 | int GetCurrentProcessId(); 9 | 10 | byte[] GetDefaultDeviceId(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/AlreadyConnectedException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | namespace DotNetty.Transport.Channels 4 | { 5 | using System; 6 | 7 | public class AlreadyConnectedException : Exception 8 | { 9 | 10 | } 11 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "msbuild", 9 | "args": [ 10 | "dotnetty.sln" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/IWebSocketClientExtension.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions 5 | { 6 | public interface IWebSocketClientExtension : IWebSocketExtension 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/Compression/ZlibDecoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Compression 5 | { 6 | public abstract class ZlibDecoder : ByteToMessageDecoder 7 | { 8 | public abstract bool IsClosed { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/IRecyclable.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | public interface IRecyclable 7 | { 8 | void Init(IEventExecutor executor); 9 | 10 | void Recycle(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/SkipAttribute.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System; 7 | 8 | [AttributeUsage(AttributeTargets.Method)] 9 | public class SkipAttribute : Attribute 10 | { 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/IFullBulkStringRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | public interface IFullBulkStringRedisMessage : ILastBulkStringRedisContent 7 | { 8 | bool IsNull { get; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/IBulkStringRedisContent.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | using DotNetty.Buffers; 7 | 8 | public interface IBulkStringRedisContent : IRedisMessage, IByteBufferHolder 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/IRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | /// 7 | /// Base interface for redis messages. 8 | /// 9 | public interface IRedisMessage 10 | { 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/IScheduledRunnable.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | 8 | public interface IScheduledRunnable : IRunnable, IScheduledTask, IComparable 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/WebSocketExtensionDecoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions 5 | { 6 | public abstract class WebSocketExtensionDecoder : MessageToMessageDecoder 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/WebSocketExtensionEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions 5 | { 6 | public abstract class WebSocketExtensionEncoder : MessageToMessageEncoder 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Sockets/IServerSocketChannelConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Sockets 5 | { 6 | public interface IServerSocketChannelConfiguration : IChannelConfiguration 7 | { 8 | int Backlog { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IChannelId.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System; 7 | 8 | public interface IChannelId : IComparable 9 | { 10 | string AsShortText(); 11 | 12 | string AsLongText(); 13 | } 14 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Utilities/IReadFinishedSignal.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Utilities 5 | { 6 | public interface IReadFinishedSignal 7 | { 8 | bool Finished { get; } 9 | 10 | void Signal(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IHttpResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface IHttpResponse : IHttpMessage 7 | { 8 | HttpResponseStatus Status { get; } 9 | 10 | IHttpResponse SetStatus(HttpResponseStatus status); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/DotNetty.Buffers/ByteOrder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers 5 | { 6 | public enum ByteOrder 7 | { 8 | /// 9 | /// Default on most Windows systems 10 | /// 11 | LittleEndian = 0, 12 | BigEndian = 1 13 | } 14 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/IWebSocketServerExtension.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions 5 | { 6 | public interface IWebSocketServerExtension : IWebSocketExtension 7 | { 8 | WebSocketExtensionData NewReponseData(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Embedded/EmbeddedSocketAddress.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Embedded 5 | { 6 | using System.Net; 7 | 8 | sealed class EmbeddedSocketAddress : EndPoint 9 | { 10 | public override string ToString() => "embedded"; 11 | } 12 | } -------------------------------------------------------------------------------- /examples/Factorial.Client/ClientSettings.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace Factorial.Client 5 | { 6 | using Examples.Common; 7 | 8 | public class ClientSettings : Examples.Common.ClientSettings 9 | { 10 | public static int Count => int.Parse(ExampleHelper.Configuration["count"]); 11 | } 12 | } -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 0.7.0.{build} 2 | pull_requests: 3 | do_not_increment_build_number: true 4 | image: Visual Studio 2019 5 | build_script: 6 | - cmd: powershell .\build.ps1 -target PR 7 | test: off 8 | deploy: off 9 | notifications: 10 | - provider: GitHubPullRequest 11 | auth_token: 12 | secure: SYDAZL544to3SpNef6qb6HMYCgIr07XkNIRnS/BUem8ahAXIebAzd6LnAlZg1YSA 13 | on_build_success: true 14 | on_build_failure: true 15 | on_build_status_changed: true -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/QualityOfService.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public enum QualityOfService 7 | { 8 | AtMostOnce = 0, 9 | AtLeastOnce = 0x1, 10 | ExactlyOnce = 0x2, 11 | Reserved = 0x3, 12 | Failure = 0x80 13 | } 14 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/RandomExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | using System; 7 | 8 | public static class RandomExtensions 9 | { 10 | public static long NextLong(this Random random) => random.Next() << 32 & unchecked((uint)random.Next()); 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/ErrorRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | public sealed class ErrorRedisMessage : AbstractStringRedisMessage 7 | { 8 | public ErrorRedisMessage(string content) 9 | : base(content) 10 | { 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Logging/LogLevelExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Logging 5 | { 6 | using DotNetty.Common.Internal.Logging; 7 | 8 | public static class LogLevelExtensions 9 | { 10 | public static InternalLogLevel ToInternalLevel(this LogLevel level) => (InternalLogLevel)level; 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IHttpMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface IHttpMessage : IHttpObject 7 | { 8 | HttpVersion ProtocolVersion { get; } 9 | 10 | IHttpMessage SetProtocolVersion(HttpVersion version); 11 | 12 | HttpHeaders Headers { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/IFileUpload.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | public interface IFileUpload : IHttpData 7 | { 8 | string FileName { get; set; } 9 | 10 | string ContentType { get; set; } 11 | 12 | string ContentTransferEncoding { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/IWebSocketServerExtensionHandshaker.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions 5 | { 6 | public interface IWebSocketServerExtensionHandshaker 7 | { 8 | IWebSocketServerExtension HandshakeExtension(WebSocketExtensionData extensionData); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/DotNetty.Common.Tests/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/DotNetty.Tests.Common/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/DotNetty.Tests.End2End/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/UWPEcho.Client/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "Microsoft.Extensions.Logging": "1.1.0", 4 | "Microsoft.Extensions.Logging.Abstractions": "1.1.0", 5 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2" 6 | }, 7 | "frameworks": { 8 | "uap10.0": {} 9 | }, 10 | "runtimes": { 11 | "win10-arm": {}, 12 | "win10-arm-aot": {}, 13 | "win10-x86": {}, 14 | "win10-x86-aot": {}, 15 | "win10-x64": {}, 16 | "win10-x64-aot": {} 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/SimpleStringRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | public sealed class SimpleStringRedisMessage : AbstractStringRedisMessage 7 | { 8 | public SimpleStringRedisMessage(string content) 9 | : base(content) 10 | { 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/WebSocket07FrameEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets 5 | { 6 | public class WebSocket07FrameEncoder : WebSocket08FrameEncoder 7 | { 8 | public WebSocket07FrameEncoder(bool maskPayload) 9 | : base(maskPayload) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/WebSocket13FrameEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets 5 | { 6 | public class WebSocket13FrameEncoder : WebSocket08FrameEncoder 7 | { 8 | public WebSocket13FrameEncoder(bool maskPayload) 9 | : base(maskPayload) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Sockets/IServerSocketChannel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Sockets 5 | { 6 | /// 7 | /// A TCP/IP which accepts incoming TCP/IP connections. 8 | /// 9 | public interface IServerSocketChannel : IServerChannel 10 | { 11 | } 12 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/InlineCommandRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | public sealed class InlineCommandRedisMessage : AbstractStringRedisMessage 7 | { 8 | public InlineCommandRedisMessage(string content) 9 | : base(content) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/IHttpRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | public interface IHttpRequest : IHttpMessage 7 | { 8 | HttpMethod Method { get; } 9 | 10 | IHttpRequest SetMethod(HttpMethod method); 11 | 12 | string Uri { get; } 13 | 14 | IHttpRequest SetUri(string uri); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/Compression/IChecksum.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Compression 5 | { 6 | interface IChecksum 7 | { 8 | void Update(byte[] buf, int index, int len); 9 | 10 | void Reset(); 11 | 12 | void Reset(long init); 13 | 14 | long GetValue(); 15 | 16 | IChecksum Copy(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Bootstrapping/INameResolver.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Bootstrapping 5 | { 6 | using System.Net; 7 | using System.Threading.Tasks; 8 | 9 | public interface INameResolver 10 | { 11 | bool IsResolved(EndPoint address); 12 | 13 | Task ResolveAsync(EndPoint address); 14 | } 15 | } -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/PooledHeapByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | public sealed class PooledHeapByteBufferTests : AbstractPooledByteBufferTests 7 | { 8 | protected override IByteBuffer Alloc(int length, int maxCapacity) => PooledByteBufferAllocator.Default.HeapBuffer(length, maxCapacity); 9 | } 10 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/ConnectException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System; 7 | 8 | public class ConnectException : Exception 9 | { 10 | public ConnectException(string message, Exception innerException) 11 | : base(message, innerException) 12 | { 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /test/DotNetty.Handlers.Tests/IWriteStrategy.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Tests 5 | { 6 | using System; 7 | using System.Threading.Tasks; 8 | using DotNetty.Transport.Channels.Embedded; 9 | 10 | public interface IWriteStrategy 11 | { 12 | Task WriteToChannelAsync(IEmbeddedChannel channel, ArraySegment input); 13 | } 14 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IMessageSizeEstimator.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | public interface IMessageSizeEstimator 7 | { 8 | /// 9 | /// Creates a new handle. The handle provides the actual operations. 10 | /// 11 | IMessageSizeEstimatorHandle NewHandle(); 12 | } 13 | } -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/PooledDirectByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | public sealed class PooledDirectByteBufferTests : AbstractPooledByteBufferTests 7 | { 8 | protected override IByteBuffer Alloc(int length, int maxCapacity) => PooledByteBufferAllocator.Default.DirectBuffer(length, maxCapacity); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/ConnAckPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class ConnAckPacket : Packet 7 | { 8 | public override PacketType PacketType => PacketType.CONNACK; 9 | 10 | public bool SessionPresent { get; set; } 11 | 12 | public ConnectReturnCode ReturnCode { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/IQueue.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Internal 5 | { 6 | public interface IQueue 7 | { 8 | bool TryEnqueue(T item); 9 | 10 | bool TryDequeue(out T item); 11 | 12 | bool TryPeek(out T item); 13 | 14 | int Count { get; } 15 | 16 | bool IsEmpty { get; } 17 | 18 | void Clear(); 19 | } 20 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IAddressedEnvelope.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System.Net; 7 | using DotNetty.Common; 8 | 9 | public interface IAddressedEnvelope : IReferenceCounted 10 | { 11 | T Content { get; } 12 | 13 | EndPoint Sender { get; } 14 | 15 | EndPoint Recipient { get; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/IArrayRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | using System.Collections.Generic; 7 | using DotNetty.Common; 8 | 9 | public interface IArrayRedisMessage : IReferenceCounted, IRedisMessage 10 | { 11 | bool IsNull { get; } 12 | 13 | IList Children { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/IAppendable.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Internal 5 | { 6 | using DotNetty.Common.Utilities; 7 | 8 | public interface IAppendable 9 | { 10 | IAppendable Append(char c); 11 | 12 | IAppendable Append(ICharSequence sequence); 13 | 14 | IAppendable Append(ICharSequence sequence, int start, int end); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/IWebSocketClientExtensionHandshaker.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions 5 | { 6 | public interface IWebSocketClientExtensionHandshaker 7 | { 8 | WebSocketExtensionData NewRequestData(); 9 | 10 | IWebSocketClientExtension HandshakeExtension(WebSocketExtensionData extensionData); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Timeout/TimeoutException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers 5 | { 6 | using System.IO; 7 | 8 | public class TimeoutException : IOException 9 | { 10 | public TimeoutException(string message) 11 | :base(message) 12 | { 13 | } 14 | 15 | public TimeoutException() 16 | { 17 | } 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PingReqPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class PingReqPacket : Packet 7 | { 8 | public static readonly PingReqPacket Instance = new PingReqPacket(); 9 | 10 | PingReqPacket() 11 | { 12 | } 13 | 14 | public override PacketType PacketType => PacketType.PINGREQ; 15 | } 16 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Utilities/SimpleReadFinishedSignal.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Utilities 5 | { 6 | public class SimpleReadFinishedSignal : IReadFinishedSignal 7 | { 8 | public void Signal() 9 | { 10 | this.Finished = true; 11 | } 12 | 13 | public bool Finished { get; private set; } 14 | } 15 | } -------------------------------------------------------------------------------- /src/DotNetty.Buffers/IByteBufferAllocatorMetricProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers 5 | { 6 | public interface IByteBufferAllocatorMetricProvider 7 | { 8 | /// 9 | /// Returns a for a 10 | /// 11 | IByteBufferAllocatorMetric Metric { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PingRespPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class PingRespPacket : Packet 7 | { 8 | public static readonly PingRespPacket Instance = new PingRespPacket(); 9 | 10 | PingRespPacket() 11 | { 12 | } 13 | 14 | public override PacketType PacketType => PacketType.PINGRESP; 15 | } 16 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/ChannelDuplexHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | /// 7 | /// It is a good starting point if your implementation needs to intercept operations and also 8 | /// state updates. 9 | /// 10 | public class ChannelDuplexHandler : ChannelHandlerAdapter 11 | { 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/DisconnectPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class DisconnectPacket : Packet 7 | { 8 | public static readonly DisconnectPacket Instance = new DisconnectPacket(); 9 | 10 | DisconnectPacket() 11 | { 12 | } 13 | 14 | public override PacketType PacketType => PacketType.DISCONNECT; 15 | } 16 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/ActionTimerTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | using System; 7 | 8 | public class ActionTimerTask : ITimerTask 9 | { 10 | readonly Action action; 11 | 12 | public ActionTimerTask(Action action) => this.action = action; 13 | 14 | public void Run(ITimeout timeout) => this.action(timeout); 15 | } 16 | } -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Logging/LogLevel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Logging 5 | { 6 | using DotNetty.Common.Internal.Logging; 7 | 8 | public enum LogLevel 9 | { 10 | TRACE = InternalLogLevel.TRACE, 11 | DEBUG = InternalLogLevel.DEBUG, 12 | INFO = InternalLogLevel.INFO, 13 | WARN = InternalLogLevel.WARN, 14 | ERROR = InternalLogLevel.ERROR, 15 | } 16 | } -------------------------------------------------------------------------------- /src/shared/SharedAssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by Cake. 4 | // 5 | //------------------------------------------------------------------------------ 6 | using System.Reflection; 7 | 8 | [assembly: AssemblyCompany("Microsoft")] 9 | [assembly: AssemblyProduct("DotNetty")] 10 | [assembly: AssemblyVersion("0.7.5")] 11 | [assembly: AssemblyFileVersion("0.7.5")] 12 | [assembly: AssemblyCopyright("(c) Microsoft 2015 - 2021")] 13 | 14 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/NullNameValidator.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | public sealed class NullNameValidator : INameValidator 9 | { 10 | public void ValidateName(T name) 11 | { 12 | if (name == null) 13 | { 14 | throw new ArgumentNullException(nameof(name)); 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Embedded/IEmbeddedChannel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Embedded 5 | { 6 | public interface IEmbeddedChannel : IChannel 7 | { 8 | bool WriteInbound(params object[] msgs); 9 | 10 | bool WriteOutbound(params object[] msgs); 11 | 12 | T ReadInbound(); 13 | 14 | T ReadOutbound(); 15 | 16 | bool Finish(); 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/IScheduledTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System.Runtime.CompilerServices; 7 | using System.Threading.Tasks; 8 | 9 | public interface IScheduledTask 10 | { 11 | bool Cancel(); 12 | 13 | PreciseTimeSpan Deadline { get; } 14 | 15 | Task Completion { get; } 16 | 17 | TaskAwaiter GetAwaiter(); 18 | } 19 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/Platform.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common 5 | { 6 | using System; 7 | using DotNetty.Common.Internal; 8 | 9 | public static class Platform 10 | { 11 | public static int GetCurrentProcessId() => PlatformProvider.Platform.GetCurrentProcessId(); 12 | 13 | public static byte[] GetDefaultDeviceId() => PlatformProvider.Platform.GetDefaultDeviceId(); 14 | } 15 | } -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Streams/IChunkedInput.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Streams 5 | { 6 | using DotNetty.Buffers; 7 | 8 | public interface IChunkedInput 9 | { 10 | bool IsEndOfInput { get; } 11 | 12 | void Close(); 13 | 14 | T ReadChunk(IByteBufferAllocator allocator); 15 | 16 | long Length { get; } 17 | 18 | long Progress { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/ConnectTimeoutException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System.IO; 7 | 8 | public class ConnectTimeoutException : IOException 9 | { 10 | public ConnectTimeoutException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public ConnectTimeoutException() 16 | { 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/RejectedExecutionException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | 8 | public class RejectedExecutionException : Exception 9 | { 10 | public RejectedExecutionException() 11 | { 12 | } 13 | 14 | public RejectedExecutionException(string message) 15 | : base(message) 16 | { 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/ByteProcessorUtils.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | static class ByteProcessorUtils 7 | { 8 | internal static readonly byte Space = (byte)' '; 9 | internal static readonly byte HTab = (byte)'\t'; 10 | internal static readonly byte CarriageReturn = (byte)'\r'; 11 | internal static readonly byte LineFeed = (byte)'\n'; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IFileRegion.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System.IO; 7 | using DotNetty.Common; 8 | 9 | public interface IFileRegion : IReferenceCounted 10 | { 11 | long Position { get; } 12 | 13 | long Transferred { get; } 14 | 15 | long Count { get; } 16 | 17 | long TransferTo(Stream target, long position); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/ConnectReturnCode.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public enum ConnectReturnCode 7 | { 8 | Accepted = 0x00, 9 | RefusedUnacceptableProtocolVersion = 0X01, 10 | RefusedIdentifierRejected = 0x02, 11 | RefusedServerUnavailable = 0x03, 12 | RefusedBadUsernameOrPassword = 0x04, 13 | RefusedNotAuthorized = 0x05 14 | } 15 | } -------------------------------------------------------------------------------- /test/DotNetty.Microbench/Allocators/UnpooledByteBufferAllocatorBenchmark.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Microbench.Allocators 5 | { 6 | using DotNetty.Buffers; 7 | 8 | public class UnpooledHeapByteBufferAllocatorBenchmark : AbstractByteBufferAllocatorBenchmark 9 | { 10 | public UnpooledHeapByteBufferAllocatorBenchmark() : base(new UnpooledByteBufferAllocator(true)) 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Tests/Protobuf/TestUtil.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Tests.Protobuf 5 | { 6 | using DotNetty.Buffers; 7 | 8 | static class TestUtil 9 | { 10 | internal static byte[] GetReadableBytes(IByteBuffer byteBuffer) 11 | { 12 | var data = new byte[byteBuffer.ReadableBytes]; 13 | byteBuffer.ReadBytes(data); 14 | 15 | return data; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/HttpServer/MessageBody.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace HttpServer 5 | { 6 | sealed class MessageBody 7 | { 8 | public MessageBody(string message) 9 | { 10 | this.Message = message; 11 | } 12 | 13 | public string Message { get; } 14 | 15 | public string ToJsonFormat() => "{" + $"\"{nameof(MessageBody)}\" :" + "{" + $"\"{nameof(this.Message)}\"" + " :\"" + this.Message + "\"}" +"}"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/Logging/EventSourceLoggerProvider.cs: -------------------------------------------------------------------------------- 1 | //// Copyright (c) Microsoft. All rights reserved. 2 | //// Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | //namespace DotNetty.Common.Internal.Logging 5 | //{ 6 | // using Microsoft.Extensions.Logging; 7 | 8 | // public sealed class EventSourceLoggerProvider : ILoggerProvider 9 | // { 10 | // public void Dispose() 11 | // { 12 | // } 13 | 14 | // public ILogger CreateLogger(string categoryName) => new EventSourceLogger(categoryName); 15 | // } 16 | //} -------------------------------------------------------------------------------- /src/DotNetty.Codecs/Properties/Friends.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Runtime.CompilerServices; 5 | 6 | [assembly: InternalsVisibleTo("DotNetty.Codecs.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d9782d5a0b850f230f71e06de2e101d8441d83e15eef715837eee38fdbf5cb369b41ec36e6e7668c18cbb09e5419c179360461e740c1cce6ffbdcf81f245e1e705482797fe42aff2d31ecd72ea87362ded3c14066746fbab4a8e1896f8b982323c84e2c1b08407c0de18b7feef1535fb972a3b26181f5a304ebd181795a46d8f")] 7 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Properties/Friends.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Runtime.CompilerServices; 5 | 6 | [assembly: InternalsVisibleTo("DotNetty.Common.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d9782d5a0b850f230f71e06de2e101d8441d83e15eef715837eee38fdbf5cb369b41ec36e6e7668c18cbb09e5419c179360461e740c1cce6ffbdcf81f245e1e705482797fe42aff2d31ecd72ea87362ded3c14066746fbab4a8e1896f8b982323c84e2c1b08407c0de18b7feef1535fb972a3b26181f5a304ebd181795a46d8f")] 7 | -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Properties/Friends.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Runtime.CompilerServices; 5 | 6 | [assembly: InternalsVisibleTo("DotNetty.Handlers.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d9782d5a0b850f230f71e06de2e101d8441d83e15eef715837eee38fdbf5cb369b41ec36e6e7668c18cbb09e5419c179360461e740c1cce6ffbdcf81f245e1e705482797fe42aff2d31ecd72ea87362ded3c14066746fbab4a8e1896f8b982323c84e2c1b08407c0de18b7feef1535fb972a3b26181f5a304ebd181795a46d8f")] 7 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Properties/Friends.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Runtime.CompilerServices; 5 | 6 | [assembly: InternalsVisibleTo("DotNetty.Transport.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d9782d5a0b850f230f71e06de2e101d8441d83e15eef715837eee38fdbf5cb369b41ec36e6e7668c18cbb09e5419c179360461e740c1cce6ffbdcf81f245e1e705482797fe42aff2d31ecd72ea87362ded3c14066746fbab4a8e1896f8b982323c84e2c1b08407c0de18b7feef1535fb972a3b26181f5a304ebd181795a46d8f")] 7 | -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - PostProcessing 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Properties/Friends.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Runtime.CompilerServices; 5 | 6 | [assembly: InternalsVisibleTo("DotNetty.Codecs.Mqtt.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d9782d5a0b850f230f71e06de2e101d8441d83e15eef715837eee38fdbf5cb369b41ec36e6e7668c18cbb09e5419c179360461e740c1cce6ffbdcf81f245e1e705482797fe42aff2d31ecd72ea87362ded3c14066746fbab4a8e1896f8b982323c84e2c1b08407c0de18b7feef1535fb972a3b26181f5a304ebd181795a46d8f")] 7 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/ClosedChannelException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System; 7 | using System.IO; 8 | 9 | public class ClosedChannelException : IOException 10 | { 11 | public ClosedChannelException() 12 | { 13 | } 14 | 15 | public ClosedChannelException(string message, Exception innerException) 16 | : base(message, innerException) 17 | { 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/UnpooledByteBufferAllocatorTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | public class UnpooledByteBufferAllocatorTests : AbstractByteBufferAllocatorTests 7 | { 8 | protected override IByteBufferAllocator NewAllocator(bool preferDirect) => new UnpooledByteBufferAllocator(preferDirect); 9 | 10 | protected override IByteBufferAllocator NewUnpooledAllocator() => new UnpooledByteBufferAllocator(false); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/DotNetty.Transport.Libuv/Properties/Friends.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | using System.Runtime.CompilerServices; 5 | 6 | [assembly: InternalsVisibleTo("DotNetty.Transport.Libuv.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d9782d5a0b850f230f71e06de2e101d8441d83e15eef715837eee38fdbf5cb369b41ec36e6e7668c18cbb09e5419c179360461e740c1cce6ffbdcf81f245e1e705482797fe42aff2d31ecd72ea87362ded3c14066746fbab4a8e1896f8b982323c84e2c1b08407c0de18b7feef1535fb972a3b26181f5a304ebd181795a46d8f")] 7 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IServerChannel.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using DotNetty.Transport.Channels.Sockets; 7 | 8 | /// 9 | /// A that accepts an incoming connection attempt and creates its child 10 | /// s by accepting them. is a good example. 11 | /// 12 | public interface IServerChannel : IChannel 13 | { 14 | } 15 | } -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Protobuf.Tests/Addressbook.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | package Google.Protobuf.Examples.AddressBook; 3 | 4 | // [START messages] 5 | message Person { 6 | string name = 1; 7 | int32 id = 2; // Unique ID number for this person. 8 | string email = 3; 9 | 10 | enum PhoneType { 11 | MOBILE = 0; 12 | HOME = 1; 13 | WORK = 2; 14 | } 15 | 16 | message PhoneNumber { 17 | string number = 1; 18 | PhoneType type = 2; 19 | } 20 | 21 | repeated PhoneNumber phones = 4; 22 | } 23 | 24 | // Our address book file is just one of these. 25 | message AddressBook { 26 | repeated Person people = 1; 27 | } -------------------------------------------------------------------------------- /test/DotNetty.Microbench/Allocators/PooledByteBufferAllocatorBenchmark.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Microbench.Allocators 5 | { 6 | using DotNetty.Buffers; 7 | 8 | public class PooledByteBufferAllocatorBenchmark : AbstractByteBufferAllocatorBenchmark 9 | { 10 | public PooledByteBufferAllocatorBenchmark() 11 | : base(new PooledByteBufferAllocator(true, 4, 4, 8192, 11, 0, 0, 0)) // Disable thread-local cache 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/DotNetty.Tests.Common/XUnitOutputLoggerProvider.cs: -------------------------------------------------------------------------------- 1 | namespace DotNetty.Tests.Common 2 | { 3 | using Microsoft.Extensions.Logging; 4 | using Xunit.Abstractions; 5 | 6 | sealed class XUnitOutputLoggerProvider : ILoggerProvider 7 | { 8 | readonly ITestOutputHelper output; 9 | 10 | public XUnitOutputLoggerProvider(ITestOutputHelper output) 11 | { 12 | this.output = output; 13 | } 14 | 15 | public void Dispose() 16 | { 17 | } 18 | 19 | public ILogger CreateLogger(string categoryName) => new XUnitOutputLogger(categoryName, this.output); 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/NotEnoughDataDecoderException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | using System; 7 | 8 | public class NotEnoughDataDecoderException : DecoderException 9 | { 10 | public NotEnoughDataDecoderException(string message) : base(message) 11 | { 12 | } 13 | 14 | public NotEnoughDataDecoderException(Exception innerException) : base(innerException) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/WebSocketServerCompressionHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions.Compression 5 | { 6 | public class WebSocketServerCompressionHandler : WebSocketServerExtensionHandler 7 | { 8 | public WebSocketServerCompressionHandler() 9 | : base(new PerMessageDeflateServerExtensionHandshaker(), new DeflateFrameServerExtensionHandshaker()) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DotNetty.Transport.Libuv/Native/RemoteConnection.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Libuv.Native 5 | { 6 | using System; 7 | 8 | sealed class RemoteConnection 9 | { 10 | public RemoteConnection(NativeHandle client, Exception error) 11 | { 12 | this.Client = client; 13 | this.Error = error; 14 | } 15 | 16 | internal NativeHandle Client { get; } 17 | 18 | internal Exception Error { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Http.Tests/WebSockets/WebSocketClientHandshaker08Test.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Tests.WebSockets 5 | { 6 | using System; 7 | using DotNetty.Codecs.Http.WebSockets; 8 | 9 | public class WebSocketClientHandshaker08Test : WebSocketClientHandshaker07Test 10 | { 11 | protected override WebSocketClientHandshaker NewHandshaker(Uri uri) => new WebSocketClientHandshaker08(uri, WebSocketVersion.V08, null, false, null, 1024); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Http.Tests/WebSockets/WebSocketClientHandshaker13Test.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Tests.WebSockets 5 | { 6 | using System; 7 | using DotNetty.Codecs.Http.WebSockets; 8 | 9 | public class WebSocketClientHandshaker13Test : WebSocketClientHandshaker07Test 10 | { 11 | protected override WebSocketClientHandshaker NewHandshaker(Uri uri) => new WebSocketClientHandshaker13(uri, WebSocketVersion.V13, null, false, null, 1024); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PubAckPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class PubAckPacket : PacketWithId 7 | { 8 | public override PacketType PacketType => PacketType.PUBACK; 9 | 10 | public static PubAckPacket InResponseTo(PublishPacket publishPacket) 11 | { 12 | return new PubAckPacket 13 | { 14 | PacketId = publishPacket.PacketId 15 | }; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PubRecPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class PubRecPacket : PacketWithId 7 | { 8 | public override PacketType PacketType => PacketType.PUBREC; 9 | 10 | public static PubRecPacket InResponseTo(PublishPacket publishPacket) 11 | { 12 | return new PubRecPacket 13 | { 14 | PacketId = publishPacket.PacketId 15 | }; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs/Compression/CompressionException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Compression 5 | { 6 | using System; 7 | 8 | public class CompressionException : EncoderException 9 | { 10 | public CompressionException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public CompressionException(string message, Exception exception) 16 | : base(message, exception) 17 | { 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Timeout/ReadTimeoutException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Timeout 5 | { 6 | public sealed class ReadTimeoutException : TimeoutException 7 | { 8 | public readonly static ReadTimeoutException Instance = new ReadTimeoutException(); 9 | 10 | public ReadTimeoutException(string message) 11 | :base(message) 12 | { 13 | } 14 | 15 | public ReadTimeoutException() 16 | { 17 | } 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/WrappedCompositeByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | public class WrappedCompositeByteBufferTests : CompositeByteBufferTests 7 | { 8 | protected sealed override IByteBuffer NewBuffer(int length, int maxCapacity) => this.Wrap((CompositeByteBuffer)base.NewBuffer(length, maxCapacity)); 9 | 10 | protected virtual IByteBuffer Wrap(CompositeByteBuffer buffer) => new WrappedCompositeByteBuffer(buffer); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/IWebSocketFrameDecoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets 5 | { 6 | using DotNetty.Transport.Channels; 7 | 8 | /// 9 | /// Marker interface which all WebSocketFrame decoders need to implement. This makes it 10 | /// easier to access the added encoder later in the 11 | /// 12 | public interface IWebSocketFrameDecoder : IChannelHandler 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/IWebSocketFrameEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets 5 | { 6 | using DotNetty.Transport.Channels; 7 | 8 | /// 9 | /// Marker interface which all WebSocketFrame encoders need to implement. This makes it 10 | /// easier to access the added encoder later in the . 11 | /// 12 | public interface IWebSocketFrameEncoder : IChannelHandler 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PubCompPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class PubCompPacket : PacketWithId 7 | { 8 | public override PacketType PacketType => PacketType.PUBCOMP; 9 | 10 | public static PubCompPacket InResponseTo(PubRelPacket publishPacket) 11 | { 12 | return new PubCompPacket 13 | { 14 | PacketId = publishPacket.PacketId 15 | }; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs/MessageAggregationException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | public class MessageAggregationException : InvalidOperationException 9 | { 10 | public MessageAggregationException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public MessageAggregationException(string message, Exception cause) 16 | : base(message, cause) 17 | { 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/ChannelPipelineException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System; 7 | 8 | class ChannelPipelineException : Exception 9 | { 10 | public ChannelPipelineException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public ChannelPipelineException(string message, Exception innerException) 16 | : base(message, innerException) 17 | { 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Http.Tests/Multipart/DiskFileUploadTest.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Tests.Multipart 5 | { 6 | using DotNetty.Codecs.Http.Multipart; 7 | using Xunit; 8 | 9 | public sealed class DiskFileUploadTest 10 | { 11 | [Fact] 12 | public void DiskFileUploadEquals() 13 | { 14 | var f2 = new DiskFileUpload("d1", "d1", "application/json", null, null, 100); 15 | Assert.Equal(f2, f2); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/DotNetty.Microbench/Allocators/PooledHeapByteBufferAllocatorBenchmark.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Microbench.Allocators 5 | { 6 | using DotNetty.Buffers; 7 | 8 | public class PooledHeapByteBufferAllocatorBenchmark : AbstractByteBufferAllocatorBenchmark 9 | { 10 | public PooledHeapByteBufferAllocatorBenchmark() 11 | : base( new PooledByteBufferAllocator(true, 4, 4, 8192, 11, 0, 0, 0)) // Disable thread-local cache 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/EndOfDataDecoderException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | using System; 7 | 8 | public class EndOfDataDecoderException : DecoderException 9 | { 10 | public EndOfDataDecoderException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public EndOfDataDecoderException(Exception innerException) 16 | : base(innerException) 17 | { 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/Compression/DecompressionException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Compression 5 | { 6 | using System; 7 | 8 | public class DecompressionException : DecoderException 9 | { 10 | public DecompressionException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public DecompressionException(string message, Exception exception) 16 | : base(message, exception) 17 | { 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/AbstractQueue.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Internal 5 | { 6 | public abstract class AbstractQueue : IQueue 7 | { 8 | public abstract bool TryEnqueue(T item); 9 | 10 | public abstract bool TryDequeue(out T item); 11 | 12 | public abstract bool TryPeek(out T item); 13 | 14 | public abstract int Count { get; } 15 | 16 | public abstract bool IsEmpty { get; } 17 | 18 | public abstract void Clear(); 19 | } 20 | } -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Timeout/WriteTimeoutException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Timeout 5 | { 6 | public sealed class WriteTimeoutException : TimeoutException 7 | { 8 | public readonly static WriteTimeoutException Instance = new WriteTimeoutException(); 9 | 10 | public WriteTimeoutException(string message) 11 | :base(message) 12 | { 13 | } 14 | 15 | public WriteTimeoutException() 16 | { 17 | } 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Http.Tests/Multipart/MemoryFileUploadTest.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Tests.Multipart 5 | { 6 | using DotNetty.Codecs.Http.Multipart; 7 | using Xunit; 8 | 9 | public sealed class MemoryFileUploadTest 10 | { 11 | [Fact] 12 | public void MemoryFileUploadEquals() 13 | { 14 | var f1 = new MemoryFileUpload("m1", "m1", "application/json", null, null, 100); 15 | Assert.Equal(f1, f1); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Buffers/IPoolChunkMetric.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers 5 | { 6 | public interface IPoolChunkMetric 7 | { 8 | /// Return the percentage of the current usage of the chunk. 9 | int Usage { get; } 10 | 11 | /// Return the size of the chunk in bytes, this is the maximum of bytes that can be served out of the chunk. 12 | int ChunkSize { get; } 13 | 14 | /// Return the number of free bytes in the chunk. 15 | int FreeBytes { get; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/HttpExpectationFailedEvent.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http 5 | { 6 | // A user event designed to communicate that a expectation has failed and there should be no expectation that a 7 | // body will follow. 8 | public sealed class HttpExpectationFailedEvent 9 | { 10 | public static readonly HttpExpectationFailedEvent Default = new HttpExpectationFailedEvent(); 11 | 12 | HttpExpectationFailedEvent() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IMessageSizeEstimatorHandle.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | public interface IMessageSizeEstimatorHandle 7 | { 8 | /// 9 | /// Calculates the size of the given message. 10 | /// 11 | /// The message for which the size should be calculated. 12 | /// The size in bytes. The returned size must be >= 0 13 | int Size(object msg); 14 | } 15 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [Oo]bj/ 2 | [Bb]in/ 3 | TestResults/ 4 | PerfResults/ 5 | .nuget/ 6 | .fake/ 7 | _ReSharper.*/ 8 | .idea/ 9 | *.sln.iml 10 | packages/ 11 | artifacts/ 12 | PublishProfiles/ 13 | *.user 14 | *.suo 15 | *.cache 16 | *.docstates 17 | _ReSharper.* 18 | nuget.exe 19 | *net45.csproj 20 | *net451.csproj 21 | *k10.csproj 22 | *.psess 23 | *.vsp 24 | *.pidb 25 | *.userprefs 26 | *DS_Store 27 | *.ncrunchsolution 28 | *.*sdf 29 | *.ipch 30 | *.sln.ide 31 | *.lock.json 32 | *.db 33 | .vs/ 34 | [Tt]ools/Cake.* 35 | [Tt]ools/NBench.* 36 | [Tt]ools/NBench 37 | /build/ 38 | .dotnet/ 39 | DotNetty.*.nuget.targets 40 | *.exe 41 | /SamplesForUnity/Library 42 | /SamplesForUnity/Temp 43 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/UnsubAckPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class UnsubAckPacket : PacketWithId 7 | { 8 | public override PacketType PacketType => PacketType.UNSUBACK; 9 | 10 | public static UnsubAckPacket InResponseTo(UnsubscribePacket unsubscribePacket) 11 | { 12 | return new UnsubAckPacket 13 | { 14 | PacketId = unsubscribePacket.PacketId 15 | }; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /test/DotNetty.Codecs.ProtocolBuffers.Tests/AddressBook.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto2"; 2 | 3 | package Google.Protobuf.Examples.AddressBook; 4 | 5 | message Person { 6 | required string name = 1; 7 | required int32 id = 2; // Unique ID number for this person. 8 | optional string email = 3; 9 | enum PhoneType { 10 | MOBILE = 0; 11 | HOME = 1; 12 | WORK = 2; 13 | } 14 | message PhoneNumber { 15 | required string number = 1; 16 | optional PhoneType type = 2 [default = HOME]; 17 | } 18 | repeated PhoneNumber phone = 4; 19 | } 20 | // Our address book file is just one of these. 21 | message AddressBook { 22 | repeated Person person = 1; 23 | } -------------------------------------------------------------------------------- /src/DotNetty.Buffers/IPoolChunkListMetric.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers 5 | { 6 | using System.Collections.Generic; 7 | 8 | public interface IPoolChunkListMetric : IEnumerable 9 | { 10 | /// Return the minimum usage of the chunk list before which chunks are promoted to the previous list. 11 | int MinUsage { get; } 12 | 13 | /// Return the maximum usage of the chunk list after which chunks are promoted to the next list. 14 | int MaxUsage { get; } 15 | } 16 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/IResourceLeakHint.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common 5 | { 6 | /// 7 | /// A hint object that provides human-readable message for easier resource leak tracking. 8 | /// 9 | public interface IResourceLeakHint 10 | { 11 | /// 12 | /// Returns a human-readable message that potentially enables easier resource leak tracking. 13 | /// 14 | /// 15 | string ToHintString(); 16 | } 17 | } -------------------------------------------------------------------------------- /test/DotNetty.Tests.Common/TestBase.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Tests.Common 5 | { 6 | using DotNetty.Common.Internal.Logging; 7 | using Xunit.Abstractions; 8 | 9 | public abstract class TestBase 10 | { 11 | protected readonly ITestOutputHelper Output; 12 | 13 | protected TestBase(ITestOutputHelper output) 14 | { 15 | this.Output = output; 16 | InternalLoggerFactory.DefaultFactory.AddProvider(new XUnitOutputLoggerProvider(output)); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/AdvancedLeakAwareByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | using System; 7 | using DotNetty.Common; 8 | 9 | public class AdvancedLeakAwareByteBufferTests : SimpleLeakAwareByteBufferTests 10 | { 11 | protected override Type ByteBufferType => typeof(AdvancedLeakAwareByteBuffer); 12 | 13 | protected override IByteBuffer Wrap(IByteBuffer buffer, IResourceLeakTracker tracker) => new AdvancedLeakAwareByteBuffer(buffer, tracker); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/MultiPartStatus.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | enum MultiPartStatus 7 | { 8 | Notstarted, 9 | Preamble, 10 | HeaderDelimiter, 11 | Disposition, 12 | Field, 13 | Fileupload, 14 | MixedPreamble, 15 | MixedDelimiter, 16 | MixedDisposition, 17 | MixedFileUpload, 18 | MixedCloseDelimiter, 19 | CloseDelimiter, 20 | PreEpilogue, 21 | Epilogue 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/HeapByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | using Xunit; 7 | 8 | public class HeapByteBufferTests : AbstractByteBufferTests 9 | { 10 | protected override IByteBuffer NewBuffer(int length, int maxCapacity) 11 | { 12 | IByteBuffer buffer = new UnpooledHeapByteBuffer(UnpooledByteBufferAllocator.Default, length, maxCapacity); 13 | Assert.Equal(0, buffer.WriterIndex); 14 | return buffer; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/BitOps.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | using System.Runtime.CompilerServices; 7 | 8 | public static class BitOps 9 | { 10 | [MethodImpl(MethodImplOptions.AggressiveInlining)] 11 | public static int RightUShift(this int value, int bits) => unchecked((int)((uint)value >> bits)); 12 | 13 | [MethodImpl(MethodImplOptions.AggressiveInlining)] 14 | public static long RightUShift(this long value, int bits) => unchecked((long)((ulong)value >> bits)); 15 | } 16 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/ThreadExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | using System; 7 | using System.Diagnostics.Contracts; 8 | using System.Threading; 9 | 10 | public static class ThreadExtensions 11 | { 12 | public static bool Join(this Thread thread, TimeSpan timeout) 13 | { 14 | long tm = (long)timeout.TotalMilliseconds; 15 | Contract.Requires(tm >= 0 && tm <= int.MaxValue); 16 | 17 | return thread.Join((int)tm); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/IPromise.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | using System.Threading; 8 | using System.Threading.Tasks; 9 | 10 | public interface IPromise 11 | { 12 | ValueTask ValueTask { get; } 13 | 14 | bool TryComplete(); 15 | 16 | bool TrySetException(Exception exception); 17 | 18 | bool TrySetCanceled(CancellationToken cancellationToken = default(CancellationToken)); 19 | 20 | bool SetUncancellable(); 21 | } 22 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IEventLoop.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using DotNetty.Common.Concurrency; 7 | 8 | /// 9 | /// specialized to handle I/O operations of assigned s. 10 | /// 11 | public interface IEventLoop : IEventLoopGroup, IEventExecutor 12 | { 13 | /// 14 | /// Parent . 15 | /// 16 | new IEventLoopGroup Parent { get; } 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs/DecoderException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | public class DecoderException : CodecException 9 | { 10 | public DecoderException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public DecoderException(Exception cause) 16 | : base(null, cause) 17 | { 18 | } 19 | 20 | public DecoderException(string message, Exception cause) 21 | : base(message, cause) 22 | { 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PacketType.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public enum PacketType 7 | { 8 | // ReSharper disable InconsistentNaming 9 | CONNECT = 1, 10 | CONNACK = 2, 11 | PUBLISH = 3, 12 | PUBACK = 4, 13 | PUBREC = 5, 14 | PUBREL = 6, 15 | PUBCOMP = 7, 16 | SUBSCRIBE = 8, 17 | SUBACK = 9, 18 | UNSUBSCRIBE = 10, 19 | UNSUBACK = 11, 20 | PINGREQ = 12, 21 | PINGRESP = 13, 22 | DISCONNECT = 14 23 | } 24 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/DefaultLastBulkStringRedisContent.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | using DotNetty.Buffers; 7 | 8 | public sealed class DefaultLastBulkStringRedisContent : DefaultBulkStringRedisContent, ILastBulkStringRedisContent 9 | { 10 | public DefaultLastBulkStringRedisContent(IByteBuffer content) 11 | : base(content) 12 | { 13 | } 14 | 15 | public override IByteBufferHolder Replace(IByteBuffer buffer) => new DefaultLastBulkStringRedisContent(buffer); 16 | } 17 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/RunnableScheduledTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | sealed class RunnableScheduledTask : ScheduledTask 7 | { 8 | readonly IRunnable action; 9 | 10 | public RunnableScheduledTask(AbstractScheduledEventExecutor executor, IRunnable action, PreciseTimeSpan deadline) 11 | : base(executor, deadline, new TaskCompletionSource()) 12 | { 13 | this.action = action; 14 | } 15 | 16 | protected override void Execute() => this.action.Run(); 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Sockets/ISocketChannelConfiguration.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Sockets 5 | { 6 | public interface ISocketChannelConfiguration : IChannelConfiguration 7 | { 8 | bool AllowHalfClosure { get; set; } 9 | 10 | int ReceiveBufferSize { get; set; } 11 | 12 | int SendBufferSize { get; set; } 13 | 14 | int Linger { get; set; } 15 | 16 | bool KeepAlive { get; set; } 17 | 18 | bool ReuseAddress { get; set; } 19 | 20 | bool TcpNoDelay { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/AdvancedLeakAwareCompositeByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | using System; 7 | using DotNetty.Common; 8 | 9 | public class AdvancedLeakAwareCompositeByteBufferTests : SimpleLeakAwareCompositeByteBufferTests 10 | { 11 | protected override IByteBuffer Wrap(CompositeByteBuffer buffer, IResourceLeakTracker tracker) => new AdvancedLeakAwareCompositeByteBuffer(buffer, tracker); 12 | 13 | protected override Type ByteBufferType => typeof(AdvancedLeakAwareByteBuffer); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/RetainedSlicedByteBufferTests.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | using Xunit; 7 | 8 | public class RetainedSlicedByteBufferTests : SlicedByteBufferTest 9 | { 10 | protected override IByteBuffer NewSlice(IByteBuffer buffer, int offset, int length) 11 | { 12 | IByteBuffer slice = buffer.RetainedSlice(offset, length); 13 | buffer.Release(); 14 | Assert.Equal(buffer.ReferenceCount, slice.ReferenceCount); 15 | return slice; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/ActionScheduledTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | 8 | sealed class ActionScheduledTask : ScheduledTask 9 | { 10 | readonly Action action; 11 | 12 | public ActionScheduledTask(AbstractScheduledEventExecutor executor, Action action, PreciseTimeSpan deadline) 13 | : base(executor, deadline, new TaskCompletionSource()) 14 | { 15 | this.action = action; 16 | } 17 | 18 | protected override void Execute() => this.action(); 19 | } 20 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/CompatibleConcurrentQueue.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Internal 5 | { 6 | using System.Collections.Concurrent; 7 | 8 | public class CompatibleConcurrentQueue : ConcurrentQueue, IQueue 9 | { 10 | public bool TryEnqueue(T element) 11 | { 12 | this.Enqueue(element); 13 | return true; 14 | } 15 | 16 | void IQueue.Clear() 17 | { 18 | T item; 19 | while (this.TryDequeue(out item)) 20 | { 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Groups/IChannelGroupTaskCompletionSource.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Groups 5 | { 6 | using System.Collections.Generic; 7 | using System.Threading.Tasks; 8 | 9 | public interface IChannelGroupTaskCompletionSource : IEnumerator 10 | { 11 | IChannelGroup Group { get; } 12 | 13 | ChannelGroupException Cause { get; } 14 | 15 | Task Find(IChannel channel); 16 | 17 | bool IsPartialSucess(); 18 | 19 | bool IsSucess(); 20 | 21 | bool IsPartialFailure(); 22 | } 23 | } -------------------------------------------------------------------------------- /test/DotNetty.Tests.Common/Disposable.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Tests.Common 5 | { 6 | using System; 7 | using System.Threading; 8 | 9 | public sealed class Disposable : IDisposable 10 | { 11 | Action disposeAction; 12 | 13 | public Disposable(Action disposeAction) 14 | { 15 | this.disposeAction = disposeAction; 16 | } 17 | 18 | public void Dispose() 19 | { 20 | Action action = Interlocked.Exchange(ref this.disposeAction, null); 21 | action?.Invoke(); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Tls/TlsSettings.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Tls 5 | { 6 | using System.Security.Authentication; 7 | 8 | public abstract class TlsSettings 9 | { 10 | protected TlsSettings(SslProtocols enabledProtocols, bool checkCertificateRevocation) 11 | { 12 | this.EnabledProtocols = enabledProtocols; 13 | this.CheckCertificateRevocation = checkCertificateRevocation; 14 | } 15 | 16 | public SslProtocols EnabledProtocols { get; } 17 | 18 | public bool CheckCertificateRevocation { get; } 19 | } 20 | } -------------------------------------------------------------------------------- /examples/Discard.Server/DiscardServerHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace Discard.Server 5 | { 6 | using System; 7 | using DotNetty.Transport.Channels; 8 | 9 | public class DiscardServerHandler : SimpleChannelInboundHandler 10 | { 11 | protected override void ChannelRead0(IChannelHandlerContext context, object message) 12 | { 13 | } 14 | 15 | public override void ExceptionCaught(IChannelHandlerContext ctx, Exception e) 16 | { 17 | Console.WriteLine("{0}", e.ToString()); 18 | ctx.CloseAsync(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/PubRelPacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public sealed class PubRelPacket : PacketWithId 7 | { 8 | public override PacketType PacketType => PacketType.PUBREL; 9 | 10 | public override QualityOfService QualityOfService => QualityOfService.AtLeastOnce; 11 | 12 | public static PubRelPacket InResponseTo(PubRecPacket publishPacket) 13 | { 14 | return new PubRelPacket 15 | { 16 | PacketId = publishPacket.PacketId 17 | }; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs/EncoderException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | public class EncoderException : CodecException 9 | { 10 | public EncoderException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public EncoderException(Exception innerException) 16 | : base(null, innerException) 17 | { 18 | } 19 | 20 | public EncoderException(string message, Exception innerException) 21 | : base(message, innerException) 22 | { 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/ExecutionEnvironment.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | 8 | public static class ExecutionEnvironment 9 | { 10 | [ThreadStatic] 11 | static IEventExecutor currentExecutor; 12 | 13 | public static bool TryGetCurrentExecutor(out IEventExecutor executor) 14 | { 15 | executor = currentExecutor; 16 | return executor != null; 17 | } 18 | 19 | internal static void SetCurrentExecutor(IEventExecutor executor) => currentExecutor = executor; 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/IConstant.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | /// 7 | /// A singleton which is safe to compare via the == operator. Created and managed by 8 | /// . 9 | /// 10 | public interface IConstant 11 | { 12 | /// Returns the unique number assigned to this . 13 | int Id { get; } 14 | 15 | /// Returns the name of this . 16 | string Name { get; } 17 | } 18 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/ITimerTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | /// 7 | /// A task which is executed after the delay specified with 8 | /// . 9 | /// 10 | public interface ITimerTask 11 | { 12 | /// 13 | /// Executed after the delay specified with 14 | /// . 15 | /// 16 | /// a handle which is associated with this task 17 | void Run(ITimeout timeout); 18 | } 19 | } -------------------------------------------------------------------------------- /SamplesForUnity/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /src/DotNetty.Buffers/IByteBufferAllocatorMetric.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers 5 | { 6 | public interface IByteBufferAllocatorMetric 7 | { 8 | /// 9 | /// Returns the number of bytes of heap memory used by a {@link ByteBufAllocator} or {@code -1} if unknown. 10 | /// 11 | long UsedHeapMemory { get; } 12 | 13 | /// 14 | /// Returns the number of bytes of direct memory used by a {@link ByteBufAllocator} or {@code -1} if unknown. 15 | /// 16 | long UsedDirectMemory { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Internal/EmptyArrays.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Internal 5 | { 6 | using DotNetty.Common.Utilities; 7 | 8 | public static class EmptyArrays 9 | { 10 | public static readonly int[] EmptyInts = { }; 11 | 12 | public static readonly byte[] EmptyBytes = { }; 13 | 14 | public static readonly char[] EmptyChars = { }; 15 | 16 | public static readonly object[] EmptyObjects = { }; 17 | 18 | public static readonly string[] EmptyStrings = { }; 19 | 20 | public static readonly AsciiString[] EmptyAsciiStrings = { }; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/IInterfaceHttpData.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | using System; 7 | using DotNetty.Common; 8 | 9 | public enum HttpDataType 10 | { 11 | Attribute, 12 | FileUpload, 13 | InternalAttribute 14 | } 15 | 16 | // Interface for all Objects that could be encoded/decoded using HttpPostRequestEncoder/Decoder 17 | public interface IInterfaceHttpData : IComparable, IReferenceCounted 18 | { 19 | string Name { get; } 20 | 21 | HttpDataType DataType { get; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/RedisCodecException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis 5 | { 6 | using System; 7 | 8 | public sealed class RedisCodecException : CodecException 9 | { 10 | public RedisCodecException(string message) 11 | : this(message, null) 12 | { 13 | } 14 | 15 | public RedisCodecException(Exception exception) 16 | : this(null, exception) 17 | { 18 | } 19 | 20 | public RedisCodecException(string message, Exception exception) 21 | : base(message, exception) 22 | { 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs/Compression/ZlibEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Compression 5 | { 6 | using System.Threading.Tasks; 7 | using DotNetty.Buffers; 8 | 9 | public abstract class ZlibEncoder : MessageToByteEncoder 10 | { 11 | public abstract bool IsClosed { get; } 12 | 13 | /** 14 | * Close this {@link ZlibEncoder} and so finish the encoding. 15 | * 16 | * The returned {@link ChannelFuture} will be notified once the 17 | * operation completes. 18 | */ 19 | public abstract Task CloseAsync(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Transport/SocketPumpPerfSpecs.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Transport 5 | { 6 | using DotNetty.Transport.Channels; 7 | using DotNetty.Transport.Channels.Sockets; 8 | 9 | public sealed class SocketPumpPerfSpecs : AbstractPumpPerfSpecs 10 | { 11 | protected override IEventLoopGroup NewServerGroup() => new MultithreadEventLoopGroup(1); 12 | 13 | protected override IEventLoopGroup NewWorkerGroup(IEventLoopGroup serverGroup) => new MultithreadEventLoopGroup(1); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/DotNetty.Buffers/IPoolSubpageMetric.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers 5 | { 6 | public interface IPoolSubpageMetric 7 | { 8 | /// Return the number of maximal elements that can be allocated out of the sub-page. 9 | int MaxNumElements { get; } 10 | 11 | /// Return the number of available elements to be allocated. 12 | int NumAvailable { get; } 13 | 14 | /// Return the size (in bytes) of the elements that will be allocated. 15 | int ElementSize { get; } 16 | 17 | /// Return the size (in bytes) of this page. 18 | int PageSize { get; } 19 | } 20 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Transport/LibuvPumpPerfSpecs.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Transport 5 | { 6 | using DotNetty.Transport.Channels; 7 | using DotNetty.Transport.Libuv; 8 | 9 | public sealed class LibuvPumpPerfSpecs : AbstractPumpPerfSpecs 10 | { 11 | protected override IEventLoopGroup NewServerGroup() => new DispatcherEventLoopGroup(); 12 | 13 | protected override IEventLoopGroup NewWorkerGroup(IEventLoopGroup serverGroup) => new WorkerEventLoopGroup((DispatcherEventLoopGroup)serverGroup, 1); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/DotNetty.Tests.End2End/EchoChannelHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Tests.End2End 5 | { 6 | using System; 7 | using DotNetty.Transport.Channels; 8 | 9 | class EchoChannelHandler : ChannelHandlerAdapter 10 | { 11 | public override void ChannelRead(IChannelHandlerContext context, object message) => context.Channel.WriteAsync(message); 12 | 13 | public override void ChannelReadComplete(IChannelHandlerContext context) => context.Channel.Flush(); 14 | 15 | public override void ExceptionCaught(IChannelHandlerContext context, Exception exception) 16 | { 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Utilities/TaskCompletionSourceFinishedSignal.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Utilities 5 | { 6 | using DotNetty.Common.Concurrency; 7 | 8 | public class TaskCompletionSourceFinishedSignal : IReadFinishedSignal 9 | { 10 | readonly TaskCompletionSource tcs; 11 | 12 | public TaskCompletionSourceFinishedSignal(TaskCompletionSource tcs) 13 | { 14 | this.tcs = tcs; 15 | } 16 | 17 | public void Signal() => this.tcs.TryComplete(); 18 | 19 | public bool Finished => this.tcs.Task.IsCompleted; 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs/TooLongFrameException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | /// 9 | /// A which is thrown when the length of the frame 10 | /// decoded is greater than the allowed maximum. 11 | /// 12 | public class TooLongFrameException : DecoderException 13 | { 14 | public TooLongFrameException(string message) 15 | : base(message) 16 | { 17 | } 18 | 19 | public TooLongFrameException(Exception cause) 20 | : base(cause) 21 | { 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Http.Tests/WebSockets/WebSocketClientHandshaker00Test.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Tests.WebSockets 5 | { 6 | using System; 7 | using DotNetty.Codecs.Http.WebSockets; 8 | using DotNetty.Common.Utilities; 9 | 10 | public class WebSocketClientHandshaker00Test : WebSocketClientHandshakerTest 11 | { 12 | protected override WebSocketClientHandshaker NewHandshaker(Uri uri) => 13 | new WebSocketClientHandshaker00(uri, WebSocketVersion.V00, null, null, 1024); 14 | 15 | protected override AsciiString GetOriginHeaderName() => HttpHeaderNames.Origin; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /test/DotNetty.Codecs.Http.Tests/WebSockets/WebSocketClientHandshaker07Test.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Tests.WebSockets 5 | { 6 | using System; 7 | using DotNetty.Codecs.Http.WebSockets; 8 | using DotNetty.Common.Utilities; 9 | 10 | public class WebSocketClientHandshaker07Test : WebSocketClientHandshakerTest 11 | { 12 | protected override WebSocketClientHandshaker NewHandshaker(Uri uri) => new WebSocketClientHandshaker07(uri, WebSocketVersion.V07, null, false, null, 1024); 13 | 14 | protected override AsciiString GetOriginHeaderName() => HttpHeaderNames.SecWebsocketOrigin; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/FileUploadUtil.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | using System; 7 | 8 | static class FileUploadUtil 9 | { 10 | public static int HashCode(IFileUpload upload) => upload.Name.GetHashCode(); 11 | 12 | public static bool Equals(IFileUpload upload1, IFileUpload upload2) => 13 | upload1.Name.Equals(upload2.Name, StringComparison.OrdinalIgnoreCase); 14 | 15 | public static int CompareTo(IFileUpload upload1, IFileUpload upload2) => 16 | string.Compare(upload1.Name, upload2.Name, StringComparison.OrdinalIgnoreCase); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/CorruptedFrameException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | /// 9 | /// A which is thrown when the received frame data could not 10 | /// be decoded by an inbound handler. 11 | /// 12 | public class CorruptedFrameException : DecoderException 13 | { 14 | public CorruptedFrameException(string message) 15 | : base(message) 16 | { 17 | } 18 | 19 | public CorruptedFrameException(Exception cause) 20 | : base(cause) 21 | { 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/IHashingStrategy.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | using System.Collections.Generic; 7 | 8 | public interface IHashingStrategy : IEqualityComparer 9 | { 10 | int HashCode(T obj); 11 | } 12 | 13 | public sealed class DefaultHashingStrategy : IHashingStrategy 14 | { 15 | public int GetHashCode(T obj) => obj.GetHashCode(); 16 | 17 | public int HashCode(T obj) => obj != null ? this.GetHashCode(obj) : 0; 18 | 19 | public bool Equals(T a, T b) => ReferenceEquals(a, b) || (!ReferenceEquals(a, null) && a.Equals(b)); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/StateActionScheduledTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | 8 | sealed class StateActionScheduledTask : ScheduledTask 9 | { 10 | readonly Action action; 11 | 12 | public StateActionScheduledTask(AbstractScheduledEventExecutor executor, Action action, object state, PreciseTimeSpan deadline) 13 | : base(executor, deadline, new TaskCompletionSource(state)) 14 | { 15 | this.action = action; 16 | } 17 | 18 | protected override void Execute() => this.action(this.Completion.AsyncState); 19 | } 20 | } -------------------------------------------------------------------------------- /examples/SecureChat.Client/SecureChatClientHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace SecureChat.Client 5 | { 6 | using System; 7 | using DotNetty.Transport.Channels; 8 | 9 | public class SecureChatClientHandler : SimpleChannelInboundHandler 10 | { 11 | protected override void ChannelRead0(IChannelHandlerContext contex, string msg) => Console.WriteLine(msg); 12 | 13 | public override void ExceptionCaught(IChannelHandlerContext contex, Exception e) 14 | { 15 | Console.WriteLine(DateTime.Now.Millisecond); 16 | Console.WriteLine(e.StackTrace); 17 | contex.CloseAsync(); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/ErrorDataEncoderException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | using System; 7 | 8 | public class ErrorDataEncoderException : Exception 9 | { 10 | public ErrorDataEncoderException(string message) 11 | : base(message) 12 | { 13 | } 14 | public ErrorDataEncoderException(Exception innerException) 15 | : base(null, innerException) 16 | { 17 | } 18 | 19 | public ErrorDataEncoderException(string message, Exception innerException) 20 | : base(message, innerException) 21 | { 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs/PrematureChannelClosureException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | public class PrematureChannelClosureException : CodecException 9 | { 10 | public PrematureChannelClosureException(string message) 11 | : this(message, null) 12 | { 13 | } 14 | 15 | public PrematureChannelClosureException(Exception exception) 16 | : this(null, exception) 17 | { 18 | } 19 | 20 | public PrematureChannelClosureException(string message, Exception exception) 21 | : base(message, exception) 22 | { 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Multipart/ErrorDataDecoderException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Multipart 5 | { 6 | using System; 7 | 8 | public class ErrorDataDecoderException : DecoderException 9 | { 10 | public ErrorDataDecoderException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | public ErrorDataDecoderException(Exception innerException) 16 | : base(innerException) 17 | { 18 | } 19 | 20 | public ErrorDataDecoderException(string message, Exception innerException) 21 | : base(message, innerException) 22 | { 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/WebSocketHandshakeException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets 5 | { 6 | using System; 7 | 8 | public class WebSocketHandshakeException : Exception 9 | { 10 | public WebSocketHandshakeException(string message, Exception innereException) 11 | : base(message, innereException) 12 | { 13 | } 14 | 15 | public WebSocketHandshakeException(string message) 16 | : base(message) 17 | { 18 | } 19 | 20 | public WebSocketHandshakeException(Exception innerException) 21 | : base(null, innerException) 22 | { 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/Packet.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | public abstract class Packet 7 | { 8 | public abstract PacketType PacketType { get; } 9 | 10 | public virtual bool Duplicate => false; 11 | 12 | public virtual QualityOfService QualityOfService => QualityOfService.AtMostOnce; 13 | 14 | public virtual bool RetainRequested => false; 15 | 16 | public override string ToString() 17 | { 18 | return $"{this.GetType().Name}[Type={this.PacketType}, QualityOfService={this.QualityOfService}, Duplicate={this.Duplicate}, Retain={this.RetainRequested}]"; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/ActionScheduledAsyncTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | using System.Threading; 8 | 9 | sealed class ActionScheduledAsyncTask : ScheduledAsyncTask 10 | { 11 | readonly Action action; 12 | 13 | public ActionScheduledAsyncTask(AbstractScheduledEventExecutor executor, Action action, PreciseTimeSpan deadline, CancellationToken cancellationToken) 14 | : base(executor, deadline, new TaskCompletionSource(), cancellationToken) 15 | { 16 | this.action = action; 17 | } 18 | 19 | protected override void Execute() => this.action(); 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/ChannelException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System; 7 | 8 | public class ChannelException : Exception 9 | { 10 | public ChannelException() 11 | { 12 | } 13 | 14 | public ChannelException(string message) 15 | : base(message) 16 | { 17 | } 18 | 19 | public ChannelException(string message, Exception innerException) 20 | : base(message, innerException) 21 | { 22 | } 23 | 24 | public ChannelException(Exception innerException) 25 | : base(null, innerException) 26 | { 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /test/DotNetty.Handlers.Tests/AsIsWriteStrategy.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Tests 5 | { 6 | using System; 7 | using System.Threading.Tasks; 8 | using DotNetty.Buffers; 9 | using DotNetty.Common.Utilities; 10 | using DotNetty.Transport.Channels.Embedded; 11 | 12 | class AsIsWriteStrategy : IWriteStrategy 13 | { 14 | public Task WriteToChannelAsync(IEmbeddedChannel channel, ArraySegment input) 15 | { 16 | channel.WriteInbound(Unpooled.WrappedBuffer(input.Array, input.Offset, input.Count)); 17 | return TaskEx.Completed; 18 | } 19 | 20 | public override string ToString() => "as-is"; 21 | } 22 | } -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Buffers.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ec820f421ab70614f92d92ce8266e58b 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 1 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 0 29 | settings: 30 | CPU: AnyCPU 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Codecs.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fc98c66abee8d2489b521b5379ef98d 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 1 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 0 29 | settings: 30 | CPU: AnyCPU 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Common.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a268e2cd81ae1240a54deedb4231b26 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 1 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 0 29 | settings: 30 | CPU: AnyCPU 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Handlers.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0061affda6d09a429fd2674e5c26df4 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 1 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 0 29 | settings: 30 | CPU: AnyCPU 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Transport.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cba5dfccbc5e7c45bf31c4e226fc3aa 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 1 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 0 29 | settings: 30 | CPU: AnyCPU 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/DotNetty.Unity.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4db51436488319e45a2ca4dabf4edc99 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 1 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 0 29 | settings: 30 | CPU: AnyCPU 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /examples/Telnet.Client/TelnetClientHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace Telnet.Client 5 | { 6 | using System; 7 | using DotNetty.Transport.Channels; 8 | 9 | public class TelnetClientHandler : SimpleChannelInboundHandler 10 | { 11 | protected override void ChannelRead0(IChannelHandlerContext contex, string msg) 12 | { 13 | Console.WriteLine(msg); 14 | } 15 | 16 | public override void ExceptionCaught(IChannelHandlerContext contex, Exception e) 17 | { 18 | Console.WriteLine(DateTime.Now.Millisecond); 19 | Console.WriteLine("{0}", e.StackTrace); 20 | contex.CloseAsync(); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/BulkStringHeaderRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | public class BulkStringHeaderRedisMessage : IRedisMessage 7 | { 8 | public BulkStringHeaderRedisMessage(int bulkStringLength) 9 | { 10 | if (bulkStringLength <= 0) 11 | { 12 | throw new RedisCodecException($"bulkStringLength: {bulkStringLength} (expected: > 0)"); 13 | } 14 | this.BulkStringLength = bulkStringLength; 15 | } 16 | 17 | public int BulkStringLength { get; } 18 | 19 | public bool IsNull => this.BulkStringLength == RedisConstants.NullValue; 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IRecvByteBufAllocator.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | /// 7 | /// Allocates a new receive buffer whose capacity is probably large enough to read all inbound data and small enough 8 | /// not to waste its space. 9 | /// 10 | public interface IRecvByteBufAllocator 11 | { 12 | /// 13 | /// Creates a new handle. The handle provides the actual operations and keeps the internal information which is 14 | /// required for predicting an optimal buffer capacity. 15 | /// 16 | IRecvByteBufAllocatorHandle NewHandle(); 17 | } 18 | } -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/UnsafeDirectByteBufferTest.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | using Xunit; 7 | 8 | public class UnsafeDirectByteBufferTest : AbstractByteBufferTests 9 | { 10 | protected override IByteBuffer NewBuffer(int length, int maxCapacity) 11 | { 12 | IByteBuffer buffer = this.NewDirectBuffer(length, maxCapacity); 13 | Assert.Equal(0, buffer.WriterIndex); 14 | return buffer; 15 | } 16 | 17 | protected IByteBuffer NewDirectBuffer(int length, int maxCapacity) => 18 | new UnpooledUnsafeDirectByteBuffer(UnpooledByteBufferAllocator.Default, length, maxCapacity); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish To NPMJS 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | publish: 8 | runs-on: ubuntu-latest 9 | name: 'publish npm' 10 | environment: npm 11 | steps: 12 | - uses: actions/checkout@v2 13 | 14 | - name: Set up Node.js 15 | uses: actions/setup-node@master 16 | with: 17 | node-version: 12.13.0 18 | registry-url: https://registry.npmjs.org/ 19 | 20 | - name: Publish DotNetty for Unity 21 | run: | 22 | cd $GITHUB_WORKSPACE/SamplesForUnity/Assets/DotNetty/ 23 | /bin/cp -f $GITHUB_WORKSPACE/README.md ./ 24 | npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN 25 | npm publish 26 | env: 27 | CI: true 28 | NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} 29 | -------------------------------------------------------------------------------- /test/DotNetty.Buffers.Tests/NoopResourceLeakTracker.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Buffers.Tests 5 | { 6 | using System.Threading; 7 | using DotNetty.Common; 8 | 9 | sealed class NoopResourceLeakTracker : IResourceLeakTracker 10 | { 11 | long value; 12 | 13 | public bool Closed => this.value == 1; 14 | 15 | public void Record() 16 | { 17 | // NOOP 18 | } 19 | 20 | public void Record(object hint) 21 | { 22 | // NOOP 23 | } 24 | 25 | public bool Close(object trackedObject) 26 | { 27 | return Interlocked.CompareExchange(ref this.value, 1, 0) == 0; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SamplesForUnity/Assets/DotNetty/Runtime/System.Runtime.CompilerServices.Unsafe.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b39c08ffc7e2004495f915f82d909ef 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 1 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 0 29 | settings: 30 | CPU: AnyCPU 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Utilities/ManualResetEventSlimReadFinishedSignal.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Utilities 5 | { 6 | using System.Threading; 7 | 8 | public class ManualResetEventSlimReadFinishedSignal : IReadFinishedSignal 9 | { 10 | readonly ManualResetEventSlim manualResetEventSlim; 11 | 12 | public ManualResetEventSlimReadFinishedSignal(ManualResetEventSlim manualResetEventSlim) 13 | { 14 | this.manualResetEventSlim = manualResetEventSlim; 15 | } 16 | 17 | public void Signal() => this.manualResetEventSlim.Set(); 18 | 19 | public bool Finished => this.manualResetEventSlim.IsSet; 20 | } 21 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/WebSocket07FrameDecoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets 5 | { 6 | public class WebSocket07FrameDecoder : WebSocket08FrameDecoder 7 | { 8 | public WebSocket07FrameDecoder(bool expectMaskedFrames, bool allowExtensions, int maxFramePayloadLength) 9 | : this(expectMaskedFrames, allowExtensions, maxFramePayloadLength, false) 10 | { 11 | } 12 | 13 | public WebSocket07FrameDecoder(bool expectMaskedFrames, bool allowExtensions, int maxFramePayloadLength, bool allowMaskMismatch) 14 | : base(expectMaskedFrames, allowExtensions, maxFramePayloadLength, allowMaskMismatch) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DotNetty.Common/Utilities/ReferenceEqualityComparer.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Utilities 5 | { 6 | using System.Collections; 7 | using System.Collections.Generic; 8 | using System.Runtime.CompilerServices; 9 | 10 | public sealed class ReferenceEqualityComparer 11 | : IEqualityComparer, IEqualityComparer 12 | { 13 | public static readonly ReferenceEqualityComparer Default = new ReferenceEqualityComparer(); 14 | 15 | ReferenceEqualityComparer() 16 | { 17 | } 18 | 19 | public new bool Equals(object x, object y) => ReferenceEquals(x, y); 20 | 21 | public int GetHashCode(object obj) => RuntimeHelpers.GetHashCode(obj); 22 | } 23 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Transport/LibuvPingPongPerfSpecs.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Transport 5 | { 6 | using DotNetty.Transport.Channels; 7 | using DotNetty.Transport.Libuv; 8 | 9 | public sealed class LibuvPingPongPerfSpecs : AbstractPingPongPerfSpecs 10 | { 11 | protected override IEventLoopGroup NewServerGroup() => new DispatcherEventLoopGroup(); 12 | 13 | protected override IEventLoopGroup NewWorkerGroup(IEventLoopGroup serverGroup) => new WorkerEventLoopGroup((DispatcherEventLoopGroup)serverGroup, 1); 14 | 15 | protected override IEventLoopGroup NewClientGroup() => new EventLoopGroup(1); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Redis/Messages/IntegerRedisMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Redis.Messages 5 | { 6 | using System.Text; 7 | using DotNetty.Common.Utilities; 8 | 9 | public sealed class IntegerRedisMessage : IRedisMessage 10 | { 11 | public IntegerRedisMessage(long value) 12 | { 13 | this.Value = value; 14 | } 15 | 16 | public long Value { get; } 17 | 18 | public override string ToString() => 19 | new StringBuilder(StringUtil.SimpleClassName(this)) 20 | .Append('[') 21 | .Append("value=") 22 | .Append(this.Value) 23 | .Append(']') 24 | .ToString(); 25 | } 26 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Transport/SocketPingPongPerfSpecs.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Transport 5 | { 6 | using DotNetty.Transport.Channels; 7 | using DotNetty.Transport.Channels.Sockets; 8 | 9 | public sealed class SocketPingPongPerfSpecs : AbstractPingPongPerfSpecs 10 | { 11 | protected override IEventLoopGroup NewServerGroup() => new MultithreadEventLoopGroup(1); 12 | 13 | protected override IEventLoopGroup NewWorkerGroup(IEventLoopGroup serverGroup) => new MultithreadEventLoopGroup(1); 14 | 15 | protected override IEventLoopGroup NewClientGroup() => new MultithreadEventLoopGroup(1); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/Factorial/Factorial.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0;net472;net5.0;net6.0 4 | 2.0.3 5 | false 6 | Debug;Release;Package 7 | AnyCPU 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/IWebSocketExtension.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions 5 | { 6 | public interface IWebSocketExtension 7 | { 8 | /// 9 | /// The reserved bit value to ensure that no other extension should interfere. 10 | /// 11 | int Rsv { get; } 12 | 13 | WebSocketExtensionEncoder NewExtensionEncoder(); 14 | 15 | WebSocketExtensionDecoder NewExtensionDecoder(); 16 | } 17 | 18 | public static class WebSocketRsv 19 | { 20 | public static readonly int Rsv1 = 0x04; 21 | public static readonly int Rsv2 = 0x02; 22 | public static readonly int Rsv3 = 0x01; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/WebSocket13FrameDecoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets 5 | { 6 | public class WebSocket13FrameDecoder : WebSocket08FrameDecoder 7 | { 8 | public WebSocket13FrameDecoder(bool expectMaskedFrames, bool allowExtensions, int maxFramePayloadLength) 9 | : this(expectMaskedFrames, allowExtensions, maxFramePayloadLength, false) 10 | { 11 | } 12 | 13 | public WebSocket13FrameDecoder(bool expectMaskedFrames, bool allowExtensions,int maxFramePayloadLength, 14 | bool allowMaskMismatch) 15 | : base(expectMaskedFrames, allowExtensions, maxFramePayloadLength, allowMaskMismatch) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/DotNetty.Tests.Common/ChannelExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Tests.Common 5 | { 6 | using System.Collections.Generic; 7 | using System.Threading.Tasks; 8 | using DotNetty.Transport.Channels; 9 | 10 | public static class ChannelExtensions 11 | { 12 | public static Task WriteAndFlushManyAsync(this IChannel channel, params object[] messages) 13 | { 14 | var list = new List(); 15 | foreach (object m in messages) 16 | { 17 | list.Add(channel.WriteAsync(m)); 18 | } 19 | IEnumerable tasks = list.ToArray(); 20 | channel.Flush(); 21 | return Task.WhenAll(tasks); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/DefaultChannelHandlerContext.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | using System.Diagnostics.Contracts; 7 | using DotNetty.Common.Concurrency; 8 | 9 | sealed class DefaultChannelHandlerContext : AbstractChannelHandlerContext 10 | { 11 | public DefaultChannelHandlerContext( 12 | DefaultChannelPipeline pipeline, IEventExecutor executor, string name, IChannelHandler handler) 13 | : base(pipeline, executor, name, GetSkipPropagationFlags(handler)) 14 | { 15 | Contract.Requires(handler != null); 16 | 17 | this.Handler = handler; 18 | } 19 | 20 | public override IChannelHandler Handler { get; } 21 | } 22 | } -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Timeout/IdleState.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Timeout 5 | { 6 | using System; 7 | 8 | /// 9 | /// An that represents the idle state of a . 10 | /// 11 | public enum IdleState 12 | { 13 | /// 14 | /// No data was received for a while. 15 | /// 16 | ReaderIdle, 17 | 18 | /// 19 | /// No data was sent for a while. 20 | /// 21 | WriterIdle, 22 | 23 | /// 24 | /// No data was either received or sent for a while. 25 | /// 26 | AllIdle 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /test/DotNetty.Tests.End2End/ExceptionCatchHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Tests.End2End 5 | { 6 | using System; 7 | using System.Diagnostics.Contracts; 8 | using DotNetty.Transport.Channels; 9 | 10 | class ExceptionCatchHandler : ChannelHandlerAdapter 11 | { 12 | readonly Action exceptionCaughtAction; 13 | 14 | public ExceptionCatchHandler(Action exceptionCaughtAction) 15 | { 16 | Contract.Requires(exceptionCaughtAction != null); 17 | this.exceptionCaughtAction = exceptionCaughtAction; 18 | } 19 | 20 | public override void ExceptionCaught(IChannelHandlerContext context, Exception exception) => this.exceptionCaughtAction(exception); 21 | } 22 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/WebSocketClientCompressionHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.WebSockets.Extensions.Compression 5 | { 6 | public sealed class WebSocketClientCompressionHandler : WebSocketClientExtensionHandler 7 | { 8 | public static readonly WebSocketClientCompressionHandler Instance = new WebSocketClientCompressionHandler(); 9 | 10 | public override bool IsSharable => true; 11 | 12 | WebSocketClientCompressionHandler() 13 | : base(new PerMessageDeflateClientExtensionHandshaker(), 14 | new DeflateFrameClientExtensionHandshaker(false), 15 | new DeflateFrameClientExtensionHandshaker(true)) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/UnsubscribePacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | using System.Collections.Generic; 7 | 8 | public sealed class UnsubscribePacket : PacketWithId 9 | { 10 | public UnsubscribePacket() 11 | { 12 | } 13 | 14 | public UnsubscribePacket(int packetId, params string[] topicFilters) 15 | { 16 | this.PacketId = packetId; 17 | this.TopicFilters = topicFilters; 18 | } 19 | 20 | public override PacketType PacketType => PacketType.UNSUBSCRIBE; 21 | 22 | public override QualityOfService QualityOfService => QualityOfService.AtLeastOnce; 23 | 24 | public IEnumerable TopicFilters { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/Sockets/IDatagramChannelConfig.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels.Sockets 5 | { 6 | using System.Net; 7 | using System.Net.NetworkInformation; 8 | 9 | public interface IDatagramChannelConfig : IChannelConfiguration 10 | { 11 | int SendBufferSize { get; set; } 12 | 13 | int ReceiveBufferSize { get; set; } 14 | 15 | int TrafficClass { get; set; } 16 | 17 | bool ReuseAddress { get; set; } 18 | 19 | bool Broadcast { get; set; } 20 | 21 | bool LoopbackModeDisabled { get; set; } 22 | 23 | short TimeToLive { get; set; } 24 | 25 | EndPoint Interface { get; set; } 26 | 27 | NetworkInterface NetworkInterface { get; set; } 28 | } 29 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Tests.Performance/Utilities/CounterHandlerInbound.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Tests.Performance.Utilities 5 | { 6 | using DotNetty.Transport.Channels; 7 | using NBench; 8 | 9 | class CounterHandlerInbound : ChannelHandlerAdapter 10 | { 11 | readonly Counter throughput; 12 | 13 | public CounterHandlerInbound(Counter throughput) 14 | { 15 | this.throughput = throughput; 16 | } 17 | 18 | public override void ChannelRead(IChannelHandlerContext context, object message) 19 | { 20 | this.throughput.Increment(); 21 | context.FireChannelRead(message); 22 | } 23 | 24 | public override bool IsSharable => true; 25 | } 26 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Http/Cookies/CookieHeaderNames.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Http.Cookies 5 | { 6 | using DotNetty.Common.Utilities; 7 | 8 | public static class CookieHeaderNames 9 | { 10 | public static readonly AsciiString Path = AsciiString.Cached("Path"); 11 | 12 | public static readonly AsciiString Expires = AsciiString.Cached("Expires"); 13 | 14 | public static readonly AsciiString MaxAge = AsciiString.Cached("Max-Age"); 15 | 16 | public static readonly AsciiString Domain = AsciiString.Cached("Domain"); 17 | 18 | public static readonly AsciiString Secure = AsciiString.Cached("Secure"); 19 | 20 | public static readonly AsciiString HttpOnly = AsciiString.Cached("HTTPOnly"); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/DotNetty.Codecs.Mqtt/Packets/SubscribePacket.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs.Mqtt.Packets 5 | { 6 | using System.Collections.Generic; 7 | 8 | public sealed class SubscribePacket : PacketWithId 9 | { 10 | public SubscribePacket() 11 | { 12 | } 13 | 14 | public SubscribePacket(int packetId, params SubscriptionRequest[] requests) 15 | { 16 | this.PacketId = packetId; 17 | this.Requests = requests; 18 | } 19 | 20 | public override PacketType PacketType => PacketType.SUBSCRIBE; 21 | 22 | public override QualityOfService QualityOfService => QualityOfService.AtLeastOnce; 23 | 24 | public IReadOnlyList Requests { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /src/DotNetty.Codecs/CodecException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Codecs 5 | { 6 | using System; 7 | 8 | /// 9 | /// An which is thrown by a codec. 10 | /// 11 | public class CodecException : Exception 12 | { 13 | public CodecException() 14 | { 15 | } 16 | 17 | public CodecException(string message, Exception innereException) 18 | : base(message, innereException) 19 | { 20 | } 21 | 22 | public CodecException(string message) 23 | : base(message) 24 | { 25 | } 26 | 27 | public CodecException(Exception innerException) 28 | : base(null, innerException) 29 | { 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /src/DotNetty.Common/Concurrency/StateActionScheduledAsyncTask.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Common.Concurrency 5 | { 6 | using System; 7 | using System.Threading; 8 | 9 | sealed class StateActionScheduledAsyncTask : ScheduledAsyncTask 10 | { 11 | readonly Action action; 12 | 13 | public StateActionScheduledAsyncTask(AbstractScheduledEventExecutor executor, Action action, object state, PreciseTimeSpan deadline, 14 | CancellationToken cancellationToken) 15 | : base(executor, deadline, new TaskCompletionSource(state), cancellationToken) 16 | { 17 | this.action = action; 18 | } 19 | 20 | protected override void Execute() => this.action(this.Completion.AsyncState); 21 | } 22 | } -------------------------------------------------------------------------------- /test/DotNetty.Transport.Libuv.Tests/TestUtil.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Libuv.Tests 5 | { 6 | using System; 7 | using System.Net; 8 | 9 | static class TestUtil 10 | { 11 | // Unit test collection name, this is to avoid paralleled unit 12 | // testing starting bind/listen on loopback at the same time 13 | // on multiple threads (xunit default to the number of CPU cores) 14 | // causing channel initial operations to timeout. 15 | internal const string LibuvTransport = "Libuv Transport Tests"; 16 | 17 | internal static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(10); 18 | 19 | internal static readonly IPEndPoint LoopbackAnyPort = new IPEndPoint(IPAddress.IPv6Loopback, 0); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/Examples.Common/ServerSettings.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace Examples.Common 5 | { 6 | public static class ServerSettings 7 | { 8 | public static bool IsSsl 9 | { 10 | get 11 | { 12 | string ssl = ExampleHelper.Configuration["ssl"]; 13 | return !string.IsNullOrEmpty(ssl) && bool.Parse(ssl); 14 | } 15 | } 16 | 17 | public static int Port => int.Parse(ExampleHelper.Configuration["port"]); 18 | 19 | public static bool UseLibuv 20 | { 21 | get 22 | { 23 | string libuv = ExampleHelper.Configuration["libuv"]; 24 | return !string.IsNullOrEmpty(libuv) && bool.Parse(libuv); 25 | } 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/DotNetty.Handlers/Tls/ServerTlsSniSettings.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Handlers.Tls 5 | { 6 | using System; 7 | using System.Diagnostics.Contracts; 8 | using System.Threading.Tasks; 9 | 10 | public sealed class ServerTlsSniSettings 11 | { 12 | public ServerTlsSniSettings(Func> serverTlsSettingMap, string defaultServerHostName = null) 13 | { 14 | Contract.Requires(serverTlsSettingMap != null); 15 | this.ServerTlsSettingMap = serverTlsSettingMap; 16 | this.DefaultServerHostName = defaultServerHostName; 17 | } 18 | 19 | public Func> ServerTlsSettingMap { get; } 20 | 21 | public string DefaultServerHostName { get; } 22 | } 23 | } -------------------------------------------------------------------------------- /src/DotNetty.Transport/Channels/IMaxMessagesRecvByteBufAllocator.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 | 4 | namespace DotNetty.Transport.Channels 5 | { 6 | /// 7 | /// that limits the number of read operations that will be attempted when a read 8 | /// operation 9 | /// is attempted by the event loop. 10 | /// 11 | public interface IMaxMessagesRecvByteBufAllocator : IRecvByteBufAllocator 12 | { 13 | /// 14 | /// Gets or sets the maximum number of messages to read per read loop. 15 | /// If this value is greater than 1, an event loop might attempt to read multiple times to procure multiple messages. 16 | /// 17 | int MaxMessagesPerRead { get; set; } 18 | } 19 | } --------------------------------------------------------------------------------