X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fclient%2Fclient.go;h=0d12023a846ebe846c1b254512242f5d5daeb449;hb=70e70dfded87dc2d737160444829c58ed8ed2fa0;hp=76635a88ec9a9e84e8b456e53943e4cc518a08da;hpb=6389874fdb1a6a909cbd8a52d93eb5215bd38503;p=govpn.git diff --git a/src/cypherpunks.ru/govpn/client/client.go b/src/cypherpunks.ru/govpn/client/client.go index 76635a8..0d12023 100644 --- a/src/cypherpunks.ru/govpn/client/client.go +++ b/src/cypherpunks.ru/govpn/client/client.go @@ -1,3 +1,21 @@ +/* +GoVPN -- simple secure free software virtual private network daemon +Copyright (C) 2014-2018 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 +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + package client import ( @@ -5,6 +23,7 @@ import ( "fmt" "net" "os" + "sync" "time" "github.com/agl/ed25519" @@ -12,7 +31,7 @@ import ( "cypherpunks.ru/govpn" ) -type Protocol uint8 +type Protocol int const ( ProtocolUDP Protocol = iota @@ -54,7 +73,7 @@ func (c *Configuration) isProxy() bool { type Client struct { idsCache *govpn.MACCache tap *govpn.TAP - knownPeers govpn.KnownPeers + knownPeers sync.Map statsPort net.Listener timeouted chan struct{} rehandshaking chan struct{} @@ -81,7 +100,6 @@ func (c *Client) MainCycle() { c.Error <- fmt.Errorf("Can't listen on stats port: %s", err.Error()) return } - c.knownPeers = govpn.KnownPeers(make(map[string]**govpn.Peer)) go govpn.StatsProcessor(c.statsPort, &c.knownPeers) } @@ -111,7 +129,7 @@ MainCycle: if c.config.NoReconnect { break MainCycle } - govpn.BothPrintf(`[sleep seconds="%d"]`, c.config.Peer.Timeout) + govpn.BothPrintf(`[sleep seconds="%d"]`, c.config.Peer.Timeout/time.Second) time.Sleep(c.config.Peer.Timeout) case <-c.rehandshaking: } @@ -136,7 +154,7 @@ func NewClient(conf Configuration, verifier *govpn.Verifier, termSignal chan os. termSignal: termSignal, Error: make(chan error, 1), } - confs := map[govpn.PeerId]*govpn.PeerConf{*verifier.Id: conf.Peer} + confs := map[govpn.PeerID]*govpn.PeerConf{*verifier.ID: conf.Peer} client.idsCache.Update(&confs) return &client }