Commit d63f0994 authored by Geoff Simmons's avatar Geoff Simmons

govarnishadm uses the vsm package separately.

To get the management address and secret file path, if necessary.
parent 5fd30104
...@@ -30,6 +30,7 @@ package main ...@@ -30,6 +30,7 @@ package main
import ( import (
"code.uplex.de/uplex-varnish/varnishapi/pkg/admin" "code.uplex.de/uplex-varnish/varnishapi/pkg/admin"
"code.uplex.de/uplex-varnish/varnishapi/pkg/vsm"
"bufio" "bufio"
"flag" "flag"
...@@ -55,15 +56,38 @@ func errExit(err error) { ...@@ -55,15 +56,38 @@ func errExit(err error) {
func main() { func main() {
var adm *admin.Admin var adm *admin.Admin
var admErr error
flag.Parse() flag.Parse()
tmo := time.Duration(*timeout * uint(time.Second)) tmo := time.Duration(*timeout * uint(time.Second))
if *tflag == "" || *sflag == "" { if *tflag == "" || *sflag == "" {
adm, admErr = admin.Attach(*instance, tmo) vsm := vsm.New()
} else { if vsm == nil {
fmt.Println("Cannot initiate attachment to Varnish "+
"shared memory")
os.Exit(-1)
}
defer vsm.Destroy()
if err := vsm.Attach(*instance); err != nil {
errExit(err)
}
if *tflag == "" {
addr, err := vsm.GetMgmtAddr()
if err != nil {
errExit(err)
}
*tflag = addr
}
if *sflag == "" {
sarg, err := vsm.GetSecretPath()
if err != nil {
errExit(err)
}
*sflag = sarg
}
}
sfile, err := os.Open(*sflag) sfile, err := os.Open(*sflag)
if err != nil { if err != nil {
errExit(err) errExit(err)
...@@ -72,10 +96,9 @@ func main() { ...@@ -72,10 +96,9 @@ func main() {
if err != nil { if err != nil {
errExit(err) errExit(err)
} }
adm, admErr = admin.Dial(*tflag, secret, tmo) adm, err = admin.Dial(*tflag, secret, tmo)
} if err != nil {
if admErr != nil { errExit(err)
errExit(admErr)
} }
if len(flag.Args()) > 0 { if len(flag.Args()) > 0 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment