]> Cypherpunks.ru repositories - govpn.git/blobdiff - src/cypherpunks.ru/govpn/cmd/govpn-client/main.go
-warranty CLI option
[govpn.git] / src / cypherpunks.ru / govpn / cmd / govpn-client / main.go
index b46a16eb93203cb93a7002d372b24b64de050602..58d5ce7d8597022df5a0a9e9197cf71f1dce0cdf 100644 (file)
@@ -21,6 +21,7 @@ package main
 
 import (
        "flag"
+       "fmt"
        "log"
        "net"
        "os"
@@ -43,10 +44,12 @@ var (
        proxyAuth   = flag.String("proxy-auth", "", "user:password Basic proxy auth")
        mtu         = flag.Int("mtu", govpn.MTUDefault, "MTU of TAP interface")
        timeoutP    = flag.Int("timeout", 60, "Timeout seconds")
+       timeSync    = flag.Int("timesync", 0, "Time synchronization requirement")
        noisy       = flag.Bool("noise", false, "Enable noise appending")
        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")
+       warranty    = flag.Bool("warranty", false, "Print warranty information")
 
        conf        *govpn.PeerConf
        tap         *govpn.TAP
@@ -58,6 +61,10 @@ var (
 
 func main() {
        flag.Parse()
+       if *warranty {
+               fmt.Println(govpn.Warranty)
+               return
+       }
        timeout = *timeoutP
        var err error
        log.SetFlags(log.Ldate | log.Lmicroseconds | log.Lshortfile)
@@ -70,6 +77,9 @@ func main() {
                govpn.EGDInit(*egdPath)
        }
 
+       if *verifierRaw == "" {
+               log.Fatalln("No verifier specified")
+       }
        verifier, err := govpn.VerifierFromString(*verifierRaw)
        if err != nil {
                log.Fatalln(err)
@@ -90,13 +100,16 @@ func main() {
                Iface:    *ifaceName,
                MTU:      *mtu,
                Timeout:  time.Second * time.Duration(timeout),
+               TimeSync: *timeSync,
                Noise:    *noisy,
                CPR:      *cpr,
                Encless:  *encless,
                Verifier: verifier,
                DSAPriv:  priv,
        }
-       idsCache = govpn.NewCipherCache([]govpn.PeerId{*verifier.Id})
+       idsCache = govpn.NewCipherCache()
+       confs := map[govpn.PeerId]*govpn.PeerConf{*verifier.Id: conf}
+       idsCache.Update(&confs)
        log.Println(govpn.VersionGet())
 
        tap, err = govpn.TAPListen(*ifaceName, *mtu)
@@ -149,5 +162,5 @@ MainCycle:
                close(rehandshaking)
                close(termination)
        }
-       govpn.ScriptCall(*downPath, *ifaceName)
+       govpn.ScriptCall(*downPath, *ifaceName, *remoteAddr)
 }