X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fclient%2Fclient.go;h=093251dbaa8781416a1f9cd9b049bd40af081d5b;hb=ab42bfd6e2ad37e8078b416a76cf23dd099f821f;hp=cfeba815de38bf0585a974aa0ea4311c540b688d;hpb=c95d3299276c0fba731e299d5deec8e9805e4ac1;p=govpn.git diff --git a/src/cypherpunks.ru/govpn/client/client.go b/src/cypherpunks.ru/govpn/client/client.go index cfeba81..093251d 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-2016 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 ( @@ -27,7 +45,8 @@ type Configuration struct { ProxyAddress string ProxyAuthentication string RemoteAddress string - UpPath, DownPath string + UpPath string + DownPath string StatsAddress string NoReconnect bool MTU int @@ -62,7 +81,7 @@ type Client struct { termSignal chan os.Signal config Configuration - // Error receive any error of all routines + // Error channel receives any kind of routine errors Error chan error } @@ -103,7 +122,7 @@ 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: @@ -118,13 +137,17 @@ 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{ + client := Client{ idsCache: govpn.NewMACCache(), firstUpCall: true, config: conf, @@ -133,5 +156,5 @@ func NewClient(conf Configuration, verifier *govpn.Verifier, termSignal chan os. } confs := map[govpn.PeerId]*govpn.PeerConf{*verifier.Id: conf.Peer} client.idsCache.Update(&confs) - return client + return &client }