5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-23 02:01:36 +00:00

Merge pull request #310 from neilalexander/nodeconfig

Bug fixes from nodeconfig branch
This commit is contained in:
Neil Alexander 2019-01-16 13:26:19 +00:00 committed by GitHub
commit c3bd3bd140
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 0 deletions

View File

@ -86,6 +86,7 @@ func (r *router) init(core *Core) {
r.send = send r.send = send
r.reset = make(chan struct{}, 1) r.reset = make(chan struct{}, 1)
r.admin = make(chan func(), 32) r.admin = make(chan func(), 32)
r.nodeinfo.init(r.core)
r.core.configMutex.RLock() r.core.configMutex.RLock()
r.nodeinfo.setNodeInfo(r.core.config.NodeInfo, r.core.config.NodeInfoPrivacy) r.nodeinfo.setNodeInfo(r.core.config.NodeInfo, r.core.config.NodeInfoPrivacy)
r.core.configMutex.RUnlock() r.core.configMutex.RUnlock()

View File

@ -125,8 +125,10 @@ func (iface *tcpInterface) listen() error {
} }
iface.serv, err = lc.Listen(ctx, "tcp", iface.tcp_addr) iface.serv, err = lc.Listen(ctx, "tcp", iface.tcp_addr)
if err == nil { if err == nil {
iface.mutex.Lock()
iface.calls = make(map[string]struct{}) iface.calls = make(map[string]struct{})
iface.conns = make(map[tcpInfo](chan struct{})) iface.conns = make(map[tcpInfo](chan struct{}))
iface.mutex.Unlock()
go iface.listener() go iface.listener()
return nil return nil
} }
@ -187,7 +189,9 @@ func (iface *tcpInterface) call(saddr string, socksaddr *string, sintf string) {
if iface.isAlreadyCalling(saddr) { if iface.isAlreadyCalling(saddr) {
return return
} }
iface.mutex.Lock()
iface.calls[callname] = struct{}{} iface.calls[callname] = struct{}{}
iface.mutex.Unlock()
defer func() { defer func() {
// Block new calls for a little while, to mitigate livelock scenarios // Block new calls for a little while, to mitigate livelock scenarios
time.Sleep(default_tcp_timeout) time.Sleep(default_tcp_timeout)