c.LogFields(),
).WithFields(
c.config.LogFields(),
- ).Info("Starting...")
+ ).Info("Starting")
// if available, run PreUp, it might create interface
if c.config.Peer.PreUp != nil {
// 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")
+ l.WithField("asking", c.config.Peer.Iface).Debug("No interface, trying to listen")
c.tap, err = govpn.TAPListen(c.config.Peer.Iface, c.config.Peer.MTU)
if err != nil {
c.Error <- errors.Wrapf(
}
}
c.config.Peer.Iface = c.tap.Name
- l.WithFields(c.LogFields()).Debug("Got interface, start main loop")
+ l.WithFields(c.LogFields()).Debug("Got interface, starting main loop")
MainCycle:
for {
c.termination = make(chan struct{})
switch c.config.Protocol {
case govpn.ProtocolUDP:
- l.Debug("Start UDP")
+ l.Debug("Starting UDP")
go c.startUDP()
case govpn.ProtocolTCP:
- l.Debug("Start TCP")
+ l.Debug("Starting TCP")
if c.config.isProxy() {
go c.proxyTCP()
} else {
close(c.rehandshaking)
close(c.termination)
}
- l.WithFields(c.config.LogFields()).Debug("Run post down action")
+ l.WithFields(c.config.LogFields()).Debug("Running post down action")
if err = c.postDownAction(); err != nil {
c.Error <- errors.Wrap(err, "c.postDownAction")
}
l := c.logger.WithField("func", logFuncPrefix+"Client.startTCP")
// initialize using a file descriptor
if c.config.FileDescriptor > 0 {
- l.WithField("fd", c.config.FileDescriptor).Debug("Connect using file descriptor")
+ l.WithField("fd", c.config.FileDescriptor).Debug("Connecting using file descriptor")
var err error
conn, err = net.FileConn(os.NewFile(
uintptr(c.config.FileDescriptor),
}
} else {
// TODO move resolution into the loop, as the name might change over time
- l.WithField("fd", c.config.RemoteAddress).Debug("Connect using TCP")
+ l.WithField("fd", c.config.RemoteAddress).Debug("Connecting using TCP")
remote, err := net.ResolveTCPAddr("tcp", c.config.RemoteAddress)
if err != nil {
c.Error <- errors.Wrapf(err, "net.ResolveTCPAdd %s", c.config.RemoteAddress)
fields,
).WithFields(
c.LogFields(),
- ).WithError(err).Debug("Can't find peer in ids")
+ ).WithError(err).Debug("Can not find peer in ids")
continue
}
peer, err = hs.Client(buf[:prev])
err,
).WithFields(
c.LogFields(),
- ).Debug("Can't create new peer")
+ ).Debug("Can not create new peer")
continue
}
c.logger.WithFields(fields).WithFields(c.LogFields()).Info("Handshake completed")
default:
}
if prev == len(buf) {
- c.logger.WithFields(
- c.LogFields(),
- ).Debug("Packet timeouted")
+ c.logger.WithFields(c.LogFields()).Debug("Packet timeouted")
c.timeouted <- struct{}{}
break TransportCycle
}
l := c.logger.WithField("func", "startUDP")
// TODO move resolution into the loop, as the name might change over time
- l.Debug("Resolve UDP address")
+ l.Debug("Resolving UDP address")
remote, err := net.ResolveUDPAddr("udp", c.config.RemoteAddress)
if err != nil {
c.Error <- errors.Wrapf(err, "net.ResolveUDPAddr %s", c.config.RemoteAddress)
}
l.WithFields(c.config.LogFields()).Info("Connected")
- l.Debug("Handshake start")
+ l.Debug("Handshake starting")
hs, err := govpn.HandshakeStart(c.config.RemoteAddress, conn, c.config.Peer)
if err != nil {
govpn.CloseLog(conn, c.logger, c.LogFields())
c.Error <- errors.Wrap(err, "govpn.HandshakeStart")
return
}
- l.Debug("Handshake done")
+ l.Debug("Handshake completed")
buf := make([]byte, c.config.Peer.MTU*2)
var n int
break
}
if err != nil {
- l.WithError(err).WithFields(c.LogFields()).Debug("Can't read from connection")
+ l.WithError(err).WithFields(c.LogFields()).Debug("Can not read from connection")
timeouts++
continue
}
if peer != nil {
- c.logger.WithFields(c.LogFields()).Debug("No peer yet, process packet")
+ c.logger.WithFields(c.LogFields()).Debug("No peer yet, processing packet")
if peer.PktProcess(buf[:n], c.tap, true) {
l.WithFields(c.LogFields()).Debug("Packet processed")
timeouts = 0
logger, err := govpn.NewLogger(*logLevel, *syslog)
if err != nil {
- logrus.WithFields(fields).WithError(err).Fatal("Can't initialize logging")
+ logrus.WithFields(fields).WithError(err).Fatal("Can not initialize logging")
}
if *egdPath != "" {
}
priv, err := verifier.PasswordApply(key)
if err != nil {
- logger.WithError(err).Fatal("Can't PasswordApply")
+ logger.WithError(err).Fatal("Can not PasswordApply")
}
if *encless {
if protocol != govpn.ProtocolTCP {
c, err := client.NewClient(conf, logger, govpn.CatchSignalShutdown())
if err != nil {
- logger.WithError(err).Fatal("Can't initialize client")
+ logger.WithError(err).Fatal("Can not initialize client")
}
if *stats != "" {
}
if len(ctx.Config.Iface) == 0 {
- return nil, errors.Errorf("Script %q didn't returned an interface name", path)
+ return nil, errors.Errorf("Script %q didn't return interface name", path)
}
tap, err := govpn.TAPListen(ctx.Config.Iface, ctx.Config.MTU)
fields := logrus.Fields{
"func": "confRefresh",
}
- logger.WithFields(fields).Debug("Check configuration file")
+ logger.WithFields(fields).Debug("Checking configuration file")
newConfs, err := confRead()
if err != nil {
return errors.Wrap(err, "confRead")
if err != nil {
logger.WithError(err).WithFields(
fields,
- ).Fatal("Couldn't perform initial configuration read")
+ ).Fatal("Can not perform initial configuration read")
}
go func() {
for {
if err = confRefresh(); err != nil {
logger.WithError(err).WithFields(
fields,
- ).Error("Couldn't refresh configuration")
+ ).Error("Can not refresh configuration")
}
}
}()
if err != nil {
logrus.WithFields(
fields,
- ).WithError(err).Fatal("Couldn't initialize logging")
+ ).WithError(err).Fatal("Can not initialize logging")
}
govpn.SetLogger(logger)
if err := json.Unmarshal(encoded, &str); err != nil {
return errors.Wrapf(
err,
- "Can't unmarshall to string %q",
+ "Can not unmarshall to string %q",
hex.EncodeToString(encoded),
)
}
logger.WithFields(logrus.Fields{
"func": logFuncPrefix + "CatchSignalShutdown",
"signal": sig.String(),
- }).Debug("Catch signal, shutting down")
+ }).Debug("Catched signal, shutting down")
shutdownChan <- sig
}()
return shutdownChan
// CloseLog log an error if a io.Closer fail to Close
func CloseLog(c io.Closer, l *logrus.Logger, fields logrus.Fields) {
if err := c.Close(); err != nil {
- logrus.WithFields(fields).WithError(err).Error("Can't close connection")
+ logrus.WithFields(fields).WithError(err).Error("Can not close connection")
}
}
"func": logFuncPrefix + "MACCache.Update",
"peers": len(*peers),
}
- logger.WithFields(fields).WithField("size", mc.Length()).Debug("Clean old keys")
+ logger.WithFields(fields).WithField("size", mc.Length()).Debug("Cleaning old keys")
for pid := range mc.cache {
if _, exists := (*peers)[pid]; !exists {
logger.WithFields(fields).WithField("pid", pid).Debug("Cleaning key")
).WithField(
"size",
mc.Length(),
- ).Debug("Cleaned, add/update new key")
+ ).Debug("Cleaned, adding/updating new keys")
for pid, pc := range *peers {
if _, exists := mc.cache[pid]; exists {
logger.WithFields(fields).WithFields(
}
}
}
- logger.WithFields(fields).WithField("size", mc.Length()).Debug("Finish")
+ logger.WithFields(fields).WithField("size", mc.Length()).Debug("Finished")
return nil
}
}
logger.WithFields(fields).Debug("Starting")
if len(data) < minimumSize {
- return nil, errors.Errorf("MAC is too small %d, minimum %d", len(data), minimumSize)
+ return nil, errors.Errorf("MAC is too short %d, minimum %d", len(data), minimumSize)
}
buf := make([]byte, 8)
sum := make([]byte, 32)
defer mc.l.RUnlock()
for pid, mt := range mc.cache {
loopFields := logrus.Fields{"pid": pid.String()}
- logger.WithFields(loopFields).Debug("process")
+ logger.WithFields(loopFields).Debug("Processing")
copy(buf, data)
AddTimeSync(mt.ts, buf)
mt.l.Lock()
mt.mac.Reset()
- logger.WithFields(fields).WithField("buf", hex.EncodeToString(buf)).Debug("mt.mac.Write")
+ logger.WithFields(
+ fields,
+ ).WithField(
+ "buf", hex.EncodeToString(buf),
+ ).Debug("mt.mac.Write")
if _, err := mt.mac.Write(buf); err != nil {
mt.l.Unlock()
return nil, errors.Wrap(err, "mt.mac.Write")
return &ppid, nil
}
- logger.WithFields(fields).WithFields(loopFields).Debug("Not matching peer")
+ logger.WithFields(fields).WithFields(loopFields).Debug("Peer is not matched")
}
- logger.WithFields(fields).Debug("Can't find matching peer ID")
+ logger.WithFields(fields).Debug("Can not find matching peer ID")
return nil, nil
}
).WithField(
"minimum_packet_Length",
MinPktLength,
- ).Debug("Ignore packet smaller than allowed minimum")
+ ).Debug("Ignoring packet smaller than allowed minimum")
return false
}
if !p.Encless && len(data) > len(p.bufR)-CC20IBS {
}
p.BytesPayloadIn += uint64(p.pktSizeR)
if _, err = tap.Write(out[:p.pktSizeR]); err != nil {
- logger.WithFields(p.LogFields()).WithFields(fields).WithError(err).Error("Can't write to TAP")
+ logger.WithFields(p.LogFields()).WithFields(fields).WithError(err).Error("Can not write to TAP")
}
return true
}
).WithFields(
peer.LogFields(),
).WithError(err).Warn(
- "Can't process nil ethernet packet",
+ "Can not process nil Ethernet packet",
)
}
lastSent = now
fields,
).WithFields(
peer.LogFields(),
- ).WithError(err).Warn("Can't process ethernet packet")
+ ).WithError(err).Warn("Can not process Ethernet packet")
}
lastSent = time.Now()
}
fields,
).WithFields(
peer.LogFields(),
- ).WithError(err).Warn("Can't process ethernet packet")
+ ).WithError(err).Warn("Can not process Ethernet packet")
}
default:
}
fields,
).WithFields(
peer.LogFields(),
- ).WithError(err).Warn("Can't process nil ethernet packet")
+ ).WithError(err).Warn("Can not process nil Ethernet packet")
}
}
time.Sleep(peer.CPRCycle)
const logFuncPrefix = "govpn/server."
var (
- errMisconfiguredTap = errors.New("No PreUp and no Iface, can't create interface")
- errPreUpNoTap = errors.New("PreUp didn't returned an interface, and Iface is unset")
+ errMisconfiguredTap = errors.New("No PreUp and no Iface, can not create interface")
+ errPreUpNoTap = errors.New("PreUp didn't return interface, and Iface is unset")
)
func (s *Server) callUp(peer *govpn.Peer, proto govpn.Protocol) (*govpn.TAP, error) {
}
if conf.PreUp != nil {
- s.logger.WithFields(fields).Debug("PreUp defined, execute it")
+ s.logger.WithFields(fields).Debug("PreUp defined, executing it")
tap, err = conf.PreUp(govpn.PeerContext{
RemoteAddress: peer.Addr,
Protocol: proto,
}
s.logger.WithFields(fields).WithField("tap", tap).Debug("PreUp finished")
} else {
- s.logger.WithFields(fields).Debug("No PreUp defined, skip")
+ s.logger.WithFields(fields).Debug("No PreUp defined, skipping")
}
if tap == nil {
- s.logger.WithFields(fields).Debug("PreUp didn't returned an interface, create one")
+ s.logger.WithFields(fields).Debug("PreUp did not return interface, creating one")
if !isConfigIface {
return nil, errors.Wrapf(errPreUpNoTap, "interface:%q tap:%q", conf.Iface, tap)
}
s.logger.WithFields(fields).Debug("Got interface, no Up")
return tap, nil
}
- s.logger.WithFields(fields).Debug("Got interface, execute Up")
+ s.logger.WithFields(fields).Debug("Got interface, executing Up")
err = conf.Up(govpn.PeerContext{
RemoteAddress: peer.Addr,
conf := s.confs.Get(*ps.peer.ID)
if conf == nil {
- s.logger.WithFields(fields).Error("Couldn't get configuration")
+ s.logger.WithFields(fields).Error("Can not get configuration")
return nil
}
if conf.Down == nil {
- s.logger.WithFields(fields).Debug("No Down, skip")
+ s.logger.WithFields(fields).Debug("No Down, skipping")
return nil
}
- s.logger.WithFields(fields).Debug("Execute Down")
+ s.logger.WithFields(fields).Debug("Executing Down")
err := conf.Down(govpn.PeerContext{
RemoteAddress: ps.peer.Addr,
Config: *conf,
s.LogFields(),
).WithFields(
s.configuration.LogFields(),
- ).Info("Starting...")
+ ).Info("Starting")
var needsDeletion bool
var err error
fields,
).WithFields(
ps.peer.LogFields(),
- ).Error("Couldn't close TAP")
+ ).Error("Can not close TAP")
}
}
// empty value signals that everything is fine
fields,
).WithFields(
hs.LogFields(),
- ).Debug("handshake is expired, delete")
+ ).Debug("Handshake is expired, deleting")
hs.Zero()
delete(s.handshakes, addr)
}
fields,
).WithFields(
ps.peer.LogFields(),
- ).Error("Couldn't execute callDown")
+ ).Error("Can not execute callDown")
}
if err = ps.tap.Close(); err != nil {
logrus.WithError(err).WithFields(
fields,
).WithFields(
ps.peer.LogFields(),
- ).Error("Couldn't close TAP")
+ ).Error("Can not close TAP")
}
ps.terminator <- struct{}{}
}
s.LogFields(),
).WithError(
err,
- ).Debug("Can't read connection: either EOFed or timeouted")
+ ).Debug("Can not read connection: either EOFed or timeouted")
break
}
prev += n
fields,
).WithFields(
s.LogFields(),
- ).WithError(err).Debug("Couldn't lookup for peer in ids")
+ ).WithError(err).Debug("Can not lookup for peer in ids")
continue
}
if peerID == nil {
- s.logger.WithFields(fields).WithFields(s.LogFields()).Debug("Couldn't find peer")
+ s.logger.WithFields(
+ fields,
+ ).WithFields(
+ s.LogFields(),
+ ).Debug("Can not find peer")
continue
}
if hs == nil {
fields,
).WithError(err).WithFields(
s.LogFields(),
- ).Error("Can't create new peer")
+ ).Error("Can not create new peer")
continue
}
prev = 0
s.LogFields(),
).WithError(
err,
- ).Debug("Can't read connection: either EOFed or timeouted")
+ ).Debug("Can not read connection: either EOFed or timeouted")
break
}
prev += n
var peerID *govpn.PeerID
var conf *govpn.PeerConf
for {
- s.logger.WithFields(fields).Debug("Wait for UDP buffer")
+ s.logger.WithFields(fields).Debug("Waiting for UDP buffer")
buf = <-udpBufs
n, raddr, err = conn.ReadFromUDP(buf)
if err != nil {
fields,
).WithFields(
s.LogFields(),
- ).WithError(err).Debug("Receive failure")
+ ).WithError(err).Debug("Receive failed")
break
}
addr = raddr.String()
fields,
).WithFields(
loopFields,
- ).Debug("Got UDP buffer, check if peer exists")
+ ).Debug("Got UDP buffer, checking if peer exists")
s.peersLock.RLock()
ps, exists = s.peers[addr]
s.peersLock.RUnlock()
fields,
).WithFields(
loopFields,
- ).Debug("No handshake yet, try to figure peer ID")
+ ).Debug("No handshake yet, trying to figure peer ID")
peerID, err = s.idsCache.Find(buf[:n])
if err != nil {
s.logger.WithFields(
loopFields,
).WithFields(
s.LogFields(),
- ).WithError(err).Debug("Couldn't lookup for peer in ids")
+ ).WithError(err).Debug("Can not lookup for peer in ids")
udpBufs <- buf
continue
}
}
loopFields["peer_id"] = peerID.String()
- s.logger.WithFields(fields).WithFields(loopFields).Debug("Found peer ID")
+ s.logger.WithFields(fields).WithFields(loopFields).Debug("Peer ID found")
conf = s.confs.Get(*peerID)
if conf == nil {
s.logger.WithFields(
loopFields,
).WithFields(
fields,
- ).Debug("Got configuration, perform handshake")
+ ).Debug("Got configuration, performing handshake")
hs = govpn.NewHandshake(
addr,
udpSender{conn: conn, addr: raddr},
fields,
).WithError(err).WithFields(
s.LogFields(),
- ).Error("Can't create new peer: handshake failed")
+ ).Error("Can not create new peer: handshake failed")
continue
}
s.logger.WithFields(
fields,
).WithFields(
s.LogFields(),
- ).Info("Hashshake started, continue next packet")
+ ).Info("Hashshake started, continuing for the next packet")
s.hsLock.Lock()
s.handshakes[addr] = hs
fields,
).WithFields(
loopFields,
- ).Debug("Already go handshake, finish it")
+ ).Debug("Already got handshake, finishing it")
peer, err := hs.Server(buf[:n])
if err != nil {
s.logger.WithFields(
loopFields,
).WithError(err).WithFields(
s.LogFields(),
- ).Error("Can't create new peer: handshake failed")
+ ).Error("Can not create new peer: handshake failed")
udpBufs <- buf
continue
}
loopFields,
).WithFields(
s.LogFields(),
- ).Error("Couldn't continue handshake")
+ ).Error("Can not continue handshake")
udpBufs <- buf
continue
}
fields,
).WithFields(
loopFields,
- ).Debug("Peer do not already exists")
+ ).Debug("Peer does not exist")
tap, err := s.callUp(peer, govpn.ProtocolUDP)
if err != nil {
s.logger.WithFields(
if err != nil {
logger.WithError(err).WithField(
"stats", stats,
- ).Error("Can't listen stats server")
+ ).Error("Can not listen stats server")
return
}
for {
conn, err = statsPort.Accept()
if err != nil {
- logger.WithFields(fields).WithError(err).Error("Can't accept connection")
+ logger.WithFields(fields).WithError(err).Error("Can not accept connection")
continue
}
deadLine := time.Now().Add(rwTimeout)
).WithField(
"deadline",
deadLine.String(),
- ).WithError(err).Error("Can't set deadline")
+ ).WithError(err).Error("Can not set deadline")
} else if _, err = conn.Read(buf); err != nil {
- logger.WithFields(fields).WithError(err).Error("Can't read buffer")
+ logger.WithFields(fields).WithError(err).Error("Can not read buffer")
} else if _, err = conn.Write([]byte("HTTP/1.0 200 OK\r\nContent-Type: application/json\r\n\r\n")); err != nil {
- logger.WithFields(fields).WithError(err).Error("Can't write HTTP headers")
+ logger.WithFields(fields).WithError(err).Error("Can not write HTTP headers")
} else {
var peersList []*Peer
for _, peer := range *peers {
fields,
).WithField(
"peers", len(peersList),
- ).WithError(err).Error("Can't encode to JSON")
+ ).WithError(err).Error("Can not encode to JSON")
}
}
if err = conn.Close(); err != nil {
- logger.WithFields(fields).WithError(err).Error("Can't close connection")
+ logger.WithFields(fields).WithError(err).Error("Can not close connection")
}
}
}
"func": logFuncPrefix + "TAP read sink loop",
"name": tap.Name,
"mtu": mtu,
- }).Error("Can't read interface")
+ }).Error("Can not read interface")
return
// TODO: need a way to warn consumer that something is wrong
// TODO: to force peer to just disconnect
"func", logFuncPrefix + "TUN read sink loop",
"name": tap.Name,
"mtu": mtu,
- }).Error("Can't read interface, stop")
+ }).Error("Can not read interface, stop")
return
// TODO: need a way to warn consumer that something is wrong
// TODO: to force peer to just disconnect
return nil, errors.Wrap(errUnsupportedInterface, *ifaceName)
}
if *ifaceName != interfaceTun {
- return nil, errors.Errorf("Darwin don't allow to set an interface name, only %q is supported", *ifaceName)
+ return nil, errors.Errorf("Darwin does not allow to set an interface name, only %q is supported", *ifaceName)
}
output, err := water.New(water.Config{DeviceType: water.TUN})
return output, errors.Wrap(err, "water.New")
config := water.Config{}
if len(*ifaceName) == 0 {
- return nil, errors.New("Can't figure interface type, empty name")
+ return nil, errors.New("Can not figure interface type, empty name")
}
if strings.HasPrefix(*ifaceName, interfaceTap) {