X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fcmd%2Fgovpn-server%2Fmain.go;h=639e37c5693c2b8621ac87f04b019cd44d12ffa6;hb=572cac17bde738055312f7a468a0bde0e760a262;hp=4b4206560e834877ba7a6400f588575b1547455e;hpb=649e55e1ead338121ea76d6ae1187617ea9839d6;p=govpn.git diff --git a/src/cypherpunks.ru/govpn/cmd/govpn-server/main.go b/src/cypherpunks.ru/govpn/cmd/govpn-server/main.go index 4b42065..639e37c 100644 --- a/src/cypherpunks.ru/govpn/cmd/govpn-server/main.go +++ b/src/cypherpunks.ru/govpn/cmd/govpn-server/main.go @@ -1,6 +1,6 @@ /* GoVPN -- simple secure free software virtual private network daemon -Copyright (C) 2014-2016 Sergey Matveev +Copyright (C) 2014-2017 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 @@ -39,6 +39,7 @@ var ( proxy = flag.String("proxy", "", "Enable HTTP proxy on host:port") egdPath = flag.String("egd", "", "Optional path to EGD socket") syslog = flag.Bool("syslog", false, "Enable logging to syslog") + version = flag.Bool("version", false, "Print version information") warranty = flag.Bool("warranty", false, "Print warranty information") ) @@ -48,6 +49,10 @@ func main() { fmt.Println(govpn.Warranty) return } + if *version { + fmt.Println(govpn.VersionGet()) + return + } timeout := time.Second * time.Duration(govpn.TimeoutDefault) log.SetFlags(log.Ldate | log.Lmicroseconds | log.Lshortfile) log.Println(govpn.VersionGet()) @@ -60,6 +65,10 @@ func main() { govpn.EGDInit(*egdPath) } + if *syslog { + govpn.SyslogEnable() + } + switch *proto { case "udp": startUDP() @@ -89,20 +98,14 @@ func main() { if *proxy != "" { go proxyStart() } - - if *syslog { - govpn.SyslogEnable() - } - log.Println("Server started") - govpn.Println("Server started") + govpn.BothPrintf(`[started bind="%s"]`, *bindAddr) var needsDeletion bool MainCycle: for { select { case <-termSignal: - log.Println("Terminating") - govpn.Println("Terminating") + govpn.BothPrintf(`[terminating bind="%s"]`, *bindAddr) for _, ps := range peers { govpn.ScriptCall( confs[*ps.peer.Id].Down, @@ -116,7 +119,7 @@ MainCycle: hsLock.Lock() for addr, hs := range handshakes { if hs.LastPing.Add(timeout).Before(now) { - govpn.Println("Deleting handshake state", addr) + govpn.Printf(`[handshake-delete bind="%s" addr="%s"]`, *bindAddr, addr) hs.Zero() delete(handshakes, addr) } @@ -129,7 +132,7 @@ MainCycle: needsDeletion = ps.peer.LastPing.Add(timeout).Before(now) ps.peer.BusyR.Unlock() if needsDeletion { - govpn.Println("Deleting peer", ps.peer) + govpn.Printf(`[peer-delete bind="%s" peer="%s"]`, *bindAddr, ps.peer) delete(peers, addr) delete(knownPeers, addr) delete(peersById, *ps.peer.Id)