ProxyAuthentication string
RemoteAddress string
NoReconnect bool
- // FileDescriptor allow to create a Client from a pre-existing file descriptor.
- // Required for Android. requires TCP protocol
+ // FileDescriptor allows creating Client from a pre-existing file
+ // descriptor. Required for Android. Requires TCP transport.
FileDescriptor int
}
// Validate returns an error if a configuration is invalid
func (c *Configuration) Validate() error {
if c.Peer.MTU > govpn.MTUMax {
- return errors.Errorf("Invalid MTU %d, maximum allowable is %d", c.Peer.MTU, govpn.MTUMax)
+ return errors.Errorf(
+ "Invalid MTU %d, maximum allowable is %d",
+ c.Peer.MTU,
+ govpn.MTUMax,
+ )
}
if len(c.RemoteAddress) == 0 {
return errors.New("Missing RemoteAddress")
}
if len(c.Peer.Iface) == 0 && c.Peer.PreUp == nil {
- return errors.New("Missing InterfaceName *or* PreUp")
+ return errors.New("Missing InterfaceName or PreUp")
}
if c.Protocol != govpn.ProtocolTCP && c.Protocol != govpn.ProtocolUDP {
return errors.Errorf("Invalid protocol %d for client", c.Protocol)
}
if c.FileDescriptor > 0 && c.Protocol != govpn.ProtocolTCP {
- return errors.Errorf("Connect with file descriptor requires protocol %s", govpn.ProtocolTCP.String())
+ return errors.Errorf(
+ "Connect with file descriptor requires protocol %s",
+ govpn.ProtocolTCP.String(),
+ )
}
return nil
}
-// LogFields return a logrus compatible logging context
+// LogFields returns a logrus compatible logging context
func (c *Configuration) LogFields() logrus.Fields {
const prefix = "client_conf_"
f := c.Peer.LogFields(prefix)
f[prefix+"proxy"] = c.ProxyAddress
}
if c.FileDescriptor > 0 {
- f[prefix+"remote"] = fmt.Sprintf("fd:%d(%s)", c.FileDescriptor, c.RemoteAddress)
+ f[prefix+"remote"] = fmt.Sprintf(
+ "fd:%d(%s)", c.FileDescriptor, c.RemoteAddress,
+ )
} else {
f[prefix+"remote"] = c.RemoteAddress
}
Error chan error
}
-// LogFields return a logrus compatible logging context
+// LogFields returns a logrus compatible logging context
func (c *Client) LogFields() logrus.Fields {
const prefix = "client_"
f := logrus.Fields{
return errors.Wrap(err, "c.config.Peer.Up")
}
-// KnownPeers return GoVPN peers. Always 1.
-// used to get client statistics.
+// KnownPeers returns GoVPN peers. Always 1. Used to get client statistics.
func (c *Client) KnownPeers() *govpn.KnownPeers {
return &c.knownPeers
}
func (c *Client) MainCycle() {
var err error
l := c.logger.WithFields(logrus.Fields{"func": logFuncPrefix + "Client.MainCycle"})
- l.WithFields(c.LogFields()).WithFields(c.config.LogFields()).Info("Starting...")
+ l.WithFields(
+ c.LogFields(),
+ ).WithFields(
+ c.config.LogFields(),
+ ).Info("Starting...")
// if available, run PreUp, it might create interface
if c.config.Peer.PreUp != nil {
l.Debug("No PreUp to run")
}
- // if tap wasn't set by PreUp, listen here
+ // if TAP wasn't set by PreUp, listen here
if c.tap == nil {
l.WithField("asking", c.config.Peer.Iface).Debug("No interface, try to listen")
c.tap, err = govpn.TAPListen(c.config.Peer.Iface, c.config.Peer.MTU)
if err != nil {
- c.Error <- errors.Wrapf(err, "govpn.TAPListen inteface:%s mtu:%d", c.config.Peer.Iface, c.config.Peer.MTU)
+ c.Error <- errors.Wrapf(
+ err,
+ "govpn.TAPListen inteface:%s mtu:%d",
+ c.config.Peer.Iface, c.config.Peer.MTU,
+ )
return
}
}