client-interface-cleanup (#6)
Refactoring and code cleanup. Improved client command interface.
This commit is contained in:
21
peer/peer.go
21
peer/peer.go
@@ -13,6 +13,8 @@ import (
|
||||
"net/url"
|
||||
"os"
|
||||
"vppn/m"
|
||||
|
||||
"git.crumpington.com/lib/go/flock"
|
||||
)
|
||||
|
||||
type peerMain struct {
|
||||
@@ -20,12 +22,7 @@ type peerMain struct {
|
||||
ifReader *IFReader
|
||||
connReader *ConnReader
|
||||
hubPoller *HubPoller
|
||||
}
|
||||
|
||||
type mainArgs struct {
|
||||
NetName string
|
||||
HubAddress string
|
||||
APIKey string
|
||||
lockFile *os.File
|
||||
}
|
||||
|
||||
func newPeerMain(args mainArgs) *peerMain {
|
||||
@@ -33,6 +30,14 @@ func newPeerMain(args mainArgs) *peerMain {
|
||||
log.Printf("[Main] "+s, args...)
|
||||
}
|
||||
|
||||
lockFile, err := flock.TryLock(lockFilePath(args.NetName))
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to open lock file: %v", err)
|
||||
}
|
||||
if lockFile == nil {
|
||||
log.Fatalf("Failed to obtain file lock.")
|
||||
}
|
||||
|
||||
config, err := loadPeerConfig(args.NetName)
|
||||
if err != nil {
|
||||
logf("Failed to load configuration: %v", err)
|
||||
@@ -100,11 +105,15 @@ func newPeerMain(args mainArgs) *peerMain {
|
||||
log.Fatalf("Failed to create hub poller: %v", err)
|
||||
}
|
||||
|
||||
// Start status server.
|
||||
go runStatusServer(g, statusSocketPath(args.NetName))
|
||||
|
||||
return &peerMain{
|
||||
Globals: g,
|
||||
ifReader: NewIFReader(g),
|
||||
connReader: NewConnReader(g, conn),
|
||||
hubPoller: hubPoller,
|
||||
lockFile: lockFile,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user