Skip to content

Commit a4d327b

Browse files
committed
Merge Multinetwork Support
2 parents eacc29f + 167814c commit a4d327b

4 files changed

Lines changed: 29 additions & 12 deletions

File tree

cmd/server.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,17 @@ func updateDNS() time.Time {
8181
// Get all configured networks:
8282
for domain, id := range viper.GetStringMapString("Networks") {
8383
// Get ZeroTier Network info
84-
ztnetwork := ztapi.GetNetworkInfo(API, URL, id)
84+
ztnetwork, err := ztapi.GetNetworkInfo(API, URL, id)
85+
if err != nil {
86+
log.Fatalf("Unable to update DNS entries: %s", err.Error())
87+
}
8588

8689
// Get list of members in network
8790
log.Infof("Getting Members of Network: %s (%s)", ztnetwork.Config.Name, domain)
88-
lst := ztapi.GetMemberList(API, URL, ztnetwork.ID)
91+
lst, err := ztapi.GetMemberList(API, URL, ztnetwork.ID)
92+
if err != nil {
93+
log.Fatalf("Unable to update DNS entries: %s", err.Error())
94+
}
8995
log.Infof("Got %d members", len(*lst))
9096

9197
for _, n := range *lst {

ztapi/member.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,25 @@ import (
1010
)
1111

1212
// GetMemberInfo returns a Member containing informationa about a specific member in a ZeroTier network
13-
func GetMemberInfo(API, host, networkID, memberID string) *Member {
13+
func GetMemberInfo(API, host, networkID, memberID string) (*Member, error) {
1414
resp := new(Member)
1515
url := fmt.Sprintf("%s/network/%s/member/%s", host, networkID, memberID)
16-
getJSON(url, API, resp)
17-
return resp
16+
err := getJSON(url, API, resp)
17+
if err != nil {
18+
return nil, fmt.Errorf("Unable to get member info: %s", err.Error())
19+
}
20+
return resp, nil
1821
}
1922

2023
// GetMemberList gets a Slice of Members in a ZeroTier network
21-
func GetMemberList(API, host, networkID string) *Members {
24+
func GetMemberList(API, host, networkID string) (*Members, error) {
2225
resp := new(Members)
2326
url := fmt.Sprintf("%s/network/%s/member", host, networkID)
24-
getJSON(url, API, resp)
25-
return resp
27+
err := getJSON(url, API, resp)
28+
if err != nil {
29+
return nil, fmt.Errorf("Unable to get member list: %s", err.Error())
30+
}
31+
return resp, nil
2632
}
2733

2834
// Members is a List of Members

ztapi/network.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ package ztapi
66
import "fmt"
77

88
// GetNetworkInfo returns a Nework containing information about a ZeroTier network
9-
func GetNetworkInfo(API, host, networkID string) *Network {
9+
func GetNetworkInfo(API, host, networkID string) (*Network, error) {
1010
resp := new(Network)
1111
url := fmt.Sprintf("%s/network/%s", host, networkID)
12-
getJSON(url, API, resp)
13-
return resp
12+
err := getJSON(url, API, resp)
13+
if err != nil {
14+
return nil, fmt.Errorf("Unable to get network info: %s", err.Error())
15+
}
16+
return resp, nil
1417
}
1518

1619
// Network contains the JSON response for a request for a network
@@ -29,7 +32,6 @@ type Network struct {
2932
}
3033
Config struct {
3134
ActiveMemberCount int
32-
AuthTokens []string
3335
AuthorizedMemberCount int
3436
Capabilities []string
3537
Clock int

ztapi/ztapi.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ func getJSON(url, APIToken string, target interface{}) error {
2323
if err != nil {
2424
return err
2525
}
26+
if r.StatusCode != 200 {
27+
return fmt.Errorf("API returned error: %s", r.Status)
28+
}
2629
defer r.Body.Close()
2730
return json.NewDecoder(r.Body).Decode(target)
2831
}

0 commit comments

Comments
 (0)