mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-04 19:05:27 +08:00
adding setpeers to client
This commit is contained in:
parent
5bbfe73265
commit
7e7cf40d24
4 changed files with 22 additions and 12 deletions
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue