X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fclient%2Fclient.go;h=8e796f77e4c4249a11d9c9edf888e68f83a23b03;hb=6bf20f1c34d1d6e4f93818a19cb7fe20f0e966c4;hp=ac54a860e127c7d558de5d8b5f0b9dc4730647f4;hpb=b69a57fb98ca6b03477487176021c2de053af5a7;p=govpn.git diff --git a/src/cypherpunks.ru/govpn/client/client.go b/src/cypherpunks.ru/govpn/client/client.go index ac54a86..8e796f7 100644 --- a/src/cypherpunks.ru/govpn/client/client.go +++ b/src/cypherpunks.ru/govpn/client/client.go @@ -1,13 +1,14 @@ package client import ( + "errors" "fmt" "net" "os" - "errors" "time" "github.com/agl/ed25519" + "cypherpunks.ru/govpn" ) @@ -26,7 +27,8 @@ type Configuration struct { ProxyAddress string ProxyAuthentication string RemoteAddress string - UpPath, DownPath string + UpPath string + DownPath string StatsAddress string NoReconnect bool MTU int @@ -34,7 +36,7 @@ type Configuration struct { func (c *Configuration) Validate() error { if c.MTU > govpn.MTUMax { - return fmt.Errorf("Invalid MTU %d, maximum allowable is %d",c.MTU, govpn.MTUMax) + return fmt.Errorf("Invalid MTU %d, maximum allowable is %d", c.MTU, govpn.MTUMax) } if len(c.RemoteAddress) == 0 { return errors.New("Missing RemoteAddress") @@ -61,8 +63,8 @@ type Client struct { termSignal chan os.Signal config Configuration - // Error receive any error of all routines - Error chan error + // Error channel receives any kind of routine errors + Error chan error } func (c *Client) MainCycle() { @@ -83,7 +85,7 @@ func (c *Client) MainCycle() { go govpn.StatsProcessor(c.statsPort, &c.knownPeers) } - MainCycle: +MainCycle: for { c.timeouted = make(chan struct{}) c.rehandshaking = make(chan struct{}) @@ -102,7 +104,7 @@ func (c *Client) MainCycle() { case <-c.termSignal: govpn.BothPrintf(`[finish remote="%s"]`, c.config.RemoteAddress) c.termination <- struct{}{} - // send a non-error to let know everything went fine + // empty value signals that everything is fine c.Error <- nil break MainCycle case <-c.timeouted: @@ -117,18 +119,22 @@ func (c *Client) MainCycle() { close(c.rehandshaking) close(c.termination) } - if _, err = govpn.ScriptCall(c.config.DownPath, c.config.InterfaceName, c.config.RemoteAddress); err != nil { + if _, err = govpn.ScriptCall( + c.config.DownPath, + c.config.InterfaceName, + c.config.RemoteAddress, + ); err != nil { c.Error <- err } } func NewClient(conf Configuration, verifier *govpn.Verifier, termSignal chan os.Signal) *Client { client := &Client{ - idsCache: govpn.NewMACCache(), + idsCache: govpn.NewMACCache(), firstUpCall: true, - config: conf, - termSignal: termSignal, - Error: make(chan error, 1), + config: conf, + termSignal: termSignal, + Error: make(chan error, 1), } confs := map[govpn.PeerId]*govpn.PeerConf{*verifier.Id: conf.Peer} client.idsCache.Update(&confs)