|
@@ -100,41 +100,79 @@ func RemoveNetwork(network string) (bool, error) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-func AddNetwork(network string) (bool, error) {
|
|
|
|
- pubip, err := servercfg.GetPublicIP()
|
|
|
|
- if err != nil {
|
|
|
|
- log.Println("could not get public IP.")
|
|
|
|
- return false, err
|
|
|
|
- }
|
|
|
|
|
|
+func InitServerNetclient() error {
|
|
netclientDir := ncutils.GetNetclientPath()
|
|
netclientDir := ncutils.GetNetclientPath()
|
|
netclientPath := ncutils.GetNetclientPathSpecific()
|
|
netclientPath := ncutils.GetNetclientPathSpecific()
|
|
- _, err = os.Stat(netclientDir)
|
|
|
|
|
|
+ _, err := os.Stat(netclientDir)
|
|
if os.IsNotExist(err) {
|
|
if os.IsNotExist(err) {
|
|
os.Mkdir(netclientDir, 744)
|
|
os.Mkdir(netclientDir, 744)
|
|
} else if err != nil {
|
|
} else if err != nil {
|
|
log.Println("could not find or create", netclientDir)
|
|
log.Println("could not find or create", netclientDir)
|
|
- return false, err
|
|
|
|
- }
|
|
|
|
- token, err := functions.CreateServerToken(network)
|
|
|
|
- if err != nil {
|
|
|
|
- log.Println("could not create server token for " + network)
|
|
|
|
- return false, err
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
_, err = os.Stat(netclientPath + "netclient")
|
|
_, err = os.Stat(netclientPath + "netclient")
|
|
if os.IsNotExist(err) {
|
|
if os.IsNotExist(err) {
|
|
err = InstallNetclient()
|
|
err = InstallNetclient()
|
|
if err != nil {
|
|
if err != nil {
|
|
- return false, err
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
err = os.Chmod(netclientPath+"netclient", 0755)
|
|
err = os.Chmod(netclientPath+"netclient", 0755)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("could not change netclient directory permissions")
|
|
|
|
|
|
+ log.Println("could not change netclient binary permissions")
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func HandleContainedClient() error {
|
|
|
|
+ log.SetFlags(log.Flags() &^ (log.Llongfile | log.Lshortfile))
|
|
|
|
+
|
|
|
|
+ netclientPath := ncutils.GetNetclientPathSpecific()
|
|
|
|
+ checkinCMD := exec.Command(netclientPath+"netclient", "checkin", "-n", "all")
|
|
|
|
+ if servercfg.GetVerbose() >= 2 {
|
|
|
|
+ checkinCMD.Stdout = os.Stdout
|
|
|
|
+ }
|
|
|
|
+ checkinCMD.Stderr = os.Stderr
|
|
|
|
+ err := checkinCMD.Start()
|
|
|
|
+ if err != nil {
|
|
|
|
+ if servercfg.GetVerbose() >= 2 {
|
|
|
|
+ log.Println(err)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ err = checkinCMD.Wait()
|
|
|
|
+ if err != nil {
|
|
|
|
+ if servercfg.GetVerbose() >= 2 {
|
|
|
|
+ log.Println(err)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if servercfg.GetVerbose() >= 3 {
|
|
|
|
+ log.Println("[server netclient]", "completed a checkin call")
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func AddNetwork(network string) (bool, error) {
|
|
|
|
+ pubip, err := servercfg.GetPublicIP()
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.Println("could not get public IP.")
|
|
return false, err
|
|
return false, err
|
|
}
|
|
}
|
|
- functions.PrintUserLog(models.NODE_SERVER_NAME, "executing network join: "+netclientPath+"netclient "+"join "+"-t "+token+" -name "+models.NODE_SERVER_NAME+" -endpoint "+pubip, 0)
|
|
|
|
|
|
+ netclientPath := ncutils.GetNetclientPathSpecific()
|
|
|
|
|
|
- joinCMD := exec.Command(netclientPath+"netclient", "join", "-t", token, "-name", models.NODE_SERVER_NAME, "-endpoint", pubip)
|
|
|
|
|
|
+ token, err := functions.CreateServerToken(network)
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.Println("could not create server token for " + network)
|
|
|
|
+ return false, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ functions.PrintUserLog(models.NODE_SERVER_NAME, "executing network join: "+netclientPath+"netclient "+"join "+"-t "+token+" -name "+models.NODE_SERVER_NAME+" -endpoint "+pubip, 0)
|
|
|
|
+ var joinCMD *exec.Cmd
|
|
|
|
+ if servercfg.IsClientMode() == "contained" {
|
|
|
|
+ joinCMD = exec.Command(netclientPath+"netclient", "join", "-t", token, "-name", models.NODE_SERVER_NAME, "-endpoint", pubip, "-daemon", "off", "-dnson", "no")
|
|
|
|
+ } else {
|
|
|
|
+ joinCMD = exec.Command(netclientPath+"netclient", "join", "-t", token, "-name", models.NODE_SERVER_NAME, "-endpoint", pubip)
|
|
|
|
+ }
|
|
joinCMD.Stdout = os.Stdout
|
|
joinCMD.Stdout = os.Stdout
|
|
joinCMD.Stderr = os.Stderr
|
|
joinCMD.Stderr = os.Stderr
|
|
err = joinCMD.Start()
|
|
err = joinCMD.Start()
|