mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-04 03:05:07 +03:00 
			
		
		
		
	Use mutex in switch/tcp init
This commit is contained in:
		
							parent
							
								
									fa7c4117b4
								
							
						
					
					
						commit
						2925920c70
					
				
					 2 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
					@ -186,7 +186,9 @@ func (t *switchTable) init(core *Core) {
 | 
				
			||||||
	now := time.Now()
 | 
						now := time.Now()
 | 
				
			||||||
	t.core = core
 | 
						t.core = core
 | 
				
			||||||
	t.reconfigure = make(chan bool, 1)
 | 
						t.reconfigure = make(chan bool, 1)
 | 
				
			||||||
 | 
						t.core.configMutex.RLock()
 | 
				
			||||||
	t.key = t.core.sigPub
 | 
						t.key = t.core.sigPub
 | 
				
			||||||
 | 
						t.core.configMutex.RUnlock()
 | 
				
			||||||
	locator := switchLocator{root: t.key, tstamp: now.Unix()}
 | 
						locator := switchLocator{root: t.key, tstamp: now.Unix()}
 | 
				
			||||||
	peers := make(map[switchPort]peerInfo)
 | 
						peers := make(map[switchPort]peerInfo)
 | 
				
			||||||
	t.data = switchData{locator: locator, peers: peers}
 | 
						t.data = switchData{locator: locator, peers: peers}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,8 +83,10 @@ func (iface *tcpInterface) connectSOCKS(socksaddr, peeraddr string) {
 | 
				
			||||||
// Initializes the struct.
 | 
					// Initializes the struct.
 | 
				
			||||||
func (iface *tcpInterface) init(core *Core) (err error) {
 | 
					func (iface *tcpInterface) init(core *Core) (err error) {
 | 
				
			||||||
	iface.core = core
 | 
						iface.core = core
 | 
				
			||||||
 | 
						iface.core.configMutex.RLock()
 | 
				
			||||||
	iface.tcp_addr = iface.core.config.Listen
 | 
						iface.tcp_addr = iface.core.config.Listen
 | 
				
			||||||
	iface.tcp_timeout = time.Duration(iface.core.config.ReadTimeout) * time.Millisecond
 | 
						iface.tcp_timeout = time.Duration(iface.core.config.ReadTimeout) * time.Millisecond
 | 
				
			||||||
 | 
						iface.core.configMutex.RUnlock()
 | 
				
			||||||
	if iface.tcp_timeout >= 0 && iface.tcp_timeout < default_tcp_timeout {
 | 
						if iface.tcp_timeout >= 0 && iface.tcp_timeout < default_tcp_timeout {
 | 
				
			||||||
		iface.tcp_timeout = default_tcp_timeout
 | 
							iface.tcp_timeout = default_tcp_timeout
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue