type MACPeerFinder interface {
Find([]byte) (*govpn.PeerID, error)
}
type MACPeerFinder interface {
Find([]byte) (*govpn.PeerID, error)
}
-// NewServer return a configured GoVPN server, to listen network connection MainCycle must be executed
+// NewServer return a configured GoVPN server, to listen network
+// connection MainCycle must be executed
func NewServer(serverConf Configuration, peerConfs PeerConfigurer, idsCache MACPeerFinder, logger *logrus.Logger, termSignal chan interface{}) *Server {
govpn.SetLogger(logger)
return &Server{
func NewServer(serverConf Configuration, peerConfs PeerConfigurer, idsCache MACPeerFinder, logger *logrus.Logger, termSignal chan interface{}) *Server {
govpn.SetLogger(logger)
return &Server{
for _, ps := range s.peers {
if err = s.callDown(ps); err != nil {
for _, ps := range s.peers {
if err = s.callDown(ps); err != nil {
s.hsLock.Lock()
for addr, hs := range s.handshakes {
if hs.LastPing.Add(s.configuration.Timeout).Before(now) {
s.hsLock.Lock()
for addr, hs := range s.handshakes {
if hs.LastPing.Add(s.configuration.Timeout).Before(now) {
delete(s.peers, addr)
delete(s.knownPeers, addr)
delete(s.peersByID, *ps.peer.ID)
if err = s.callDown(ps); err != nil {
delete(s.peers, addr)
delete(s.knownPeers, addr)
delete(s.peersByID, *ps.peer.ID)
if err = s.callDown(ps); err != nil {