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
import (
"code.uplex.de/uplex-varnish/varnishapi/pkg/admin"
"code.uplex.de/uplex-varnish/varnishapi/pkg/vsm"
"bufio"
"flag"
......@@ -55,27 +56,49 @@ func errExit(err error) {
func main() {
var adm *admin.Admin
var admErr error
flag.Parse()
tmo := time.Duration(*timeout * uint(time.Second))
if *tflag == "" || *sflag == "" {
adm, admErr = admin.Attach(*instance, tmo)
} else {
sfile, err := os.Open(*sflag)
if err != nil {
errExit(err)
vsm := vsm.New()
if vsm == nil {
fmt.Println("Cannot initiate attachment to Varnish "+
"shared memory")
os.Exit(-1)
}
secret, err := ioutil.ReadAll(sfile)
if err != nil {
defer vsm.Destroy()
if err := vsm.Attach(*instance); err != nil {
errExit(err)
}
adm, admErr = admin.Dial(*tflag, secret, tmo)
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)
if err != nil {
errExit(err)
}
secret, err := ioutil.ReadAll(sfile)
if err != nil {
errExit(err)
}
if admErr != nil {
errExit(admErr)
adm, err = admin.Dial(*tflag, secret, tmo)
if err != nil {
errExit(err)
}
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