adding setpeers to client

This commit is contained in:
afeiszli 2021-07-28 23:08:00 -04:00
parent 5bbfe73265
commit 7e7cf40d24
4 changed files with 22 additions and 12 deletions

View file

@ -12,7 +12,7 @@ import (
)
func serverHandlers(r *mux.Router) {
//r.HandleFunc("/api/server/addnetwork/{network}", securityCheckServer(http.HandlerFunc(addNetwork))).Methods("POST")
r.HandleFunc("/api/server/addnetwork/{network}", securityCheckServer(http.HandlerFunc(addNetwork))).Methods("POST")
r.HandleFunc("/api/server/getconfig", securityCheckServer(http.HandlerFunc(getConfig))).Methods("GET")
r.HandleFunc("/api/server/getwgconfig", securityCheckServer(http.HandlerFunc(getWGConfig))).Methods("GET")
r.HandleFunc("/api/server/removenetwork/{network}", securityCheckServer(http.HandlerFunc(removeNetwork))).Methods("DELETE")

View file

@ -119,7 +119,7 @@ func CheckIn(cliconf config.ClientConfig) error {
return err
log.Fatalf("Error: %v", err)
}
err = wireguard.SetWGConfig(network)
err = wireguard.SetWGConfig(network, false)
if err != nil {
return err
log.Fatalf("Error: %v", err)
@ -203,7 +203,7 @@ func CheckIn(cliconf config.ClientConfig) error {
if err != nil {
fmt.Println("ERROR DELETING INTERFACE: " + currentiface)
}
err = wireguard.SetWGConfig(network)
err = wireguard.SetWGConfig(network, false)
if err != nil {
log.Printf("Error updating interface: %v", err)
}
@ -227,7 +227,7 @@ func CheckIn(cliconf config.ClientConfig) error {
return err
log.Fatalf("Error: %v", err)
}
err = wireguard.SetWGConfig(network)
err = wireguard.SetWGConfig(network, false)
if err != nil {
return err
log.Fatalf("Error: %v", err)
@ -252,7 +252,6 @@ func CheckIn(cliconf config.ClientConfig) error {
return err
log.Fatalf("Error: %v", err)
}
//err = wireguard.SetWGConfig(network)
if err != nil {
return err
log.Fatalf("Error: %v", err)
@ -272,7 +271,7 @@ func CheckIn(cliconf config.ClientConfig) error {
if checkinres.Checkinresponse.Needpeerupdate {
fmt.Println("Server has requested that node update peer list.")
fmt.Println("Updating peer list from remote server.")
err = wireguard.SetWGConfig(network)
err = wireguard.SetWGConfig(network, true)
if err != nil {
return err
log.Fatalf("Unable to process Set Peers request: %v", err)
@ -344,7 +343,7 @@ func Pull (network string) error{
if err != nil {
return err
}
err = wireguard.SetWGConfig(network)
err = wireguard.SetWGConfig(network, false)
if err != nil {
return err
}

View file

@ -221,7 +221,6 @@ func GetPeers(macaddress string, network string, server string, dualstack bool,
allowedips = append(allowedips, peeraddr)
if res.Peers.Isegressgateway {
hasGateway = true
log.Println(peeraddr.String(),"HAS GATEWAY",res.Peers.Egressgatewayranges)
ranges := strings.Split(res.Peers.Egressgatewayranges, ",")
for _, iprange := range ranges {
gateways = append(gateways,iprange)

View file

@ -382,7 +382,7 @@ func SetWGKeyConfig(network string, serveraddr string) error {
if err != nil {
return err
}
err = SetWGConfig(network)
err = SetWGConfig(network, false)
if err != nil {
return err
log.Fatalf("Error: %v", err)
@ -391,7 +391,7 @@ func SetWGKeyConfig(network string, serveraddr string) error {
return err
}
func SetWGConfig(network string) error {
func SetWGConfig(network string, peerupdate bool) error {
cfg, err := config.ReadConfig(network)
if err != nil {
@ -409,8 +409,11 @@ func SetWGConfig(network string) error {
if err != nil {
return err
}
err = InitWireguard(&node, privkey, peers, hasGateway, gateways)
if peerupdate {
SetPeers(node.Interface, peers)
} else {
err = InitWireguard(&node, privkey, peers, hasGateway, gateways)
}
if err != nil {
return err
}
@ -418,6 +421,15 @@ func SetWGConfig(network string) error {
return err
}
func SetPeers(iface string, peers []wgtypes.PeerConfig) {
for _, peer := range peers {
err := exec.Command("wg","set",iface,"peer",peer.PublicKey.String() ,peer.Endpoint.String()).Run()
if err != nil {
log.Println("error setting peer",peer.Endpoint.String(),)
}
}
}
func StorePrivKey(key string, network string) error {
d1 := []byte(key)
err := ioutil.WriteFile("/etc/netclient/wgkey-"+network, d1, 0644)