88using System . Threading . Tasks ;
99using Nito . AsyncEx . Synchronous ;
1010using NetworkTables . Logging ;
11+ using System . Net . Sockets ;
1112
1213namespace NetworkTables
1314{
1415 internal class DispatcherBase : IDisposable
1516 {
16- public delegate NtTcpClient Connector ( ) ;
17+ public delegate TcpClient Connector ( ) ;
1718
1819 public const double MinimumUpdateTime = 0.01 ; //100ms
1920 public const double MaximumUpdateTime = 1.0 ; //1 second
@@ -38,7 +39,7 @@ internal class DispatcherBase : IDisposable
3839 private bool m_doReconnect = true ;
3940 private string m_identity = "" ;
4041
41- private IList < Connector > m_clientConnectors = new List < Connector > ( ) ;
42+ private Connector m_clientConnector ;
4243
4344 private DateTime m_lastFlush ;
4445
@@ -153,15 +154,10 @@ public void StartClient()
153154 }
154155
155156 public void SetConnector ( Connector connector )
156- {
157- SetConnector ( new List < Connector > ( ) { connector } ) ;
158- }
159-
160- public void SetConnector ( IList < Connector > connectors )
161157 {
162158 lock ( m_userMutex )
163159 {
164- m_clientConnectors = connectors ;
160+ m_clientConnector = connector ;
165161 }
166162 }
167163
@@ -191,7 +187,7 @@ public void Stop()
191187 //Wake up client thread with a reconnect
192188 lock ( m_userMutex )
193189 {
194- m_clientConnectors . Clear ( ) ;
190+ m_clientConnector = null ;
195191 }
196192 ClientReconnect ( ) ;
197193
@@ -360,7 +356,7 @@ private void ServerThreadMain()
360356 }
361357 if ( ! m_active ) return ;
362358
363- if ( stream . RemoteEndPoint is IPEndPoint ipEp )
359+ if ( stream . Client . RemoteEndPoint is IPEndPoint ipEp )
364360 {
365361 Debug ( Logger . Instance , $ "server: client connection from { ipEp . Address } port { ipEp . Port . ToString ( ) } ") ;
366362 }
@@ -397,7 +393,6 @@ private void ServerThreadMain()
397393
398394 private void ClientThreadMain ( )
399395 {
400- int i = 0 ;
401396 while ( m_active )
402397 {
403398 //Sleep between retries
@@ -407,16 +402,7 @@ private void ClientThreadMain()
407402
408403 lock ( m_userMutex )
409404 {
410- if ( m_clientConnectorOverride != null )
411- {
412- connect = m_clientConnectorOverride ;
413- }
414- else
415- {
416- if ( m_clientConnectors . Count == 0 ) continue ;
417- if ( i >= m_clientConnectors . Count ) i = 0 ;
418- connect = m_clientConnectors [ i ++ ] ;
419- }
405+ connect = m_clientConnectorOverride ?? m_clientConnector ;
420406 }
421407
422408 Debug ( Logger . Instance , "client trying to connect" ) ;
0 commit comments