X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fcmd%2Fgovpn-server%2Fcommon.go;h=e0e8e033da043f42a000a219f3559d1f0fbda613;hb=c982ccb214ba8d0fd8a30dee7439ea2db1559f6f;hp=691e51c03cc723e6d8d56d1d3165f4adff3a3362;hpb=3413874a359d386b082614637c9ab247bb6510b4;p=govpn.git diff --git a/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go b/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go index 691e51c..e0e8e03 100644 --- a/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go +++ b/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go @@ -1,6 +1,6 @@ /* GoVPN -- simple secure free software virtual private network daemon -Copyright (C) 2014-2016 Sergey Matveev +Copyright (C) 2014-2017 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +21,6 @@ package main import ( "bytes" "sync" - "time" "cypherpunks.ru/govpn" ) @@ -33,44 +32,23 @@ type PeerState struct { } var ( - handshakes map[string]*govpn.Handshake = make(map[string]*govpn.Handshake) - hsLock sync.RWMutex - - peers map[string]*PeerState = make(map[string]*PeerState) - peersLock sync.RWMutex - - peersById map[govpn.PeerId]string = make(map[govpn.PeerId]string) - peersByIdLock sync.RWMutex - - knownPeers govpn.KnownPeers - kpLock sync.RWMutex + handshakes sync.Map + peers sync.Map + peersByID sync.Map + knownPeers sync.Map ) -func peerReady(ps PeerState) { - var data []byte - heartbeat := time.NewTicker(ps.peer.Timeout) -Processor: - for { - select { - case <-heartbeat.C: - ps.peer.EthProcess(nil) - case <-ps.terminator: - break Processor - case data = <-ps.tap.Sink: - ps.peer.EthProcess(data) - } - } - close(ps.terminator) - ps.peer.Zero() - heartbeat.Stop() -} - -func callUp(peerId *govpn.PeerId, remoteAddr string) (string, error) { - ifaceName := confs[*peerId].Iface - if confs[*peerId].Up != "" { - result, err := govpn.ScriptCall(confs[*peerId].Up, ifaceName, remoteAddr) +func callUp(peerID *govpn.PeerID, remoteAddr string) (string, error) { + ifaceName := confs[*peerID].Iface + if confs[*peerID].Up != "" { + result, err := govpn.ScriptCall(confs[*peerID].Up, ifaceName, remoteAddr) if err != nil { - govpn.Printf(`[script-failed bind="%s" path="%s" err="%s"]`, *bindAddr, confs[*peerId].Up, err) + govpn.Printf( + `[script-failed bind="%s" path="%s" err="%s"]`, + *bindAddr, + confs[*peerID].Up, + err, + ) return "", err } if ifaceName == "" { @@ -82,7 +60,7 @@ func callUp(peerId *govpn.PeerId, remoteAddr string) (string, error) { } } if ifaceName == "" { - govpn.Printf(`[tap-failed bind="%s" peer="%s"]`, *bindAddr, *peerId) + govpn.Printf(`[tap-failed bind="%s" peer="%s"]`, *bindAddr, *peerID) } return ifaceName, nil }