]> Cypherpunks.ru repositories - govpn.git/blobdiff - src/cypherpunks.ru/govpn/cmd/govpn-client/main.go
Merge branch 'develop'
[govpn.git] / src / cypherpunks.ru / govpn / cmd / govpn-client / main.go
index 10da96929ed6f6786c9e4b0000bb009b7e03ea10..3d8cbe65953fd935f480a9aefde3efec28ed61d8 100644 (file)
@@ -21,6 +21,7 @@ package main
 
 import (
        "flag"
+       "fmt"
        "log"
        "net"
        "os"
@@ -48,17 +49,23 @@ var (
        encless     = flag.Bool("encless", false, "Encryptionless mode")
        cpr         = flag.Int("cpr", 0, "Enable constant KiB/sec out traffic rate")
        egdPath     = flag.String("egd", "", "Optional path to EGD socket")
+       syslog      = flag.Bool("syslog", false, "Enable logging to syslog")
+       warranty    = flag.Bool("warranty", false, "Print warranty information")
 
        conf        *govpn.PeerConf
        tap         *govpn.TAP
        timeout     int
        firstUpCall bool = true
        knownPeers  govpn.KnownPeers
-       idsCache    *govpn.CipherCache
+       idsCache    *govpn.MACCache
 )
 
 func main() {
        flag.Parse()
+       if *warranty {
+               fmt.Println(govpn.Warranty)
+               return
+       }
        timeout = *timeoutP
        var err error
        log.SetFlags(log.Ldate | log.Lmicroseconds | log.Lshortfile)
@@ -101,7 +108,7 @@ func main() {
                Verifier: verifier,
                DSAPriv:  priv,
        }
-       idsCache = govpn.NewCipherCache()
+       idsCache = govpn.NewMACCache()
        confs := map[govpn.PeerId]*govpn.PeerConf{*verifier.Id: conf}
        idsCache.Update(&confs)
        log.Println(govpn.VersionGet())
@@ -120,6 +127,10 @@ func main() {
                go govpn.StatsProcessor(statsPort, &knownPeers)
        }
 
+       if *syslog {
+               govpn.SyslogEnable()
+       }
+
        termSignal := make(chan os.Signal, 1)
        signal.Notify(termSignal, os.Interrupt, os.Kill)
 
@@ -145,7 +156,7 @@ MainCycle:
                }
                select {
                case <-termSignal:
-                       log.Fatalln("Finishing")
+                       govpn.BothPrintf(`[finish remote="%s"]`, *remoteAddr)
                        termination <- struct{}{}
                        break MainCycle
                case <-timeouted:
@@ -156,5 +167,5 @@ MainCycle:
                close(rehandshaking)
                close(termination)
        }
-       govpn.ScriptCall(*downPath, *ifaceName)
+       govpn.ScriptCall(*downPath, *ifaceName, *remoteAddr)
 }