]> git.deb.at Git - rhonda/impostor.hazel.git/commitdiff
Allow TL connection listener to override incoming message processing
authorMatthew Endsley <mendsley@gmail.com>
Thu, 17 Dec 2020 18:00:50 +0000 (10:00 -0800)
committerMatthew Endsley <mendsley@gmail.com>
Tue, 2 Feb 2021 16:53:34 +0000 (08:53 -0800)
Hazel/FewerThreads/ThreadLimitedUdpConnectionListener.cs

index 7eabfac77d9ea558889a3b7662217da5e2e01802..4ebff2e170a60620b47b3293edbae8307982686e 100644 (file)
@@ -171,11 +171,10 @@ namespace Hazel.Udp.FewerThreads
                         return;
                     }
 
-                    this.receiveQueue.Add(new ReceiveMessageInfo() { Message = message, Sender = remoteEP });
+                    this.ProcessIncomingMessageFromOtherThread(message, remoteEP);
                 }
             }
         }
-
         private void ProcessingLoop()
         {
             while (this.isActive)
@@ -192,6 +191,10 @@ namespace Hazel.Udp.FewerThreads
                 }
             }
         }
+        protected virtual void ProcessIncomingMessageFromOtherThread(MessageReader message, EndPoint peerAddress)
+        {
+            this.receiveQueue.Add(new ReceiveMessageInfo() { Message = message, Sender = peerAddress });
+        }
 
         private void SendLoop()
         {
@@ -286,7 +289,7 @@ namespace Hazel.Udp.FewerThreads
             QueueRawData(response, remoteEndPoint);
         }
 
-        protected void QueueRawData(ByteSpan span, EndPoint remoteEndPoint)
+        protected virtual void QueueRawData(ByteSpan span, EndPoint remoteEndPoint)
         {
             this.sendQueue.TryAdd(new SendMessageInfo() { Span = span, Recipient = remoteEndPoint });
         }